"Bei Zahlung bis "+Date$(JulianToDate(DateToJulian(Datum)+AktVog.SktoTg1),'%02d.%02m.%4y')+" erhalten Sie "+Str$(AktVog.SktoSz1,0,2)+"% Skonto. Dies entspricht: Skontobetrag: "+External$('AuftBetrag((AktVog.GPreisNt*AktVog.SktoSz1)/100)')+" "+AktVog.Waehr+" / "+Cond(AktVog.GPreisM19St<>0,"19% MwSt. "+External$('AuftBetrag((AktVog.GPreisM19St*AktVog.SktoSz1)/100)')+" "+AktVog.Waehr+" / ")+Cond(AktVog.GPreisM7St<>0,"7% MwSt. "+External$('AuftBetrag((AktVog.GPreisM7St*AktVog.SktoSz1)/100)')+" "+AktVog.Waehr+" / ")+"Summe "+External$('AuftBetrag((AktVog.GPreisBt*AktVog.SktoSz1)/100)')+" "+AktVog.Waehr
Zur Berechnung des Skontos wird nicht berücksichtigt, ob ein Artikel skontofähig ist. |
"Zahlungsbedingungen:¶"+AktVog.ZahlBed+"¶"+If(AktVog.SktoSz1>1,"Bei Zahlung bis zum "+Date$(AddDays(AktVog.Dat,AktVog.SktoTg1),"%02d.%02m.%04y") +" abzgl. "+Str$(AktVog.SktoSz1,0,0)+" % Skonto¶Zahlbetrag "+External$('AuftBetrag(AktVog.GPreisBt-AktVog.SktoBrtBet/100*AktVog.SktoSz1)')+" "+AktVog.Waehr+"¶")+If(AktVog.SktoSz2>1,"Bei Zahlung bis zum "+Date$(AddDays(AktVog.Dat,AktVog.SktoTg2),"%02d.%02m.%04y")+" abzgl. "+Str$(AktVog.SktoSz2,0,0)+" % Skonto¶Zahlbetrag "+External$('AuftBetrag(AktVog.GPreisBt-AktVog.SktoBrtBet/100*AktVog.SktoSz2)')+" "+AktVog.Waehr+"¶")+If(AktVog.NettoTg >0 ,"Bitte zahlen Sie bis zum "+Date$(AddDays(AktVog.Dat,AktVog.NettoTg),"%02d.%02m.%04y")+" rein Netto!¶")+If(AktVog.NettoTg=0,AktVog.ZahlBed)
"Bei Zahlung bis " +Date$(JulianToDate(DateToJulian(Datum)+AktVog.SktoTg1),'%02d.%02m.%4y') +
" erhalten Sie " +Str$(AktVog.SktoSz1,0,2)+"% Skonto. ¶Dies entspricht: "+
"Skontobetrag: "+External$('AuftBetrag((AktVog.GPreisNt*AktVog.SktoSz1)/100)')+" "+ AktVog.Waehr+" / "+
Cond(AktVog.GPreisM19St<>0,"19% MwSt. "+External$('AuftBetrag((AktVog.GPreisM16St*AktVog.SktoSz1)/100)')+" "+AktVog.Waehr+" / ")+
Cond(AktVog.GPreisM7St<>0,"7% MwSt. "+External$('AuftBetrag((AktVog.GPreisM7St*AktVog.SktoSz1)/100)')+" "+AktVog.Waehr+" / ")+
"Summe "+External$('AuftBetrag((AktVog.GPreisBt*AktVog.SktoSz1)/100)')+" "+AktVog.Waehr
Bei der Berechnung des Skontos wird nicht berücksichtigt, ob ein Artiekl skontofähig ist. |
Folgende Formel muss in das Layout eingebunden werden:
"Zahlbar rein netto bis¶" +Date$(JulianToDate(DateToJulian(AktVog.Dat)+AktVog.NettoTg),´%02d.%02m.%4y´)
Str$(Val(Left$(Str$(AktVog.GGew,0,2),Val(Str$(Len(Str$(AktVog.GGew,0,2))-3,0,0))))+1,0,0)
Wie kann im Layout der Einzelpreis bzw. der Gesamtpreis bei einer Rückstands-/Optional-/Alternativ-/Geliefert-Position unterdrückt werden?
Beispiel für Rückstand und Alternativ:
Die Variable VPo.EPreis (Einzelpreis) muss durch folgende Formel ersetzt werden:
If(VPo.Pos = "Rückstand" or VPo.Pos = "Alternativ", " ", VPo.EPreis)
Die Variable VPo.Preis (Gesamtpreis) muss durch folgende Formel ersetzt werden:
If(VPo.Pos = "Rückstand" or VPo.Pos = "Alternativ", " ", VPo.Preis)
In diesem Beispiel werden Lieferscheinnummer und -datum in einer Rechnung ausgewiesen.
If (not Empty(External$("LetzteBelegNr(50)")),'Lieferung mit Lieferschein-Nr. '+External$("LetzteBelegNr(50)")+' vom '+External$("LetzteBelegNr(50|'AVogDat')"))
Die Nummer, die einer Vorgangsart intern zugewiesen ist, können Sie über das Menü Bearbeiten - Parameter - Vorgänge - Arten ablesen. So hat z. B. die Vorgangsart Lieferschein die Nummer 50, Angebot die Nummer 15, Auftragsbestätigung die Nummer 20 etc.
Beispiel: Auf der Rechnung soll gedruckt werden: Lieferung mit Lieferschein-Nr. xxx. Gibt es zu dieser Rechnung keinen Lieferschein, soll nichts gedruckt werden.
Folgende Formel kann verwendet werden:
If(not Empty(External$("LetzteBelegNr(50)")) , 'Lieferung mit Lieferschein-Nr. '+ External$("LetzteBelegNr(50)"))
Barcode(VPo.BSNr,"EAN128")
Wie können beim Ausdruck von mehreren Seriennummern die Zeichen ".." (Punkte) durch " - " (Bindestrich) ersetzt werden?
StrSubst$(VPo.BSNr,".."," - ")
Wie können Seriennummern in einem Layout mit einem Umbruch anstatt mit einem Komma dargestellt werden?
ChrSubst$(VPo.BSNr,",","¶")
Diese Funktion greift nur, wenn die Seriennummern in der Positionseingabe durch ein Komma getrennt sind.
Dies geht mit folgender Formel: External$('DBInfo("Benutzer"|"IX;KennZ;1"|AktVog.ErstBzr|"NNa")')
Diese Formel gibt die BIC Nummer der Kundenbankverbindung aus: External$('DBInfo("Banken"|AktVog.BLZ|AktVog.BLZNr|"BIC")')
Folgende Formel gibt die BIC Nummer der Mandantenbankverbindung (hier am Beispiel Bankverbindung1) aus: External$('DBInfo("Banken"|AktMand.BLZ1|AktMand.BLZNr1|"BIC")')
Mit folgender Formel kann die Warengruppenbezeichnung im Positionsdruck ausgegeben werden:
External$('DBInfo("Warengruppen"|VPo.Art.WgrNr|"Bez")')
Wie kann ein Datum als Kalenderwoche ausgegeben werden?
Dies wird mit der Funktion "Woy" erreicht. Hier ein Beispiel:
Das Vorgangsdatum ist z.B. der 06.06.xx. Die u.a. Formel ermittelt daraus automatisch die KW 23.
Str$(Woy(AktVog.Dat),0,0)
Die Variable "AktVog.Dat" kann natürlich auch durch eine andere Datums-Variable ersetzt werden.
Mit Cond(StrPos(AktVog.Art,' ')<>-1,Mid$(AktVog.Art,0,StrPos(AktVog.Art,' ')),AktVog.Art) werden die Vorgangsarten bis zum ersten Leerzeichen ausgegeben, oder die Vorgangsart wenn kein Leerzeichen vorhanden ist.
Beispiele:
Beim Erstellen eines Sammelvorgangs werden Überschriften erzeugt. Somit steht vor den Positionen der Lieferscheine immer die Überschrift "Lieferschein Beleg-Nr.: LIxxxxxx". Für den Druck soll der Ausdruck
"Lieferschein Beleg-Nr.:" durch den Ausdruck "Delivery Note Nr." ersetzt wird. Mit folgender Formel ist das zu realisieren:
Cond(Left$(VPo.Bez,6)<>"Liefer",VPo.Bez,StrSubst$(VPo.Bez,"Lieferschein Beleg-Nr.:","Delivery Note Nr."))
External$('DBInfo("Fremdwaehrung"|"IX;ISOBez;1"|AktVog.WaehrISO|"LtzDat")')
StrSubst$(If(VPo.Art.WeitArtNr<>'',VPo.Art.WeitArtNr,VPo.ArtNr),';')
Durch das StrSubst$ wird das Zeichen ; entfernt.
External$('DBInfo("AbwArtikelDaten"|AktVog.AdrNr|VPo.ArtNr|"ArtBez")')
Cond(VPo.Mge<>'',External$('AuftBetrag(val(VPo.EPreis))') )
Wie kann der Einzelpreis abzgl. Rabatt ausgegeben werden? -> !!! kleine Rundungsdifferenzen !!!
Str$(VPo.EPrNt-VPo.EPrNt*VPo.RabSz/100,0,2)
(Der Wert kann nie zu 100% korrekt sein!)
oder alternativ: mit folgender Formel kann hier gearbeitet werden:
Netto: External$('AuftBetrag(VPo.PrNt-(VPo.RabBetNt*Val(VPo.Mge))/Cond(Val(VPo.Mge)=0,1,Val(VPo.Mge)))')
Brutto: External$('AuftBetrag(VPo.PrBt-(VPo.RabBetBt*Val(VPo.Mge))/Cond(Val(VPo.Mge)=0,1,Val(VPo.Mge)))')
Da hier eine Berechnung über mehrere Variablen stattfindet, kann es zu Rundungsdifferenzen kommen. |
Folgende Formel muss in das Layout eingebunden werden:
Cond(AktVog.SktoBrtBet<>0,"Bei Zahlung bis" +Date$(JulianToDate(DateToJulian(AktVog.Dat)+AktVog.SktoTg1),'%02d.%02m.%4y')+"erhalten Sie "+Str$(AktVog.SktoSz1,0,0)+"% Skonto ("+Str$(AktVog.SktoBrtBet*AktVog.SktoSz1/100,0,2)+ AktVog.Waehr+")")
Date$(JulianToDate(DateToJulian(Datum)+7),'%02d.%02m.%4y')
oder AddDays(Datum,7)
Hierbei steht die 7 für die Anzahl der zu addierenden Tage. Es kann aber auch für die Ziffer ein Variable (Zahl) eingegeben werden, welche eine Anzahl von Tagen ausgibt. Beispiel "AktVog.NettoTg"
Je nach Layout kann die Variable Datum auch eine andere Bezeichnung haben (z.B. AktVog.Dat, AktMand.ErstDat, etc.).
If(VPo.RabSz<>0,Str$(VPo.RabSz,0,2))
External$('DBInfo("Laender"|AktVog.Ans.Land)')
Cond(Date$(AktVog.LiefDat,'%d.%m.%4y')<>'' AND (Date$(AktVog.LiefDat,'%d.%m.%4y')<>"30.12.1899"),Date$(AktVog.LiefDat,'%d.%m.%4y'))
Der Filter wird benötigt, da die Variable schon mit dem Datum 30.12.1899 initialisiert wird.
External$('DBInfo("Laender"|AktVog.Ans.Land|"ILand")')
Um die nationale Landesbezeichnung zu erhalten, gibt es folgende Formel:
External$('DBInfo("Laender"|AktVog.Ans.Land|"Landbez")')
Mit folgender Formel kann das Format der Bankleitzahl entsprechend formatiert werden:
Left$(AktMand.BLZStd,3)+" "+Mid$(AktMand.BLZStd,3,3)+" "+Right$(AktMand.BLZStd,2)
Mit folgender Formel kann getestet werden ob ein Bild vorhanden ist.
'Bildname1: ' + Cond(Drawing$(AktMand.Logo1) = '0', 'Kein Bild vorhanden', 'Mit Mandantenbild1')
Wenn der Kunde dann an der Stelle des nicht vorhandenen Bildes einen Text stehen haben möchte, so kann er ein Textelement über der Bildstelle einfügen. Für das Bild sollte die Darstellungsbedingung folgende sein: Drawing$(AktMand.Logo1) <> '0'
Für den Text sollte die Darstellungsbedingung folgende sein:
Drawing$(AktMand.Logo1) = '0'
External$('DATEVSchlAusZahlB(AktVog.ZahlBed)')
Cond(Right$(Str$(VPo.PosNr,0,0),4)='satz','',VPo.EPreis)
External$('DBInfo("ArtikelLieferanten"|VPo.ArtNr|AktVog.AdrNr|"Info")')
Mit folgender Cond-Bedingung kann die im Adressdatensatz hinterlegten Hausbank im Vorgang ausgewiesen werden. Über das Menü DATEI - DB MANAGER muss für die Mandanten-Datenbank über die Schaltfläche BEARBETEN - STRUKTUR ÄNDERN die richtige Anzahl der Mandantenbanken hinterlegt sein. In dieser Formel sind 4 Mandantenbanken hinterlegt (kann natürlich entsprechend erweitert werden).
Cond(Left$(AktAdr.ZahlHBk,1)='1',AktMand.BkKuBez1+' BLZ: '+AktMand.BLZ1+' Kontonummer: '+AktMand.KNr1,
Cond(Left$(AktVog.ZahlHBk,1)='2',AktMand.BkKuBez2+' BLZ: '+AktMand.BLZ2+' Kontonummer: '+AktMand.KNr2,
Cond(Left$(AktVog.ZahlHBk,1)='3',AktMand.BkKuBez3+' BLZ: '+AktMand.BLZ3+' Kontonummer: '+AktMand.KNr3,
Cond(Left$(AktVog.ZahlHBk,1)='4',AktMand.BkKuBez4+' BLZ: '+AktMand.BLZ4+' Kontonummer: '+AktMand.KNr4))))
Hierbei wird das im Vorgang hinterlegte Lieferdatum vom aktuellen Datum abgezogen und in Wochen angegeben.
'Liefertermin: '+IF(VPo.LiefDat<>Date('30.12.1899'),IF(VPo.LiefDat=Datum ,'sofort ab Lager' ,'ca. ' +Str$(Abs(Round((VPo.LiefDat-Datum)/7)),0)+ ' Woche(n) nach AE'),'n. Vereinbarung ')
Diese Formel würde dann beispielsweise folgendes ausweisen: "Liefertermin: ca. 8 Woche(n) nach AE" , bzw. "Liefertermin: sofort ab Lager"
"Seriennummer: ÷"+VPo.AktSNr
Beispiel: In einem Vorgang werden diverse Positionen erfasst. Eine der Positionen ist ein Rabattartikel. Wird nun das Feld Rabatt in den Druck eingefügt, wird der Rabatt bei allen Positionen ausgegeben. Soll aber in diesem Fall der Rabatt nur beim Rabattartikel ausgegeben werden, muss folgende Formel in das Layout eingefügt werden:
Cond (not VPo.RabInRabSumKz, Str$(VPo.RabSz,0,2)+' %')
Wird kein Rabattartikel erfasst, sondern hinterlegt man die Rabatte in den Vorgangspositionen, so werden diese positionsbezogen ausgegeben.
External$('DBInfo("ArtikelZuschlagsGruppen"|Val(VPo.ZuschlGrp)|"FW2")')
Um die Paketnummer auf dem Druck der Rechnung realisieren zu können, muss zum Einen in den Parametern eingestellt werden, dass der Vorgang vor dem Drucken gebucht wird. Dies kann in den Buchungsparametern des Vorgangs auf dem Register "Sonstige Eingabeparameter" im Bereich Vorgang Buchen eingestellt werden. Dann kann über eine DB-Info-Formel die Paketnummer oder auch andere Informationen aus dem erstellten Versanddatensatz ausgelesen werden.
Hier eine Beispielformel:
'Paketnummer: '+External$('DBInfo("Versand"|"IX;BelegNr"|AktVog.BelegNr|"PktNr")')
External$('DBInfo("Adressen"|AktVog.Li.AdrNr|"KdLiefNr")')
Wie kann die Postfach-Adresse ausgegeben werden, wenn diese gefüllt ist? Ist die Postfachadresse leer soll Straße, PLZ und Ort ausgegeben werden.
Für die Straße bzw- für das Postfach: Cond(AktVog.Ans.Postf <>'', 'Postfach: '+AktVog.Ans.Postf, AktVog.Ans.Str)
Für die Postfach-PLZ und -Ort oder für PLZ und Ort: Cond(AktVog.Ans.Postf<>'', AktVog.Ans.PfPLZ+" "+AktVog.Ans.PfOrt,AktVog.Ans.PLZ+" "+AktVog.Ans.Ort)
External$('DBInfo("Bestelleingang"|"IX;ArtNrLagNr;1"|VPo.ArtNr|"LiefDat")')
External$('DBInfo("Einheiten"|VPo.Einh|"Bez")')
External$('DBInfo("OffenePosten"|"Info:AdrOPSaldo"|AktAdr.AdrNr)')
Beispiel:
Beim Druck erscheint der Einzelpreis mit: 150,00(*0,01)
Es sollte aber nur 150,00 beim Druck ausgegeben werden.
Formel: External$('AuftBetrag(Val(StrSubst$(VPo.EPreis,".","")))')
Einzelpreisfaktor für Schweiz und Liechtenstein:
Fstr$(val(StrSubst$(VPo.EPreis,"'","")),"#,###,##&.##")
Cond(VPo.Pos='',' ',If(VPo.Pos="Alternativ","Alt.",If(VPo.Pos="Optional","Opt.",If(VPo.Pos="Geliefert","Gel.",If(VPo.Pos="Rückstand","Rück.",VPo.Pos)))))
External$('DBInfo("Warengruppen"|VPo.Art.WgrNr|"Bez")')
Im Drucklayout muss die Variable VPo.RabSz durch die Funktion
External$('ProzSzL(VPo.RabSz)')
ersetzt werden.
Beispiel:
Right$(VPo.StSchl,3)
Aus "3 Mehrwertsteuer 19 %" wird "19%"
Aus "2 Mehrwertsteuer 7 %" wird "7 %"
Damit in Leerzeilen oder Texteingaben kein Steuersatz ausgewiesen wird, empfehlen wir die Hinterlegung folgender Formel im Layout:
Cond(VPo.PrBt <> 0,Cond((VPo.EPrSt <> 0).and.(StrPos(VPo.StSchl, '%') <> -1), Mid$(VPo.StSchl, StrPos(VPo.StSchl, '%')-2,3), '(%)'))
FStr$(Val(VPo.Mge),'#,###,##&.##')
"Zahlbar rein netto bis¶" +Date$(JulianToDate(DateToJulian(AktVog.Dat)+AktVog.NettoTg),'%02d.%02m.%4y')
oder mit der "AddDays"-Funktion: Date$(AddDays(AktVog.Dat,AktVog.NettoTg),"%02d.%02m.%y")
Folgende Einstellungen sind vorzunehmen:
If(Kopie>0,Str$(Kopie,0,0)+". Kopie") --> Ausgabe: 1. Kopie, 2. Kopie, usw.
If(Kopie>0,Str$(Kopie,0,0)+". Duplikat") --> Ausgabe: 1. Duplikat, 2. Duplikat, usw.
Um z.B. den Gesamtpreis eines Vorgangs von DM in Euro umzurechnen, kann folgende Funktion genutzt werden:
External$("Betrag(VPo.PrNt|'DEM'|'EUR')")
Bedeutung der einzelnen Variablen:
AuftBetragL:
Berechnet die in der Funktion hinterlegte Variable und formatiert das Ergebnis mit der im Programm hinterlegten Anzahl der Nachkommastellen für Beträge. Falls das Ergebnis 0 wiedergibt, wird eine leere Zeichenfolge zurückgegeben.
AktVog.GPreisNt:
Gibt den Gesamtpreis eines Vorgangs aus.
Variable|'Währung1'|'Währung2'):
Über diesen Ausdruck wird definiert, wie die angegebene Variable umgerechnet werden soll. Hierbei ist die Währung 1 die "Quellwährung", aus der umgerechnet werden soll. Währung 2 ist die "Zielwährung", in die der Ausgabewert der Variable gewandelt werden soll.
Das Gewicht im Vorgang ( VPo.Gew ) soll nur dann ausgegeben werden, wenn ein Gewicht vorhanden ist. Ist das Gewicht = 0 soll nicht gedruckt werden.
Cond(VPoGew<>0,External$('Gewicht(VPoGew)'))
Soll in einem Layout eine Anrede mit "Sehr geehrter Herr X", "Sehr geehrte Frau Y" oder "Sehr geehrte Damen und Herren," (wenn kein Ansprechpartner eingetragen wurde) ausgegeben werden, kann dies über folgende Formel umgesetzt werden:
"Sehr "+If(Left$(AktVog.Ans.Na3,4)="Herr","geehrter "+AktVog.Ans.Na3,
If(Left$(AktVog.Ans.Na3,4)="Frau", "geehrte "+ReName3, "geehrte Damen und Herren,"))
Die Variable AktVog.Ans.Na3 kann natürlich auch durch weitere Variablen wie z.B. AktVorg.Re.Na3 ersetzt werden.
1. abweichende Artikelnummer
Cond(VPo.AbwArtNr <>'',VPo.AbwArtNr,VPo.ArtNr)
Diese Formel gibt die abweichende Artikelnummer aus. Wurde keine abweichende Artikelnummer hinterlegt, wird die "normale" Artikelnummer ausgegeben.
2. abweichende Artikelbezeichnung (lang)
Cond(External$('DBInfo("AbwArtikelDaten"|AktVog.AdrNr|VPo.ArtNr|"ArtBez")') <>"Keine Eintragung...",External$('DBInfo("AbwArtikelDaten"|AktVog.AdrNr|VPo.ArtNr|"ArtBez")'))
3. abweichende Artikelkurzbezeichnung
Cond(External$('DBInfo("AbwArtikelDaten"|AktVog.AdrNr|VPo.ArtNr|"ArtKuBez")') <>"Keine Eintragung...",External$('DBInfo("AbwArtikelDaten"|AktVog.AdrNr|VPo.ArtNr|"ArtKuBez")'))
Ist in der Position in den Feldern "Einzelpreis" und "Preis" kein Wert enthalten, kann mit folgender Formel an dieser Stelle 0,00 ausgegeben werden:
Diese Formel zählt den Inhalt der Vorgangspositions-Bezeichnung von rechts ausgehend und schneidet das letzte Zeichen (von rechts ausgehend) ab.
Weitere Themen