infra:NET User
 
×
9921.19 Rechenregeln definieren
Nach Abschluss der Beschreibung eines Regeltyps mit der Taste <F9> erscheint folgender Bildschirm:
Abbildung: Rechenregeln definieren
Vor der Beschreibung der Eingabefelder der Rechenregelzeilen werden nachfolgend zunächst die in einer Rechenregel verwendbaren Rechenfeldtypen beschrieben. Die verschiedenen Typen werden durch das erste Zeichen einer Rechenfeldnummer identifiziert.
Es existieren fünf Rechenfeldtypen:
Konstanten (K..)
Einer Konstanten kann direkt ein bestimmter Wert oder eine Benutzereingabe zugewiesen werden. Jede Konstante hat ein frei definierbares Feldformat und kann als Listenelement ausgegeben werden.
Rechenfelder (R..)
Ein Rechenfeld ist ein rein numerisches Feld, mit dem lediglich gerechnet werden kann. Rechenfelder haben kein Feldformat und können daher zum Beispiel für Rechnungen ohne Rundung auf ein bestimmtes Format eingesetzt werden.
Ergebnisfelder (E..)
Ein Ergebnisfeld ist ein erweitertes Rechenfeld mit einem frei definierbaren Feldformat. Ergebnisfelder können nicht nur numerische Werte, sondern zum Beispiel auch Texte weiterreichen bzw. beinhalten. Ergebnisfelder können als Listenelemente ausgegeben werden. Numerische Werte werden immer auf das Feldformat gerundet.
Gruppensummenfelder (S..)
Ein Gruppensummenfeld ist ein automatisches Summierfeld mit einem frei definierbaren Feldformat. Durch eine einfache Zuweisung wird ein Gruppensummenfeld aktiviert. Es enthält, je nach Ausgabe, die Summe des zugewiesenen Felds bezüglich einer Ausgabegruppe oder der gesamten Liste.
Gruppensummenfelder können in Gruppenwechselfüßen und im Listenabschluss ausgegeben werden. Bei der Ausgabe in einem Gruppenwechselfuß enthält das Gruppensummenfeld die Summe über die aktuelle Gruppe, bei der Ausgabe im Listenabschluss automatisch die Summe über die gesamte Liste. In der Beispielliste "BEISPIEL 2" wird ein solches Gruppensummenfeld verwendet (Abbildung "Beispielliste 2" in Kapitel "Was ist eine Definition?").
Systemvariablen (Y..)
Der Listengenerator stellt bestimmte Informationen in Form von Systemvariablen zur Verfügung. Diese Systemvariablen können nur anderen Rechenfeldern zugewiesen und nicht selbst ausgegeben werden. Folgende Systemvariablen stehen zur Verfügung:
Y01
Bearbeiter der Liste (siehe Kapitel 9921.23 Zusatzangaben, Feld «Bearbeiter»
Y02
Listennummer der aktuellen Liste
Y03
Bezeichnung der aktuellen Liste
Y04
aktueller Exportdateiname
Y05
aktuelles Druckexemplar
Y06
Firmenname
Y07
Benutzername
Y08
aktuelles Datum
Y09
aktuelle Woche
Y10
aktuelle Uhrzeit
Alle Rechenfelder (nicht die Systemvariablen) werden beim Starten der Liste oder des Exports, Abschluss des Selektionsbildes, initialisiert und mit dem Wert "0" belegt (bis auf Ausnahmen, siehe "Rechenfelder ohne Initialisierung"). Während des Druckes oder Exports werden die Felder nicht auf 0 zurückgesetzt, sondern behalten immer ihren aktuellen Wert, so dass z.B. Summen oder Vergleiche über alle Listenzeilen möglich sind.
Beschreibung der Bildschirmfelder
A (Aktionsspalte)
Eingabe einer Zeilenoperation. Zulässige Eingaben sind
L
Löschen der aktuellen Rollzeile nach einer Sicherheitsabfrage
Beim Löschen einer Rechenzeile wird geprüft, ob ein in dieser Zeile definiertes Rechenfeld in einer anderen Rechenzeile oder in Listenfeldern verwendet wird. Ist dies der Fall, so kann die Zeile nicht gelöscht werden.
H
Hinzufügen weiterer Rollzeilen
" "
Keine Aktion, bearbeiten der aktuellen Rollzeile
Marke
In diesem Feld kann ein Text eingegeben werden, der als Sprungziel in einer Verzweigung (IF) oder Sprunganweisung (JMP) verwendet werden kann.
Erg. (Ergebnis oder Anweisung)
Hier kann die Nummer eines Rechenfelds oder eine Anweisung eingegeben werden. Bei der Eingabe einer Rechenfeldnummer wird dem jeweiligen Rechenfeld durch die Rechenzeile ein Wert zugewiesen, der von den weiteren Eingaben abhängig ist.
Als Anweisung ist eine bedingte Verzweigung IF, ein unbedingter Sprung JMP oder eine Endeanweisung END zulässig. Bei einer bedingten Verzweigung wird die anzugebende Vergleichsoperation (Feld «Op. (Operator)») ausgewertet. Ist der Vergleich positiv ausgefallen, so wird die Verarbeitung in der Rechenzeile fortgesetzt, deren Marke mit der anzugebenden Zielmarke der Verzweigung übereinstimmt. Bei negativem Vergleichsergebnis wird die nächste Rechenzeile verarbeitet. Ein unbedingter Sprung setzt die Verarbeitung in der Rechenzeile fort, deren Marke mit der angegebenen Zielmarke übereinstimmt.
Bei einer Endeanweisung wird die Bearbeitung der Rechenregel abgebrochen.
1./2.Operand
Die zwei Operanden können jeweils Rechenfelder oder Felder aus Dateien sein. Rechenfelder werden durch Eingabe der Rechenfeldnummer im ersten Feld eines Operanden verwendet. Das zweite Eingabefeld des entsprechenden Operanden wird daraufhin ausgeschaltet. Ein Feld aus einer Datei wird jeweils durch den Index der Datei im ersten Feld und dem Index des zu verwendenden Felds im zweiten Feld eines Operanden angesprochen. Ein Feld kann sowohl aus der Leitdatei als auch aus einer Koppeldatei stammen. Koppeldateien werden durch einen Stern gekennzeichnet. In der Meldungszeile am Bildschirm werden ggf. die Datei- und Feldbezeichnung des Operanden, auf dem sich der Eingabe-Cursor befindet, angezeigt.
Bei der Definition einer Konstanten werden keine Operanden zugelassen.
Op. (Operator)
An dieser Stelle wird entweder die Vergleichsoperation für eine bedingte Verzweigung (IF) oder eine mathematische Verknüpfung für die beiden Operanden angegeben. Durch die Eingabe eines Leerzeichens wird die Rechenzeile zu einer einfachen Zuweisung. Der Wert des ersten Operanden wird an das angegebene Feld in der Ergebnisspalte weitergegeben. Bei Verzweigungen ist dies nicht zulässig.
Mögliche Vergleichsoperatoren:
Ist der erste Operand kleiner als der zweite, so ist die Bedingung erfüllt.
Ist der erste Operand größer als der zweite, so ist die Bedingung erfüllt.
=
Die Bedingung ist erfüllt, wenn Operand eins und zwei den gleich Wert haben.
(Neben numerischen Feldern können auch Textfelder miteinander verglichen werden)
Mögliche mathematische Operatoren:
+
Die Operanden eins und zwei werden addiert.
(Handelt es sich bei den Operanden um Textfelder, so werden die jeweiligen Inhalte aneinander gehängt -> aus "Fuß" + "ball" würde "Fußball")
-
Operand zwei wird von Operand eins abgezogen.
*
Die Operanden eins und zwei werden miteinander multipliziert.
/
Operand eins wird durch Operand zwei geteilt.
\
Operand eins wird durch Operand zwei ganzzahlig geteilt.
Ziel/Format
Für eine bedingte Verzweigung oder einen Sprungbefehl wird in diesem Feld die Zielmarke eingetragen, an der die Verarbeitung bei erfüllter Bedingung oder generell fortgesetzt werden soll.
Wird einem Ergebnisfeld, einem Gruppensummenfeld oder einer Konstanten in der aktuellen Rechenzeile das Ergebnis einer Operation oder ein Wert zugewiesen, so kann in diesem Feld das Ausgabe- bzw. Feldformat des jeweiligen Ergebnis- oder Gruppensummenfelds bzw. der Konstanten angegeben werden. Jedem Ergebnis- oder Gruppensummenfeld und jeder Konstanten muss mindestens einmal ein Format zugewiesen werden. Falls Sie das Format eines Felds mehr als einmal angeben, dürfen die Formatangaben nicht unterschiedlich sein. Abweichungen werden erkannt und gemeldet.
Folgende Feldformate sind zugelassen:
Nx.y
Numerisch mit x Vorkomma- und y Nachkommastellen. Die Summe aus x+y darf maximal 20 ergeben.
Nx
Numerisch mit x Stellen ohne Nachkommastellen. X darf maximal 21 betragen.
Cx
Textfeld mit x Zeichen.
D
Datum (Ausgabe als TT.MM.JJ).
W
Woche
U
Uhrzeit
Bezeichnung/Wert
In diesem Feld kann ein Kommentar zur aktuellen Rechenzeile oder zum Beispiel die Bezeichnung eines Rechenfelds, welches in dieser Zeile definiert wird, angegeben werden.
Falls im Feld «Erg.» eine Konstante angegeben wurde, kann im Feld «Bezeichnung/Wert» der Wert eingetragen werden, der der Konstanten zugewiesen wird. Dieser Wert kann sowohl numerisch als auch alphanumerisch sein. Er wird entsprechend dem Konstantenformat ausgewertet. Steht der Wert der Konstanten bei der Beschreibung der Rechenregel noch nicht fest oder soll er bis zur Benutzung der Listendefinition offen gelassen werden, so kann die Konstante als Eingabefeld definiert werden. Ein Eingabefeld wird durch ein "?" als erstes Zeichen im Feld «Bezeichnung/Wert» gekennzeichnet. Nach dem Fragezeichen kann ein Text angegeben werden, der später bei der Eingabeaufforderung ausgegeben wird.
Da die Rechenregel vor dem Druck jeder neuen Listenzeile durchlaufen wird, würde die Eingabeaufforderung zu einer Konstante ebenfalls vor jeder neuen Listenzeile ausgegeben werden. Das kann für diverse Anwendungsfälle sinnvoll sein, in der Regel ist jedoch eine einmalige Eingabeaufforderung erwünscht. Um das zu erreichen, muss in der Rechenregel eine Zählvariable in Form eines Rechenfelds definiert werden, die die Durchläufe der Rechenregel mitzählt. In einer Verzweigung kann dann geprüft werden, ob es sich um den ersten Durchlauf handelt oder nicht. Daraufhin kann dann beim ersten Durchlauf die Eingabe der Konstanten verlangt werden. Zu diesem Ablauf finden Sie unten ein Beispiel.
Rechenfelder ohne Initialisierung
In der Regel werden alle Rechenfelder zu Beginn eines Druckes oder eines Exports mit Null-Werten initialisiert. Wenn Sie diese Initialisierung verhindern möchten, geben Sie bei der Definition eines Rechenfelds im Feld «Bezeichnung/Wert» als erstes Zeichen ein "!" an. Die so gekennzeichneten Felder behalten ihren Inhalt solange, bis Sie entweder das Modul SIB-T02 verlassen oder zum Anwahlbildschirm des Moduls SIB-T02 zurückkehren (Kapitel "Anwahl einer Definition").
Das folgende Beispiel zeigt einen Anwendungsfall für diese Besonderheit:
Abbildung: Rechenregel aus Beispielliste 6
Die zuvor abgebildete Rechenregel wird in der Beispielliste "BEISPIEL 6" verwendet. Nach Anwahl dieser Listendefinition kann im Selektionsbildschirm eine einzige Teilenummer angegeben werden. Anschließend geben Sie im Feld «Anzahl Exemplare» einen Wert zwischen 1 und 99 ein und schließen die Selektion mit der Taste <F9> ab. Sobald das selektierte Teil gefunden wird, erscheint ein Eingabefenster mit der Aufforderung, eine Seriennummer einzugeben. Das ist die Eingabe der Konstante "K02" aus der Rechenregel. Nach der Eingabe einer 10stelligen Zahl werden Etiketten für das gewählte Teil gedruckt, auf denen neben der Teilenummer, der Bezeichnung und dem Verkaufspreis eine laufende Seriennummer ausgegeben wird. Wurde die gewünschte Anzahl Etiketten gedruckt, so können Sie weitere Etiketten drucken. Die Seriennummer wird ohne eine erneute Eingabeaufforderung weiter hochgezählt. Wenn Sie die Seriennummer noch einmal eingeben möchten, müssen Sie zuerst die Listendefinition erneut anwählen. Dadurch werden alle Rechenfelder neu initialisiert und das Eingabefenster öffnet sich beim Start des Etikettendrucks.
Auswahlfunktionen (Taste <F3>)
L
Rechenvorschrift löschen
Nach einer Sicherheitsabfrage kann die gesamte Rechenregel gelöscht werden. Es erfolgt keine Prüfung, aber das Verlassen der Rechenregeln ist erst möglich, wenn alle verwendeten Konstanten, Ereignisfelder usw. definiert sind.
Funktionstasten
<F2>
Standard
Über die Taste <F2> können Sie die aktuelle Rechenregel zur Verwendung als Standard-Regel speichern oder eine Standard-Regel für die aktuelle Liste importieren. Um eine Rechenregel zu importieren, darf in der Rechenvorschrift noch keine Rechenzeile definiert sein. Evtl. müssen diese zuvor über <F3> "L" gelöscht werden.
Um die aktuelle Rechenregel zu speichern, müssen Sie eine Nummer und eine sprechende Bezeichnung für die Rechenregel angeben. Über die angegebene Nummer kann die Standard-Rechenregel in andere Listendefinitionen importiert werden. Eine bereits vorhandene Standard-Regel mit der gleichen Nummer kann auf Wunsch überschrieben werden. Nur so sind Änderungen einer Standardrechenregel möglich.
Eine Standard-Rechenregel wird durch die Eingabe der jeweiligen Nummer geladen. Über die Auskunft <F4> können Sie eine vorhanden Standard-Rechenregel auswählen.
Hinweis
Bei der Verwendung von Standard-Rechenregeln kann es vorkommen, dass eine Standard-Rechenregel Felder aus Dateien verwendet, die in der aktuellen Listendefinition noch nicht angekoppelt sind oder dass bei der Speicherung einer Standard-Rechenregel eine andere Leitdatei als in der aktuellen Listendefinition verwendet wurde. Beim Laden einer Rechenregel prüft der Listengenerator die verwendeten Dateien in der Rechenregel und nimmt ggf. fehlende Koppelungen vor bzw. bietet Ihnen in diesem Fall ein Koppelfenster an, welches Sie in der Regel nur noch mit <F9> bestätigen müssen.