Wie kann die Ausweisung eines Null-Betrages verhindert werden?

External-Funktion: External$('BetragL(Art.Lief.Ek0.Preis)') 

Cond-Bedingung: Cond(Art.Lief.Ek0.Preis=0,"",Str$(Art.Lief.Ek0.Preis,0,2)) 

Wie kann der Tausenderpunkt durch ein Komma und das Komma vor der Dezimalstelle durch einen Punkt ersetzt werden? 

Ziel: Beim Druck der Preise soll der Tausenderpunkt durch ein Komma ersetzt werden und das Komma vor den Dezimalstellen durch einen Punkt. D.h. anstelle von 1.148,25 soll die folgende Formatierung verwendet werden: 1,148.25 

Dazu genügt es nicht, Punkt und Komma in der Funktion FStr$ zu vertauschen. Mit der Funktion StrSubst$ müssen die Zeichen gesucht und ersetzt werden. Die folgende Formel liefert das gewünschte Ergebnis: 

StrSubst$(StrSubst$(StrSubst$(Fstr$(VPo.EPrNt,"EUR #,###,##&.##"),'.','!'),',','.'),'!',',') 

Erläuterung: 

Fstr$(VPo.EPrNt,"EUR #,###,##&.##") 

Mit dieser Formel wird die Variable, z.B. VPo.EPrNt, mit Tausenderpunkten formatiert dargestellt. Ausgegeben wird ein String. 

StrSubst$(Fstr$(VPo.EPrNt,"EUR #,###,##&.##"),'.','!') 

Mit dieser Formel wird der zuvor erhaltene String verändert. Enthaltene Punkte werden durch ein Ausrufezeichen ersetzt. Dies ist erforderlich, denn mit der nächsten Ersetzung werden Komma durch Punkte ersetzt. Dazu wird der zuvor erhaltene String wieder mit der StrSubst$-Funktion umschlossen: 

StrSubst$(StrSubst$(Fstr$(VPo.EPrNt,"EUR #,###,##&.##"),'.','!'),',','.') 

Abschließend wird dieser String wieder mit StrSubst$ umschlossen, um die Ausrufezeichen durch Komma zu ersetzen.

Wie kann ein "String mit Tausenderpunkt" in eine Zahl umgewandelt werden?

In einem Layout wird z.B. eine Zahl in die angegebene Währung umgewandelt (z.B. Nettopreis Leitwährung 1 wird in Nettopreis Leitwährung 2 umgewandelt). 

External$('Betrag(<Variablenname>'+<ISO Bezeichnung der Währung>+')') 

Als Ergebnis der Umwandlung erhält man einen "String mit Tausenderpunkt". Damit kann nicht gerechnet werden. 

Um aus diesem String wieder eine Zahl zu machen, müssen alle Tausenderpunkte gelöscht werden. Mit folgender Funktion werden alle Tausenderpunkte gelöscht und der bereinigte String in eine Zahl gewandelt. 

val(StrSubst$(External$('Betrag(VPo.PrNt'+CnvLW2+')') ,'.',''))

Warum wird die Fußzeile mit dem Warenwert auf der letzten Seite / einer neuen Seite gedruckt, obwohl alle Positionen auf eine Seite passen? Wie kann dies verhindert werden?

Der Grund dafür ist, das die Zeilendefinition der Fußzeile auf der letzten Seite (diese weist den Warenwert aus) mehr Platz benötigt als die Zeilendefinition 2 der Fußzeile, welche die Zwischensumme ausweist. 

Werden in einem Vorgang nun genau so viele Positionen erfasst, dass diese in den zugewiesenen Platz passen, aber für die Fußzeile nicht mehr ausreichend Platz zur Verfügung steht, so wird der Warenwert auf die nächste Seite "verschoben". 

Dies kann umgangen werden, indem man einige Zeilenumbrüche in die Zeilendefinition 2 der Fußzeile einfügt. 

Dies könnte z.B. wie folgt aussehen: 

"¶¶¶" + 'Zwischensumme' 

"¶¶¶" + AktVog.Waehr 

"¶¶¶" + External$('AuftBetrag(VPo.SumPreis)') 

Aufgrund der drei eingefügten Zeilenumbrüche vor jeder Spalte wird der Platzbedarf für die Zwischensumme ausreichend groß. Dadurch wird verhindert, dass der Warenwert ohne weitere Position auf der letzten Seite ausgegeben wird.

Wie kann der Tag eines bestimmten Datums in "Klarschrift" ausgegeben werden?

Mit nachfolgender Formel wird für das Datum 01.03.2003 z.B. "Montag" ausgegeben: 

Date$(Datum,'%D')

Wie kann im Layout bei der Seitenzahl gedruckt werden, wie viele Seiten der Druck hat?

Funktion: TotalPages$() 

1. Möglichkeit: auf dem Druck soll "Seite 3 von 5" ausgegeben werden 

'Seite '+Page$()+' von '+TotalPages$() 

2. Möglichkeit: Folgender Ausdruck soll erreicht werden 

"Seite 1/ Folgeseite 2" auf den ersten Seiten 

"Seite 2/ Folgeseite 3" 

"Seite 3/ 3" auf der letzten Seite. 

Dazu muss in die Fußzeile der Tabelle folgende Formel eingetragen werden: 

cond(not LastPage() ,'Seite ' + Str$(Seite,0,0)+ " / Folgeseite " +Str$(Seite + 1,0,0), "")+cond(LastPage(),'Seite ' + Str$(Seite,0,0)+" /"+ Str$(Seite,0,0),"")

Wie kann man den aktuellen Umrechnungskurs einer Währung ausgeben lassen?

Basiswährungsfaktor: External$('DBInfo("Fremdwaehrung"|"US-$"|"BaWFak")') 

Fremdwährungsfaktor: External$('DBInfo("Fremdwaehrung"|"US-$"|"FrWFak")')

Wie kann man die ausgegebenen Datensätze eines Druckes durchnummerieren?

Mit folgenden Variablen können in den Layouts (hier die Layouts für Mahnungen) die Positionen durchnummeriert werden: 

LL.FCountPrintedDataThisPage ->für jede Seite bei 1 beginnend 

LL.FCountPrintedData -> für alle Datensätze auf der ersten Seite mit 1 beginnend ohne auf der nächsten Seite wieder bei 1 zu beginnen

Wie muss das Datum formatiert werden, um es in Verbindung mit einem Text auszugeben?

Date$(Datum,'%02d.%02m.%4y')

Wie muss die Uhrzeit formatiert werden, um diese in Verbindung mit einem Text auszugeben?

Time$('%02h:%02i:%02s')

Wie kann der Druck einer Liste optional durch einen frei eingebbaren Zeitraum eingeschränkt werden?

Falls der Druck einer Liste aufgrund einer Bereichsauswahl und zusätzlich nach einem bestimmten Datum eingeschränkt werden soll, kann dies über die "AskString"-Funktion realisiert werden. 

Wird diese Funktion im zu druckenden Layout unter PROJEKT - FILTER hinterlegt, werden beim Druck zwei Dialogfenster (für Eingabe des "Von-Datums" und des "Bis-Datums") angezeigt. 

Datum wird beim Druck nur einmal abgefragt: 

DateToJulian(OPo.BuchDat)>=DateToJulian(Date(AskString$("Von Datum",.F.,"01.01.2000",10))) and DateToJulian(OPo.BuchDat)<=DateToJulian(Date(AskString$("Bis Datum",.F.,"01.01.2000",10))) 

Datum wird bei jedem Datensatz abgefragt: 

DateToJulian(OPo.BuchDat)>=DateToJulian(Date(AskString$("Von Datum",.T.,"01.01.2000",10))) and DateToJulian(OPo.BuchDat)<=DateToJulian(Date(AskString$("Bis Datum",.T.,"01.01.2000",10))) 

In dieser Formel wurde das .F. durch .T. ersetzt.

Wie können String-Variablen addiert werden?

STR$(val(ChrSubst$(VPo.EPreis,TsdSep)) + val(ChrSubst$(VPo.RabBet,TsdSep)),0,2)

Weitere Themen


  • No labels