Hallo,
in unserer Warenwirtschaft lassen sich Attribute für Artikel setzen, zum Beispiel ob die Batterieverordnung greift.
Ich möchte nun in meinem Berichtscontainer für jede Artikelposition prüfen, ob das betreffende Attribut “Batteriverordnung” gesetzt ist und wenn das zumindest für einen Artikel zutrifft, möchte ich am Ende des Textes eine PDF mit dem Text zur Batterieverordnung ausgeben.
Dies sollte sich eigentlich mit SetVar() > GetVar() erledigen lassen, ich habe aber unerwartete Schwierigkeiten damit. Mein aktueller (~Debug)-Code hierzu lautet…
cond(Alias$(“BATTERIEVERORDNUNG”,Upper$(Auftragspositionen.Artikel.AttributeAlsText)) = “JA”,
SetVar(“BattV”,“Position “+Fstr$(Count(Auftragspositionen.InterneAuftragspositionnummer, false),”##&”)+" enthält Batterien!"),
“Position “+Fstr$(Count(Auftragspositionen.InterneAuftragspositionnummer, false),”##&”)+" enthält keine Batterien!"
)
… es wird also geprüft, ob der Artikel ein Attribut Namens “Batterieverordnung” hat, das den Wert “ja” hat und falls ja, soll SetVar() ausgeführt werden. SetVar() soll also nur dann ausgeführt werden, wenn das Attribut existiert und “ja” ist, denn ich will ja nicht, dass ein späterer Artikel, der keine Batterien enthält, den Schalter wieder umlegt.
Unten, am Ende meiner Vorlage gebe ich aktuell den Wert der Variable “BattV” mit NullSafe(GetVar(“BattV”),"") wieder aus.
Problem: In der Artikelzeile selbst werden die beiden Texte für Batterieverordnung “ja”/“nein” auch absolut korrekt ausgegeben, aber unten, am Ende meines Textes wird immer ein Text ausgegeben, der mir zeigt, dass SetVar() offenbar für JEDE Zeile ausgeführt wirde, obwohl es in einer Cond() Klausel sitzt und NUR dann ausgeführt werden sollte, wenn das Attribut “Batterieverordnung” vorhanden und “ja” ist.
Soll heißen, oben in der Artikelzeile steht dann z.B. “Position 4 enthält keine Batterien!”, es wird also korrekterweise der “False” Teil der Cond() ausgegeben, am Ende der Vorlage steht dann aber plötzlich “Position 4 enthält Batterien!”, es wurde also der “True” Teil der Cond() EBENFALLS ausgeführt!
Ich bin ratlos und würde mich über jede Hilfe freuen.
Danke und Gruß