Für die Festlegung von Bedingungen zum Druck eines Feldes 'Nur drucken, wenn' in den Feldeigenschaften finden Sie hier einige Beispiele (siehe auch Beispiele für interne Felder).
Achtung: Prüfen Sie Ihre Formularanpassung anschließend für Einkaufs- bzw. Verkaufsbelege über die Druckvorschau oder mit dem Ausdruck des Etiketts in der Warenwirtschaft. Die internen Felder/Bedingungen werden bei der Druckvorschau im Formulardesigner nicht berücksichtigt.
Druck nur auf Einkaufsbelegen
Ein Feld soll ausschließlich auf Einkaufsbelegen gedruckt werden:
_rp_cWas = 'E'
Text nur auf Sammelrechnungen
Ein Text soll nur auf Sammelrechnungen gedruckt werden:
!empty(cRpTemp._pos_UrBeleg)
Logo oder Text für Filiale
Eine Textkonstante oder ein Logo soll nur gedruckt werden, wenn die Lieferung aus der Filiale BERLIN erfolgt:
tmpDruKopf.bsfil = 'BERLIN'
Hinweis nur für einen Kunden
Ein Hinweistext (Textkonstante) soll nur für den Kunden mit der Nummer 10007 gedruckt werden:
tmpDruKopf.bskundennr = 10007
Hinweis für Kunden verschiedener Kategorien
Ein Hinweistext (Textkonstante) soll nur für Kunden der Kategorien PKD und ITK (Kategorie-Kürzel) gedruckt werden:
inlist(tmpDruKundenKa.kakat , 'PKD ','ITK ')
Bild für Beleg-Projekt
Ein Bild soll nur auf Belegen gedruckt werden, denen das Projekt XXXX zugeordnet ist:
tmpDruKopf.bsprojekt = 'XXXX'
Lieferdatum zum Beleg (entweder RG-Datum oder Detailfeld Termin)
Sie verwenden das Feld mit dem Rechnungsdatum als Lieferdatum, bei abweichender Lieferung wird das Datum im Beleg auf der Registerkarte Detail im Feld Termin hinterlegt (gedruckt im Feld Beleg - Termin - Datum). Um das Rechnungsdatum nur dann zu drucken, wenn das Feld Termin leer ist, geben Sie für das Feld die Bedingung Nur drucken, wenn an:
empty(_rp_TerminDatum)
Feld nur drucken für Zahlungsbedingung zur Vorkasse und bestimmtem Projekt
Ein Feld soll nur gedruckt werden, wenn im Beleg eine Zahlungsbedingung mit Zahlart Vorkasse und das Projekt 'PPPP' gespeichert sind:
!empty(tmpDruKopf.bsvorkasse) and tmpDruKopf.bsprojekt = 'PPPP'
Text nur auf Werbekostenrechnung drucken
Ein Text soll nur gedruckt werden, wenn der Beleg als Werbekostenrechnung gekennzeichnet ist (aktivierte Option auf der Registerkarte Detail):
!empty(tmpDruKopf.bswerbkost)
Seriennummern für ausgewählte Kunden
Die Kunden müssen in den Stammdaten (Registerkarte Stammdaten) für Belegdruck mit Seriennummern gekennzeichnet sein. Im Formular (für die Belegart z. B. Lieferschein aus Bestellung - muss in den Voreinstellungen Verkauf, Registerkarte Drucken für den SN-Druck aktiviert sein) ist zum Seriennummernfeld folgende Bedingung anzugeben:
tmpDruStamm.kdsnzwang
Hinweistext auf Sammelaufträgen für Kunden mit aktivierter 'Kontrolle Kommissionierung'
Ein Text soll nur gedruckt werden, wenn im Kundenstamm auf Registerkarte Weitere der Haken 'Kontrolle Kommissionierung' gesetzt ist:
tmpDruStamm.kdsammkont=1
Alternative und optionale Belegpositionen in Angeboten
Für alternative und optionale Belegpositionen in Angeboten werden standardmäßig als lfd.Nr. der Position 'A' gedruckt sowie der Gesamtpreis der Position in runden Klammern. Weitere Anpassungen können Sie wie folgt vornehmen:
Gesamtpreis zur Position leer: Feld mit der Bedingung versehen
cRpTemp._pos_Lauf != 'A'
Einzelpreis in Klammern: 2 neue Konstanten einfügen mit 'Klammer auf' ( und 'Klammer zu' ) - und Bedingung
cRpTemp._pos_Lauf = 'A'
Feld 'Alternativ': neue Konstante 'Alternativ' einfügen und Bedingung
cRpTemp.xAltern = 1
Feld 'Optional': neue Konstante 'Optional' einfügen und Bedingung
cRpTemp.xAltern = 2
für einen Text, der nur für 'normale' Positionen (ohne Status alternativ oder optional) gedruckt werden soll, verwenden Sie folgende Bedingung:
cRpTemp.xAltern = 0
Feld zum Beleg nur drucken, wenn bestimmte Positionen im Beleg enthalten sind
Die Bedingungen sind wie folgt aufgebaut:
xSelect(cFeldName, cAlias, cWhere, cOrder, lFehlerAnzeigen)
wobei:
- cFeldName - Pflichtfeld, was ausgewertet wird
- cAlias - Pflichtfeld, aus welcher Tabelle (interne Tabellen beim Drucken wie z.B. cRpTemp)
- cWhere - Bedingung
- cOrder - Sortierung
- lFehlerAnzeigen - wenn 1, dann wird die Fehlermeldung angezeigt (zum Testen, wenn das Feld nicht gedruckt wird)
Beispiele:
1. Druck der Anzahl Positionen im Beleg (nicht bei Gruppen verwendbar)
xSelect('count(*)', 'cRpTemp')
2. Druck der Gesamtmenge im Beleg (nicht bei Gruppen verwendbar)
xSelect('sum(_pos_menge)', 'cRpTemp')
3. es gibt im Beleg mind. eine Position, in deren Benennung die Zeichenfolge express enthalten ist (Groß-/Kleinschreibung bleibt unberücksichtigt)
xSelect('count(*)', 'tmpPosAel', [atc ('express',arben) != 0]) > 0
4. im Beleg ist mind. eine archivierte Position enthalten
xSelect('count(*)', 'tmpPosAel', 'ararchiv = 1') > 0
5. im Beleg ist mind. eine Position mit dem Hersteller (Kürzel) SAMS enthalten
xSelect('count(*)', 'tmpPosAel', [arkzselekt = 'SAMS']) > 0
6. im Beleg ist mind. eine Position mit Kategorie CPU (Kürzel) enthalten:
xSelect('count(*)', 'cRpTemp', [kkkat = 'CPU']) > 0
7. im Beleg ist eine bestimmte Position enthalten, z.B. mit der Artikelnummer 12045K
xSelect('count(*)', 'cRpTemp', [_pos_nummer = '12045K']) > 0
bzw. nicht enthalten
xSelect('count(*)', 'cRpTemp', [_pos_nummer = '12045K']) = 0
oder mehrere Artikel enthalten sind (eigene Artikelnummern einsetzen, bei Bedarf mit Komma getrennt und in Hochkomma gesetzt weitere einfügen)
xSelect('count(*)','cRpTemp',[_pos_nummer in('Artikelnummer1','Artikelnummer2')]) > 0
siehe auch Gutschrift / Storno-Rechnung / Rechnungskorrektur
8. im Beleg ist mind. eine Position mit zugeordnetem Geschäftsbereich 5 enthalten
xSelect('count(*)', 'tmpPosAel', 'argesber = 5') > 0
9. im Beleg ist mindestens eine Gruppe enthalten
xSelect('count(*)', 'cRpTemp', [_POS_KOMPONENTE = 'G']) > 0
10. im Beleg ist keine Gruppe enthalten
xSelect('count(*)', 'cRpTemp', [_POS_KOMPONENTE = 'G']) = 0
11. im Beleg ist mind. ein Artikel enthalten, für den in den Stammdaten im Listenfeld Lithium-Batterie die Auswahl 'Packed with equipment: Lithium ion batteries' gespeichert ist
xSelect('count(*)', 'tmpPosAel', [arlitbat = 1]) > 0
Hinweis: Das interne Feld für den Druck der lfd. Nummer im Listenfeld Lithium-Batterie heißt tmpPosAel.arlitbat mit den Werten keine = 0, Packed with equipment: Lithium ion batteries = 1 usw.
Druck von Fehlerbeschreibungen aus der Werkstatt in Gutschriften aus Werkstattaufträgen
Im Werkstattauftrag erfasste Daten in den Feldern Gegenstand (3 Zeilen), Fehler (2 Zeilen) und F estgestellter Fehler (3 Zeilen) werden mit aktivierter Option Gutschriften: Werkstattdaten drucken (Registerkarte Drucken 2 unter Voreinstellungen / Mandanten / Voreinstellungen Verkauf) auf (allen) Gutschriften mit gedruckt. Um die Felder nur dann zu drucken, wenn diese gefüllt sind, setzen Sie hier die entsprechende Bedingung für das jeweilige Feld (gilt nicht für Sammelgutschrift):
Nur drucken, wenn
!empty(tmpDruWerk.bwtext1)
!empty(tmpDruWerk.bwtext2)
…...
!empty(tmpDruWerk.bwtext8)