Variablen-Zuweisung

Aus FaktuLux
Wechseln zu: Navigation, Suche

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.