Variablen-Zuweisung
Info: Formulare, Formular-Typen, Formular-Befehle
In den Formularen können Sie verschiedene Variablen für Zuweisungen und Berechnungen verwenden. Aus den Anfangszeiten von FaktuLux stammen die nummerischen Variablen {VS.41} bis {VS.45}, sowie die Textvariablen {VS.46} bis {VS.49}. Diese lassen sich nicht benennen. Sie können aber weiterhin verwendet werden. Den 40 neuen Variablen, je zehn für Ganzzahl, Kommazahl, Text und Datum können Sie im Formular Namen zuweisen und sie über diese auch ansprechen.
Die Zuweisung oder Manipulation einer Variablen beginnt mit einem Gleichheitszeichen. Im Anschluss können Sie Werte bzw. Text mit Variablen kombinieren. Variablenbezeichner werden innerhalb einer Zuweisung nicht mehr in geschweifte Klammern gesetzt. Sie werden am großen V erkannt.
Nummerische Variablen
Als nummerische Variablen stehen {VS.41} bis {VS.45}, {Vi.0} bis {Vi.9} und {Vr.0} bis {Vr.9} zur Verfügung. Zur Berechnung können alle anderen nummerischen Variablen und Datenbankfelder verwendet werden.
Beispiele: {Vi.0=9} setzt Variable i.0 auf 9 {Vi.2=+7} addiert 7 zu Variable i.2 {Vi.1=Vi.0/5} weist Variable i.1 das Ergebin aus Variable i.0 dividiert durch 5 zu {Vr.0=VS.1+V2.Mahngebuehren} ergibt die Summe der Offenen Posten zzgl. der in den Einstellungen definierten Mahngebühren Außer den Grundrechenarten (+, -, *, /) sind auch > für DIV und < für MOD erlaubt. {Vi.Jahre=Vi.Monate}{Vi.Jahre=>12}{Vi.Monate=<12} Berechnet aus eine Anzahl von Monaten die Monate und Jahre Weisen Sie einer Integer-Variable ein Datumsfeld zu, entspricht das Ergebnis der Anzahl der Tage seit dem 30.12.1899. Über die Verrechnung zweier Daten, können Sie die Differenz an Tagen ermitteln Weisen Sie ein logisches Feld zu, welches in Masken zumeist über einen Ankreuz- oder Hakenfeld dargestellt wird, so entsprechen die unterschiedlichen Zustände folgenden Werten: 1 = Wahr (Haken gesetzt) 0 = Unwahr (Haken nicht gesetzt) -1= undefiniert (Feld grau dargestellt) Wenn Sie in einer Bedingung sicher alle Werte finden wollen, bei denen der Haken nicht gesetzt ist, muss die Funktion daher nicht {Variable}=0 sondern {Variable}<1 lauten!
Text-Variablen
Die Variablen {VS.46} bis {VS.49}, sowie {Vs.0} bis {Vs.9} dienen der Speicherung von Text.
Beispiele: {Vs.0=Name} weist Variable s.0 den Inhalt "Name" zu {Vs.0=V10.Name1} setzt Variable s.0 auf Name1 der aktuellen Adresse {Vs.0=+X0} hängt an den Inhalt von s.0 "X0" an Hängen Sie einen leeren Parameter an, wird der Variablen ein Zeilenumbruch hinzugefügt. Dies kann für den Export oder beim Import für die spätere Zuweisung an ein Memo-Feld hilfreich sein. Beispiele: {Vs.0=+} hängt an den Inhalt von s.0 einen Zeilenumbruch an {Vs.0=++X0} hängt an den Inhalt von s.0 "X0" in einer neuen Zeile an Weisen Sie den Inhalt eines Memo-Feldes einer Textvariablen zu, können Sie mittels Parameter A<x> einzelne Absätze auswählen. ,A<x> Ein Absatz endet mit einem Zeilenumbruch und kann im Druck auch mehrere Zeilen umfassen. Über eine Bereichskennung können auch mehrere Absätze ausgewäht werden. Die FaktuLux-Bereichskennungen sind ^A (nur auf Angebote drucken), ^T (nur auf Auftragstasche drucken), ^L (nur auf Lieferscheine drucken), ^R (auf alle Belege außer Angebote drucken) und ^I (nur für internen Gebrauch). Sie können aber auch beliebige eigene Bereiche definieren. Achten Sie jedoch darauf nur Buchstaben zu verwenden, da Ziffern die Nummer des Absatzes definieren. Damit frei definierte Bereiche (nicht ^ATLRI) bei der Übernahme in Belege gelöscht werden, muss im Bereich [System] der Schalter ArtikelTextPlus=1 in der FaktuLux.Ini eingetragen werden! x=0 Gesamter Text, der keiner Bereichseinschränkung unterliegt x=1-9 Entsprechender Absatz 1 - 9 x=A-Z Nur Text der angegebenen Bereichskennung Beispiele: {Vs.1=V20.Bezeichnung,AA} wiest nur den mit ^A markierten Teiltext der Artikelbezeichnung zu. {Vs.1=V20.Bezeichnung,A1} weist nur den ersten Absatz der Artikelbezeichnung zu. Möchten Sie einen Text zuweisen, der mit einem großen V beginnt oder der eine Grundrechenart als Text enthält, müssen die den Text in Hochkommata einschließen. Beispiele: {Vs.1='+'} setzt Stringpuffer-1 "+" {Vs.1='Vase'} setzt Stringpuffer-1 "Vase" Feldmanipulation: Alle Befehle zur Veränderung des Feldinhaltes werden mit einem doppelten Gleichheitszeichen eingeleitet. So lässt sich der Inhalt eines Textspeichers auf eine feste Länge setzen. Der Befehl hierzu beginnt mit einem Positionscode, dem einzufügenden Zeichen und der gewünschten Länge. Ist der Inhalt länger als angegeben und das Positionscode-Zeichen ein Großbuchstabe, wird am entsprechenden Ende abgetrennt. Bei einem Kleinbuchstaben wird nur bei Bedarf verlängert. Beispiel: {Vs.0==L012} Füllt den String links mit Nullen bis auf eine Länge von 12. {Vs.0==R 4} Hängt Leerzeichen an bis zu einer Länge von 4 Zeichen, ist der Inhalt länger, wird er gekürzt. {Vs.0==r.5} Hängt Punkte an bis zu einer Länge von 5 Zeichen, trennt aber nichts ab, wenn der Inhalt länger als 5 Zeichen ist. Außerdem lässt sich die Gesamtlänge in Abhängigkeit der tatsächlichen Länge verändern. Beispiel: {Vs.1==X10} Fügt links halb so viele Leerzeichen ein, als der Inhalt kürzer als 10 Zeichen ist. Diese Funktion ist Hilfreich bei Zentrierten Darstellung fixer (unproportionaler) Schriften. {Vs.1==Y310} Fügt links dreimal so viele Leerzeichen ein, als der Inhalt kürzer als 10 Zeichen ist. Diese Funktion ist Hilfreich bei der Rechts orientierten Ausrichtung bei Proportionalschriften. Auch ist es möglich, an einer Bestimmten Stelle ein Zeichen einzufügen ... Beispiel: {Vs.0==P-10} Fügt an der 10. Stelle einen Bindestrich ein. {Vs.0==P 4} Fügt an Position 4 ein Leerzeichen ein. Zum Verändern einzelner Zeichen verwenden Sie ein kleines "p" ... Beispiel: Sie möchten in einem in {Vs.0} gespeicherten Datum des Formats tt.mm.jjjj die Punkte durch Bindestriche ersetzen: {Vs.0==p-3}{Vs.0==p-6} ... oder Zeichen zu löschen Beispiel: {Vs.0==D410} Löscht 4 Zeichen ab der 10. Stelle. {Vs.0==DA } Löscht alle Leerzeichen aus dem Text. {Vs.0==DA,-} Löscht alle ",-" aus dem Text. Haben Sie einen Fließtext oder Teile eines solchen an eine Textvariable übergeben, können Sie die enthaltenen Zeilenumbrüche durch beliebige Zeichen ersetzen. Beispiel: {Vs.0==Z\r} Ersetzt alle Zeilenumbrüche durch "\r". Für den Import von Daten kann der umgekehrte Weg hilfreich sein. Über den #-Parameter können Sie alle Vorkommen der folgenden Zeichenkette durch Zeileumbrüche ersetzen. Beispiel: {Vs.0==#\r} Ersetzt alle "\r" durch Zeilenumbrüche. Weisen Sie ein logisches Feld zu, so lautet der Inhalt "Wahr", wenn der Haken gesetzt ist. In allen anderen Fällen lautet der Inhalt "Falsch".
Datums-Variablen
Die Variablen {Vd.0} bis {Vd.9} dienen der Datum-Speicherung.
Folgende Konstanten Operatoren gelten für die Datumsvariablen @ - Druckdatum < - Erster Tag des gespeicherten Monats > - Letzer Tag des gespeicherten Monats Beispiel: {Vd.0=@<} weist der Variable den Ersten des aktuellen Monats zu. Enthält ein zugewiesener Wert einen Punkt, wird dieser als Datum interpretiert, andernfalls als Integer-Wert.