Cond funktioniert nur bei letztem Eintrag

Guten Tag,

wir nutzen ein Kassenprogramm, das für den Bon-Druck List & Label verwendet.

Ich habe den Bon dahingehend angepasst, dass er am Ende einen bestimmten Text ausgibt, wenn eine bestimmte Artikelnummer (99999) Bestandteil des Bons ist.

Das funktioniert auch tadellos. Allerdings leider nur, wenn der Artikel mit der Nummer 99999 der letzte Artikel auf dem Bon ist.

Wie muss ich die Abfrage anpassen, damit der Text unabhängig von der Position des Hinweisartikels ausgegeben wird.

“Vielen Dank für Ihren Einkauf¶
und einen guten Rutsch ins neue Jahr.¶¶¶” +
Cond(Positionen.Nummer =“99999”, “¶” + “##### " + Positionen.Name + " #####” + “¶” + RTFtoPlainText$(Positionen.Beschreibung) + “¶¶¶”,“”)

Danke vorab

Sebastian

Du kannst das sauber über eine Benutzervariable lösen: Du setzt beim Drucken der Positionen per SetVar(...) ein Flag bzw. gleich den kompletten Hinweistext und gibst ihn später (z. B. im Footer nach der Tabelle) per GetVar(...) aus. SetVar kann dabei so verwendet werden, dass nichts gedruckt wird (3. Parameter false).

1) In der Positionszeile: Variable setzen (ohne Ausgabe)

In einer (auch unsichtbaren) Zelle/Objekt innerhalb der Tabelle „Positionen“ oder auch in der Formel einer Benutzervariablen

Cond(
  Positionen.Nummer = "99999",
  SetVar(
    "BonHinweisText",
    "¶##### " + Positionen.Name + " #####¶"
    + RTFtoPlainText$(Positionen.Beschreibung)
    + "¶¶¶",
    false
  ),
  ""
)

Damit wird, sobald irgendwo die 99999 vorkommt, der Text in BonHinweisText gespeichert – unabhängig davon, ob der Artikel der letzte ist. (Durch false wird dabei nichts an der Stelle gedruckt, falls die Formel in einem Feld verwendet wird).

2) Am Bon-Ende: Variable ausgeben (wenn gesetzt)

In deinem Textobjekt am Ende (außerhalb der Positionszeilen / z. B. Tabellen-Footer):

"Vielen Dank für deinen Einkauf¶
und einen guten Rutsch ins neue Jahr.¶¶¶"
+
NullSafe(GetVar("BonHinweisText"),
  ""
)

Hat funktioniert. Danke :slight_smile:

1 Like