Seite 1 von 1

match darf nicht leer sein

Verfasst: Do 26. Nov 2020, 19:01
von christobal
Hallo,

evtl. nach einem Update auf 8.1.4 bekomme ich eine Fehlermeldung:
"Fehler in der Vorlage:Das Attribut `match` im Tag darf nicht fehlen!"

Der Code dazu sieht so aus:

Code: Alles auswählen

<we:listview type="object" classid="14" order="KontaktBundesland">
<we:repeat>
<we:ifNotField name="KontaktBundesland" type="text" match="$lastOrt">
<we:field type="text" name="KontaktBundesland" />
</we:ifNotField>
<we:setVar to="global" from="listview" namefrom="KontaktBundesland" nameto="lastOrt" />
</we:repeat>
</we:listview>
Ich verstehe nicht, wo da plötzlich was fehlt?
Bitte um Hilfe
Christoph

Re: match darf nicht leer sein

Verfasst: Do 26. Nov 2020, 21:39
von NilSole
Hallo,

Da fallen mir 2 Dinge ein:
(Globale) Variablen werden mit \$varname angesprochen,
Vor dem ersten Durchlauf deiner Schleife ist lastOrt noch nicht definiert.

Ob das die Fehlermeldung verursacht, weiß ich nicht.

Schöne Grüße
Nils

Re: match darf nicht leer sein

Verfasst: Do 26. Nov 2020, 22:35
von WBTMagnum
Hallo,

Die von Nils angesprochenen Punkte sind schon richtig, ich glaube aber nicht, dass das die Fehlermeldung verursacht.

Ist das die richtige Code-Stelle? Wie sieht den der Backtrace dazu aus?

Liebe Grüße,
Sascha

Re: match darf nicht leer sein

Verfasst: Fr 27. Nov 2020, 01:18
von mokraemer
Die Meldung wird vom Parser erzeugt. Der prüft ob die Attribute belegt sind. Hier ist die Variable leer, also auch das Attribut und daher kommt der Fehler.

Re: match darf nicht leer sein

Verfasst: Fr 27. Nov 2020, 01:20
von ThomasGoebe
Vermutlich wird lastOrt vor der listview nicht initialisiert. Dazu dann noch der von NilSole angesprochene fehlende Backslash.

Eine simple Lösung für Deinen Code kann sein:

Code: Alles auswählen

<we:setVar to="global" nameto="lastOrt" value="keines" />
<we:listview type="object" classid="14" order="KontaktBundesland">
	<we:repeat>
		<we:ifNotField name="KontaktBundesland" type="text" match="\$lastOrt">
			<we:field type="text" name="KontaktBundesland" />
		</we:ifNotField>
		<we:setVar to="global" from="listview" namefrom="KontaktBundesland" nameto="lastOrt" />
	</we:repeat>
</we:listview>

Re: match darf nicht leer sein

Verfasst: Fr 27. Nov 2020, 11:44
von christobal
Vielen Dank!!!

Der Backslash hats nicht gebraucht, aber <we:setVar to="global" nameto="lastOrt" value="keines" /> vor der Listview hat den Fehler entfernt!

Re: match darf nicht leer sein

Verfasst: Fr 27. Nov 2020, 11:51
von mokraemer
DOCH! Den Backslash braucht es! Immer wenn du auf Globals zugreifst!!!!
Sonst fliegt dir der Kode evtl. mal wann anders um die Ohren.

Re: match darf nicht leer sein

Verfasst: Fr 27. Nov 2020, 12:07
von NilSole
@Thomas habe ich doch auch so geschrieben :wink:

@Christopher soweit ich das verstanden habe, war das ohne Backslash für die Globals nicht beabsichtigt. Das funktionierte also eher als Bug. In der 9.x läuft es, meine ich, ohne Backslash nicht mehr.

Re: match darf nicht leer sein

Verfasst: Sa 28. Nov 2020, 18:38
von ThomasGoebe
NilSole hat geschrieben: Fr 27. Nov 2020, 12:07 @Thomas habe ich doch auch so geschrieben :wink:
Stimmt, den zweiten Teil bei Dir hatte ich irgendwie überlesen. Dann ist meine Antwort also Deine Antwort mit zusätzlichem Code Beispiel ;-)