Kapitelübersicht
7 Rechnen mit Werten, Zeiten oder Schluesselinhalten (Formeln)
7.1 Anforderung von Formeln
7.2 Werteformeln
7.2.1 Standardannahme fuer Kommastelle und Dimension
7.2.2 GESAMT-Operand in Werteformeln
7.2.3 TOTAL -Operand in Werteformeln
7.2.4 KUMUL -Operand in Werteformeln
7.2.5 RANG -Operand in Werteformeln
7.2.6 GRANZ -Operand in Werteformeln
7.2.7 AKT_MENGE -Operand in Werteformeln
7.3 Zeitraumformeln
7.4 Schluesselformeln
7.5 Zwischen- und Endsummen im Spaltenschluessel
7.6 Anforderung von Funktionen
7.7 Restriktionen bei Verwendung von Formeln und Funktionen
7.8 Rundungsfunktion bei Werten
7.9 Reihenfolge bei der Abarbeitung von Berechnungsanweisungen (Option SVZ)
7.10 Die Formelbibliothek (Online)
7.11 Anforderung von Formeln (ONLINE)
7.12 Editierfunktionen in der Maske VS114
7.13 Anforderung von Formeln (BATCH-Sprache)
7.14 Definition von Formeln durch Formeln aus der Formelbibliothek
7.15 Bedingungen in Formeln (IF / THEN / ELSE)
Kap. 7
Rechnen mit Werten, Zeiten oder Schluesselinhalten (Formeln)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Kap. 7.1
Anforderung von Formeln
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Formeln sind temporaer aus Elementen der Datenbasis - ueber
Berechnungen mit Direktwerten - erzeugte Kategorien.
Entsprechend der drei Grundelemente der Datenbasis gibt es
drei Arten von Formeln:
- Werteformeln
- Zeitraumformeln
- Schluesselformeln.
Formeln koennen also an Stellen angefordert werden, an denen
(1) - ein Wert
(2) - ein Zeitpunkt
(3) - eine Schluesselauspraegung
stehen kann.
Dabei duerfen maximal zu zwei Spaltenschluesseln Formeln ange-
fordert werden.
Weitere Beschraenkungen liegen fuer besondere Funktionen vor.
(siehe hierzu weiter unten in Kap. 7)
Aufbau von Formeln
------------------
Formeln bestehen aus einer Formelbezeichnung und einem
arithmetischen Ausdruck:
BEZEICHNUNG = arithmetischer Ausdruck
BEZEICHNUNG ist eine beliebige Zeichenkombination.
Es gibt zwei Arten von Formeln, die sichtbaren (auflistbar) und
die unsichtbaren (werden nie aufgelistet).
Eine unsichtbare Formel erhalten Sie, wenn Sie fuer BEZEICHNUNG
einen Namen waehlen, der mit "NN" beginnt.
Beispiel:
NNFORMEL1 = '0185' + '0285'
EXFORMEL2 = NNFORMEL1 + 10
NNFORMEL1 erscheint nicht auf der Liste, ihr Wert fliesst aber
in EXFORMEL2 ein, die ausgedruckt wird, da sie keinen NN-Formel-
namen traegt.
Fuer die Beschreibung der Formel haben wir die Form des
arithmetischen Ausdrucks gewaehlt. Auf diese Weise koennen sehr
viele, recht unterschiedliche Berechnungen vorgenommen werden.
Allerdings bedingt diese Freiheit bei der Erfassung und der
Kombination einen weitgehenden Verzicht auf Benutzerfuehrung im
Dialog. Die Erfassung der arithmetischen Ausdruecke in Formeln
ist daher fuer Dialog und BATCH-Sprache identisch.
Formeloperationen und -operanden
--------------------------------
- Operationen: Addition +
Subtraktion -
Multiplikation *
Division /
Division % ( a % b = 0, wenn b = 0,
sonst = a / b )
Division : ( a : b = 1, wenn b = 0,
sonst = a / b )
Exponentiation **
- Operanden: - Werte bei (1)
Zwischensummen (1)
Zeitraeume (2)
Schluesselauspraegungen (3)
- ganzzahlige Konstanten
- Formeln
Die Prioritaet der Operationen ist die allgemein uebliche:
1. ** Exponentiation (potenzieren und radizieren)
2. * Multiplikation
/ Division
3. + Addition
- Subtraktion.
Innerhalb gleicher Prioritaet wird von links nach rechts
ausgewertet. Ist eine andere Reihenfolge gewuenscht, so sind
runde Klammern zu benutzen.
Des weiteren gibt es noch folgende Restriktionen:
Division x / y y ^= 0 (Division durch 0)
Exponentiation x ** y y ganzzahlig fuer x < 0
y >= 0 fuer x = 0 (0 ** 0 := 1)
Beispiel:
Fuer ganzzahliges und positives n ist
potenzieren x ** n x beliebig
radizieren x ** (1 / n) x >= 0
Kap. 7.2
Werteformeln
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Zulaessige Operanden bei Werteformeln (Erlaeuterungen s. u.)
------------------------------------------------------------
- Ganzzahlige Direktoperanden
- Werte mit einfacher Anforderung
- Werte mit Zeitangabe
- Werte mit Arbeitsgebietsangabe
- Werte mit Inhaltsbedingungen
- Werte mit Zwischensummenbedingungen (*-Bedingungen)
- Werte mit Schluesselbedingungen
- Werteformeln (ueber Bezeichnung)
An eine Werteformel kann noch Druckaufbereitungsinformation
angehaengt werden. Sie wird von der eigentlichen Formel durch
ein Komma getrennt und in Klammern eingeschlossen.
Dies ist bei Werteformeln in der Online-Verarbeitung in saemtlichen
Werten in der Batch-Sprache moeglich.
Eine Aufbereitung hat folgende Form:
AUFBEREITUNG := (STELLENZAHL,NACHKOMMASTELLEN,
DIMENSION,SVZ)
Parameter koennen von hinten einfach weggelassen werden, von vorn
oder aus der Mitte muessen die nachfolgenden Kommata gesetzt wer-
den.
Beispiele:
,(6,2,DM,SVZ) : 6 Stellen, davon 2 Nachkommastellen mit Dimension
DM und mit einer Abarbeitungsregel (SVZ: Spalte
vor Zeile), wenn es sich um eine Formel handelt
,(6,2) : 6 Stellen, davon 2 Nachkommastellen, Dimension
ist nicht angegeben (blank)
,(6,,DM) : 6 Stellen, davon 0 Nachkommastellen, Dimension
DM
,(,,,SVZ) : Besagt fuer eine Formel, dass zuerst die Spalte
und danach die Zeile fuer die Berechnung heran-
gezogen werden soll
Werte mit einfacher Anforderung:
--------------------------------
Wird in einer Auswertung mit dem Schluessel ZEITRAUM operiert
und ist die Arbeitsgebietszuordnung eindeutig, so koennen die
Werte auch in Werteformeln ueber eine einfache Anforderung
angesprochen werden.
Es genuegt dann, die Bezeichnung bzw. Abkuerzung des Wertes
zu nennen.
Beispiel:
AUSZAHLUNG = LEISTUNG - ABZUEGE
Werte mit erweiterter Anforderung:
----------------------------------
Zu jedem Wert in einer Formel koennen Zusatzangaben definiert
werden. Diese stehen, durch Kommata getrennt, in einem Klammer-
ausdruck hinter der Wertebezeichnung oder -abkuerzung.
Folgende Zusatzangaben sind moeglich:
Zeitangabe
----------
Wird in einer Auswertung der Schluessel ZEITRAUM weggelassen,
so muessen zu jedem Wert, also auch zu den Werten in Werte-
formeln, Zeitangaben definiert werden.
Zeitangaben erwartet ASS immer als erste Zusatzoption. Werden
andere Zusatzangaben vorgenommen, ohne Zeitangaben, so muss
ASS das Fehlen der Zeitangaben durch ein vorausgehendes Komma
angezeigt werden.
Beispiele:
ohne Zusatzoption:
AUSZAHLUNG = LEISTUNG(0196)
AUSZAHLUNG = LEISTUNG(0196-1296)
mit Zusatzoptionen:
AUSZAHLUNG = LEISTUNG (0199,AGNR=1) - ABZUEGE (0199,AGNR=1)
AUSZAHLUNG = LEISTUNG (,AGNR=1) - ABZUEGE (,AGNR=1)
Fuer die Angabe der Zeiten gelten die gleichen Regeln wie fuer
die Auswahl von Zeiten zum Schluessel ZEITRAUM.
Es wird daher auf die Kap. 4.5.1 'Absolute Zeitangaben'
und Kap. 4.5.2 'Relative Zeitangaben' verwiesen.
Arbeitsgebietsangabe
--------------------
Ist die Zuordnung eines Wertes zu den ausgewaehlten Arbeitsge-
bieten nicht eindeutig, so muss auch in den Werteformeln eine
Zusatzangabe zum Wert vorgenommen werden.
Das Arbeitsgebiet wird ueber seine Nummer in dem Ausdruck
AGNR = referenziert.
Beispiel:
AUSZAHLUNG = LEISTUNG (,AGNR=1) - ABZUEGE (,AGNR=1)
Inhalts-, *- und Schluesselbedingungen
--------------------------------------
Zu einem Wert koennen zusaetzlich bis zu 20 Inhalts-, *- und
Schluesselbedingungen ausgewaehlt werden, die nur fuer diesen
Wert selektiv wirken. Mehrere Bedingungen zu einem Wert sind
als UND-Verknuepfungen zu interpretieren.
ODER-Verknuepfung
-----------------
In einer Werteformel kann aber ein Wert mehrmals angesprochen
werden. Auf diese Weise kann ueber die Summierung mehrerer
Wertanforderungen desselben Wertes mit verschiedenen Schluessel-
bedingungen eine ODER-Verknuepfung erreicht werden.
Form
----
Inhaltsbedingungen werden in der Form
VERGLEICHSOPERATOR VERGLEICHSINHALT
angefordert, *-Bedingungen werden in der Form
= * oder ^= *
angefordert, Schluesselbedingungen werden in der Form
SCHLUESSEL VERGLEICHSOPERATOR SCHLUESSELINHALT
angefordert.
Der Schluessel wird ueber seine Bezeichnung oder seine
Abkuerzung angesprochen.
Folgende Vergleichsoperatoren sind zulaessig:
'=', '^=', '<', '<=', '>', '>='
Bei Schluesseln mit ZEIT-TYP (siehe ST06) sind auch
chronologische Vergleiche moeglich, siehe 4.4.1.
Inhaltsbedingung
----------------
Ein Vergleichsinhalt ist eine (negative) Zahl, die Nachkomma-
stellen haben kann. Eine negative Zahl wird durch ein voran-
gestelltes Minus gekennzeichnet, Plus ist als Vorzeichen nicht
zulaessig. Die Position des Kommas wird durch ein Komma oder
einen Punkt markiert.
*-Bedingungen
-------------
ERGEBNIS = LEISTUNG(, ^= *) + ABZUEGE (, = *)
In Zwischen- oder Endsummenzeilen (*-Zeilen) liefert die
obige Formel die Summe aller ABZUEGE, in den anderen Zeilen
wird die jeweilige LEISTUNG dargestellt.
*-Bedingungen werden nur beruecksichtigt, wenn WERTE als
Spaltenschluessel angefordert ist.
Schluesselbedingungen
---------------------
Ist der genannte Schluesselinhalt kein ASS-Bezeichner, so
muss er in Hochkommata gesetzt werden.
Wird der Vergleichsoperator "=" benutzt, so muss die damit
angesprochene Schluesselauspraegung existieren. Wird der
zugehoerige Schluessel als Kopf-, Zeilen- oder Spalten-
schluessel selektiert, so muss die genannte Auspraegung
dort auch selektiert worden sein, entweder explizit als
Einzelauspraegung, als Formeloperand oder als Mitglied einer
Menge.
Bei den Vergleichsoperatoren "=" und "^=" ist die Angabe von
Fragezeichen (Maskierung) im Schluesselinhalt zulaessig (ver-
gleiche Kap. 4.4.1).
Beispiel:
Die Leistungen der Klassen 010 und 020 sollen mit 10 bzw. 20
Prozent Mehrwertsteuer gewichtet werden und als AUSZAHLUNGswert
berechnet werden. In Abhaengigkeit von den drei Auspraegungen
des Schluessels KLASSE soll der Wert LEISTUNG um einen bestimmten
Mehrwertsteuersatz erhoeht werden:
7% fuer die Auspraegung 010, 16% fuer die Auspraegung 020, kein
Mehrwertsteuersatz fuer die Auspraegung 025.
Eine derartige Aufgabe kann durch folgende Anforderung geloest
werden:
ASS;
AG: 9;
KS: ZEITRAUM = ( 0199);
ZS: KLASSE = ( 010,020,025);
SS: WERTE = (ANTEIL = (LEISTUNG +
LEISTUNG (,KLASSE = 010)* 7/100 +
LEISTUNG (,KLASSE = 020)* 14/100));
END;
Kap. 7.2.1
Standardannahme fuer Kommastelle und Dimension
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Standardannahme fuer die Stellenzahl (vor Komma) ist 15, fuer
die Nachstelle 0 und fuer die Dimension Blank.
Kap. 7.2.2
GESAMT-Operand in Werteformeln (Anteil eines Schluesselinhalts
an einem Gesamt- oder Teilbetrag eines Wertes)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Bei Berechnungen in den Werten koennen Ergebnisse von Zwischen-
oder Endsummenbildungen als Operanden verwendet werden, die sich
auf einen Kopf- oder Zeilenschluessel beziehen. Dazu ist der
sogenannte GESAMT-Operand erforderlich, der nur in Werteformeln
zulaessig ist und nur, wenn WERTE als Spaltenschluessel und der
betreffende (echte) Schluessel als Kopf- oder Zeilenschluessel
mit Zwischen- oder Endsumme angefordert wird.
Das allgemeine Format fuer die Verwendung des Gesamt-Operanden
sieht folgendermassen aus:
GESAMT(Schluessel,Wert,Summenniveau)
oder
GESAMT(Schluessel,Wert)
Mit dem Gesamt-Operanden wird eine angeforderte und bei der Aus-
wertung zur Verfuegung stehende Summenzeile angesprochen.
Ueber die Angabe des entsprechenden Schluessels und die gewuenschte
Anzahl an Stern- bzw. Pluszeichen (Summenniveau) wird die jeweilige
Zeile identifiziert, in der die anvisierte Summe steht, ueber den
Wert die Spalte. Die erste auftretende Summenzeile, die das ent-
sprechende Summenniveau repraesentiert, bleibt fuer die Berechnung
in der Formel solange gueltig, bis in der logischen Reihenfolge
der Abarbeitung die naechste Summenzeile des gleichen Summen-
niveaus zur Ermittlung ansteht (d. h. die urspruengliche Summe
ist nicht mehr relevant) und somit auch in der Formel wirksam
wird. Zur Berechnung wird also stets die naechste Zwischen- oder
Endsumme des gewuenschten Summenniveaus, die gerade fuer die
Ausgabe vorbereitet wird, herangezogen.
Gibt man beim GESAMT-Operanden kein Summenniveau (Stern oder Plus)
an, so nimmt ASS eine Endsummenanforderung (SUMME) fuer den
jeweiligen Schluessel an. Die nachfolgenden Beispielanforderungen
sind daher in ihrer Wirkung identisch.
Beispiel:
GESAMT( REISETARIF , LEISTUNG,*)
bzw.
GESAMT( REISETARIF , LEISTUNG)
Es soll ermittelt werden, welchen Anteil die Leistungen in den
einzelnen Tarifen an den gesamten Leistungen haben. Der Schluessel
REISETARIF habe die Auspraegungen 010, 015, 020.
Die Anforderung in BATCH-Sprache:
ASS ;
AG : REISEVERSICHERUNG ;
KS : ZEITRAUM = ( 0199,0299 ) ;
ZS: REISETARIF ;
SS: WERTE = ( LEISTUNG ,
ANTEIL = LEISTUNG * 100 /
GESAMT( REISETARIF , LEISTUNG,*) ,
( 6 ,, % ) ) ;
END ;
oder gleichbedeutend:
ASS ;
AG : REISEVERSICHERUNG ;
KS : ZEITRAUM = ( 0199,0299 ) ;
ZS: REISETARIF ;
SS: WERTE = ( LEISTUNG ,
ANTEIL = LEISTUNG * 100 /
GESAMT( REISETARIF , LEISTUNG ) ,
( 6 ,, % ) ) ;
END ;
Das Ergebnis:
+----------------------------------+
I ASS SEITE 1 I
I ZEITRAUM: 0199 I
I REISETARIF I LEISTUNG ANTEIL I
I I DM % I
+-------------+--------------------+
I 010 I 600,00 60 I
I 015 I 300,00 30 I
I 020 I 100,00 10 I
I I I
I * I 1000,00 100 I
+----------------------------------+
GESAMT bezieht sich hier auf die Summe 1000.
+----------------------------------+
I ASS SEITE 2 I
I ZEITRAUM: 0299 I
I REISETARIF I LEISTUNG ANTEIL I
I I DM % I
+-------------+--------------------+
I 010 I 600,00 40 I
I 015 I 600,00 40 I
I 020 I 300,00 20 I
I I I
I * I 1500,00 100 I
+----------------------------------+
GESAMT bezieht sich hier auf die Summe 1500.
Auch die Ergebnisse von Zwischensummenbildungen koennen, wie
gesagt, als 'GESAMT'-Operanden in Werteformeln verwendet werden.
Zum Beispiel soll ermittelt werden, welchen Anteil die Leistung
im einzelnen Tarif an den Leistungen innerhalb einer Gruppe von
Tarifen einnimmmt. Die Auswahl der Zwischensumme erfolgt durch
die Anzahl der Sterne im 'GESAMT'-Operanden.
Die Anforderung in BATCH-Sprache:
ASS ;
AG : REISEVERSICHERUNG ;
KS : ZEITRAUM = ( 0199 ) ;
ZS: REISETARIF = ( 010, 020, 025, 040, *,
081, 082, 090, 100, 110, 120, ** ) ;
SS: WERTE = ( LEISTUNG ,
ANTEIL = LEISTUNG * 100 /
GESAMT( REISETARIF , LEISTUNG , * ) ,
( 6 , 2 , PROZ ) ) ;
END ;
Ergebnis:
+--------------------------------+
I ASS SEITE 1 I
I REISETARIF I LEISTUNG ANTEIL I
I I DM PROZ I
+------------+-------------------+
I 010 I 100,00 50,00 I
I 020 I 20,00 10,00 I
I 025 I 30,00 15,00 I
I 040 I 50,00 25,00 I
I I I
I * I 200,00 100,00 I
I I I
I 081 I 320,00 71,11 I
I 082 I 10,00 2,22 I
I 090 I 40,00 8,88 I
I 100 I 30,00 6,66 I
I 110 I 30,00 6,66 I
I 120 I 20,00 4,44 I
I I I
I * I 450,00 100,00 I
I I I
I ** I 650,00 ----- I
+------------+-------------------+
Zur Illustration von verschachtelten Formeln ist obiges Beispiel
erweitert um die Berechnungen der gesamten und der nach maennlich
und weiblich gegliederten Anteile.
Anforderung:
ASS;
AG: 9;
KS: ZEITRAUM = ( 0199 );
ZS: REISETARIF;
SS: WERTE = ( LEIST ,
ANTEIL = 'ANTEIL M' + 'ANTEIL W' , (6,2,%) ,
NNTEIL = GESAMT(REISETARIF,LEIST) / 100, (15,4) ,
'ANTEIL M' = LEIST(,GESCHLECHT=1)/NNTEIL,(6,2,%) ,
'ANTEIL W' = LEIST(,GESCHLECHT=2)/NNTEIL, (6,2,%));
GR: SUMME = ( REISETARIF );
END;
Anmerkungen:
Da ANTEIL M und ANTEIL W keine gueltigen PL/I-Bezeichner sind
(sie enthalten ein Leerzeichen), muessen sie in ' eingeschlossen
werden. Die Formel NNTEIL wird nicht gedruckt, da sie unsichtbar
ist (der Name beginnt mit dem Buchstabenpaar NN). Die Anordnung
der einzelnen Formeln unterliegt im Spaltenschluessel keinerlei
Restriktionen.
Ergebnis:
ARBEITSGEBIET: 9: REISEVERSICHERUNG
ZEITRAUM: 0199
I WERTE
I LEISTUNG ANTEIL ANTEIL M ANTEIL W
REISETARIF I DM % % %
-----------------------------------------------------------
I
010 I 100,00 10,00 1,00 9,00
015 I 1,00 0,10 0,07 0,03
020 I 20,00 2,00 0,80 1,20
025 I 30,00 3,00 1,20 1,80
030 I 40,00 4,00 1,60 2,40
040 I 50,00 5,00 1,00 4,00
050 I 60,00 6,00 3,60 2,40
055 I 70,00 7,00 1,40 5,60
060 I 80,00 8,00 7,20 0,80
065 I 99,00 9,90 2,00 7,90
081 I 320,00 32,00 6,40 25,60
082 I 10,00 1,00 0,60 0,40
090 I 40,00 4,00 1,20 2,80
100 I 30,00 3,00 0,60 2,40
110 I 30,00 3,00 1,50 1,50
120 I 20,00 2,00 1,20 0,80
I
* I 1.000,00 100,00 31,37 68,63
Kap. 7.2.3
TOTAL-Operand in Werteformeln (Anteil eines Schluesselinhalts
an der Summe ueber alle Inhalte)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Waehrend der GESAMT-Operand stets auf ausgewaehlte Werte und
moegliche Zwischen- und Endsummen zu ausgewaehlten Schluessel-
inhalten eines Schluessels Bezug nimmt, greift der TOTAL-Ope-
rand immer auf alle Auspraegungen des angeforderten Schluessels
zu. Dabei werden die Teilbetraege aller Schluesselauspraegungen
bzgl. des angeforderten Werts zu einer Summe zusammengefasst.
Fuer den Fall, dass in einer Anforderung alle Schluesselinhalte
eines Schluessels ausgewaehlt wurden, liefern GESAMT- und TOTAL-
Operand die gleichen Summen ueber die Teilbetraege aller Ausprae-
gungen zum angeforderten Wert.
Bei Anwendung des TOTAL-Operanden sind nachstehende Einschraen-
kungen zu beachten:
Dieser darf nur in Werteformeln und hier auch nur dann, wenn
WERTE als Spaltenschluessel angefordert ist, benutzt werden.
Bei Rechenwerten ist die Verwendung des TOTAL-Operanden unzu-
laessig.
Der echte Schluessel, auf den sich der TOTAL-Operand bezieht,
darf nur ein Kopf- oder Zeilenschluessel sein.
In einer Werteformel muss er in folgendem Format angegeben
werden:
TOTAL ( Schluessel , Wert ).
Haeufigster Anwendungsfall des TOTAL-Operanden: Berechnungs des
Anteils eines bestimmten Wertes einer Schluesselauspraegung am
Gesamtwert aller Schluesselinhalte des betrachteten Schluessels.
Hierzu ein erlaeuterndes Beispiel:
Es soll ermittelt werden, welchen Anteil die Leistung eines ein-
zelnen Tarifs an den Leistungen innerhalb aller Tarife einnimmt.
Der auszuwertende Schluessel soll REISETARIF heissen und besteht
aus 10 Einzeltarifen.
Tarife I Leistung
I DM
-------I---------
010 I 100,00
020 I 200,00
030 I 50,00
040 I 50,00
050 I 100,00
060 I 130,00
070 I 40,00
080 I 30,00
090 I 150,00
100 I 150,00
--------------
1000,00
Hiervon sollen nun 5 Einzeltarife ausgewaehlt werden.
Die Anforderung in BATCH-Sprache :
ASS;
AG : REISEVERSICHERUNG ;
KS : ZEITRAUM ( 0699 ) ;
ZS : REISETARIF = ( 010, 030, 050, 080, 100 , * ) ;
SS : WERTE = ( LEISTUNG ,
ANTEIL = LEISTUNG * 100 /
TOTAL ( REISETARIF , LEISTUNG ) ,
( 6, 2, PROZ )
) ;
END;
Ergebnis:
+-----------------------------------+
I ASS I
I REISETARIF I LEISTUNG ANTEIL I
I I DM PROZ I
+-------------I---------------------+
I 010 I 100,00 10,00 I
I 030 I 50,00 5,00 I
I 050 I 100,00 10,00 I
I 080 I 30,00 3,00 I
I 100 I 150,00 15,00 I
I I I
I * I 430,00 43,00 I
+-----------------------------------+
Anmerkung:
Eine Besonderheit tritt beim Anwenden des TOTAL-Operanden auf,
die unserer gewohnten Vorstellung ueber Anteile in Prozent im
ersten Augenblick zuwiderlaeuft, mathematisch gesehen jedoch
voellig korrekt ist.
Ein Beispiel verdeutlicht diesen Zusammenhang:
Stellen wir uns zum Schluessel Geschaeftsstelle mit den 3 Aus-
praegungen Muenchen, Hamburg und Koeln und zum WERT Vertragsan-
zahl folgende Zahlenwerte vor.
I-------------I----------------I-----------I
I GESCHAEFTS- I VERTRAGS- I ANTEIL I
I STELLE I ANZAHL DM I % I
I-------------I----------------I-----------I
I Hamburg I 2000 I 50,00 I
I Muenchen I - 5000 I - 125,00 I
I Koeln I 7000 I 175,00 I
I-------------I----------------I-----------I
I Summe I 4000 I 100,00 I
I-------------I----------------I-----------I
Die Summe der Vertragsanzahl aller drei Geschaeftsstellen ent-
spricht genau 100 Prozent.
In der Spalte ANTEIL sieht man nun, dass bei Auswahl von Ge-
schaeftsstelle Muenchen oder Koeln der Anteil der Vertragsan-
zahl bzgl. der Summe ueber alle Vertraege einen Wert von ueber
100 Prozent annehmen kann.
Dies tritt aber nur auf, wenn der Werteinhalt bei einzelnen Aus-
praegungen eines Schluessels negative Zahlenwerte besitzt.
Kap. 7.2.4
KUMUL-Operand in Werteformeln (Aufgelaufene Summe eines Wertes
innerhalb eines Schluessels)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Beschreibung:
------------
Fordert man in einer Werteformel den KUMUL-Operanden bezueglich
eines Wertes und eines Schluessels an, so werden zu allen Aus-
praegungen dieses Schluessels bzw. zu allen Schluesseln und
Schluesselauspraegungen, die dem angegebenen Schluessel in der
Auswertung untergeordnet sind ( KS > ZS > SS, niedrigerer ZS/SS ),
die aufgelaufenen Wertesummen angezeigt.
Allgemeine Form des KUMUL-Operanden:
-----------------------------------
KUMUL ( Schluessel , Wert ( Optionen )), Aufbereitung
- Schluessel
----------
Es ist ein Schluessel anzugeben, der in der Anforderung bereits
als KS, ZS oder SS ausgewaehlt wurde.
- Wert
----
Im KUMUL-Operanden kann jeder Wert des Arbeitsgebietes ange-
fordert werden. Dieser Wert muss nicht zusaetzlich in der
Anforderung ausgewaehlt werden.
- Optionen
--------
Neben der einfachen Werteanforderung ist im KUMUL-Operanden
auch die erweiterte Werteanforderung mit Zusatzangaben erlaubt
(Zeitangaben, Schluesselbedingungen).
- Aufbereitung
------------
Aufbereitungsangaben koennen wahlweise in der Form "Vorkomma-
stellen, Nachkommastellen, Dimension" angegeben werden.
Restriktionen:
-------------
Fuer die Verwendung des KUMUL-Operanden sind folgende
Restriktionen zu beachten:
- Der KUMUL-Operand kann nur in WERTE-Formeln verwendet werden.
- Wird der Pseudoschluessel WERTE in der Spaltendimension ver-
wendet, muss der ausgewaehlte Schluessel diesem in der Aus-
wertung uebergeordnet sein ( KS oder ZS ).
- Bei Verwendung des Pseudoschluessels WERTE in der Zeilen-
dimension muss der Schluessel in der Spaltendimension ausge-
waehlt werden, wobei in der Spaltendimension keine Formel
verwendet werden darf.
Beispiel:
Die Neuauftraege sollen fuer den Monat 0599 nach LAND und WERK
gegliedert aufgelistet werden.
Zusaetzlich soll in zwei weiteren Spalten jeweils die kumulierte
Summe nach den Schluesseln LAND bzw. WERK erscheinen.
Die Anforderung in BATCH-Sprache :
ASS;
AG : LEISTUNGS_STATISTIK ;
KS : ZEITRAUM ( 0599 ) ;
ZS : LAND ,
WERK ;
SS : WERTE = ( NEUAUFTRAEGE ,
KUMUL_WERK = KUMUL ( WERK , NEUAUFTRAEGE ) ,
KUMUL_LAND = KUMUL ( LAND , NEUAUFTRAEGE ));
END;
Ergebnis:
+------------------------------------------------------------+
I ASS I
I ARBEITSGEBIET: LEISTUNGSSTATISTIK I
I ZEITRAUM: 0599 I
I I
I I NEUAUFTRAEGE KUMUL_WERK KUMUL_LAND I
I LAND WERK I DM DM DM I
+-------------------+----------------------------------------+
I BAYERN 15 I 2.849 2.849 2.849 I
I 21 I 1.526 4.375 4.375 I
I 82 I 3.538 7.913 7.913 I
I 87 I 768 8.681 8.681 I
I I
I HESSEN 15 I 10.932 10.932 19.613 I
I 21 I 3.795 14.727 23.408 I
I 82 I 330 15.057 23.738 I
I 87 I 18 15.075 23.756 I
+------------------------------------------------------------+
Kap. 7.2.5
RANG-Operand in Werteformeln (Rangfolge nach Wertegroessen
innerhalb eines Schluessels)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Beschreibung:
------------
Fordern Sie in einer Werteformel den RANG-Operanden bezueglich
eines echten oder ueber eine andere Werteformel berechneten Wertes
und eines Schluessels an, wird zu allen Auspraegungen dieses
Schluessels bzw. zu allen Auspraegungen der Schluessel, die dem
angegebenen Schluessel in der Auswertung untergeordnet sind
( KS > ZS > SS, niedrigerer ZS/SS ), eine aufsteigende Rangfolge
nach absteigender Wertegroesse geliefert.
Allgemeine Form des RANG-Operanden:
-----------------------------------
RANG ( Schluessel , Wert ( Optionen )), Aufbereitung
- Schluessel
----------
Es ist ein Schluessel anzugeben, der in der Anforderung bereits
als KS, ZS oder SS ausgewaehlt wurde.
- Wert
----
Im RANG-Operanden kann jeder Wert des Arbeitsgebietes ange-
fordert werden. Dieser Wert muss nicht zusaetzlich in der
Anforderung ausgewaehlt werden.
Ausserdem kann als Wert auch die Bezeichnung einer in der
Anforderung formulierten Werteformel verwendet werden.
- Optionen
--------
Neben der einfachen Werteanforderung ist im RANG-Operanden bei
echten Werten auch die erweiterte Anforderung mit Zusatzangaben
( Zeitangaben, Schluesselbedingungen ) erlaubt.
- Aufbereitung
------------
Aufbereitungsangaben koennen wahlweise in der Form "Vorkomma-
stellen, Nachkommastellen, Dimension" angegeben werden.
Restriktionen:
-------------
Fuer die Verwendung des RANG-Operanden sind folgende Restriktionen
zu beachten:
- Der RANG-Operand kann nur in WERTE-Formeln verwendet werden.
- Wird der Pseudoschluessel WERTE in der Spaltendimension ver-
wendet, muss der ausgewaehlte Schluessel diesem in der Aus-
wertung uebergeordnet sein ( KS oder ZS ).
- Im Dialog koennen bei Verwendung des Pseudoschluessels WERTE in
der Spaltendimension bisher maximal 18 Rangspalten verarbeitet
werden.
- Bei Verwendung des Pseudoschluessels WERTE in der Zeilen-
dimension muss der Schluessel in der Spaltendimension ausge-
waehlt werden, wobei in der Spaltendimension keine Formel
verwendet werden darf. Die WERTE muessen dabei im niedrig-
sten Zeilenschluessel stehen, bei den uebrigen Kopf- und
Zeilenschluesseln duerfen keine Formeln angegeben sein.
- Werden beim RANG-Operanden Formeln angesprochen, so muss
der Pseudoschluessel WERTE ein Spaltenschluessel sein.
Beispiel:
Die Neuauftraege sollen fuer die Monate 0190 und 0290 nach LAND
und WERK gegliedert aufgelistet werden.
Ueber eine Werteformel soll die Steigerung von 0190 bis 0290
berechnet werden.
Die Rangfolge soll zunaechst nach Neuauftraegen 0190 ueber alle
Laender und Werke bzw. ueber alle Werke innerhalb eines Landes
ermittelt werden.
In zwei weiteren Spalten soll diese Rangfolge jetzt bezueglich
der Steigerung der Neuauftraege berechnet werden.
Die Anforderung in BATCH-Sprache :
ASS;
AG : LEISTUNGS_STATISTIK ;
ZS : LAND = ( 110, 112 ),
WERK ;
SS : WERTE = ( NEU (0190) ,
NEU (0290) ,
STEIG = NEU (0290) - NEU (0190) ,
RG_W = RANG ( WERK , NEU (0190)) ,
RG_L = RANG ( LAND , NEU (0190));
RG_WST = RANG ( WERK , STEIG ));
RG_LST = RANG ( LAND , STEIG ));
END;
Ergebnis:
+--------------------------------------------------------------+
I ASS I
I ARBEITSGEBIET: LEISTUNGSSTATISTIK I
I I NEU NEU STEIG RG_W RG_L RG_WST RG_LST I
I LAND WERK I 0190 0290 I
+--------------+-----------------------------------------------+
I BAYERN 15 I 2.849 3.000 151 2 4 3 6 I
I 21 I 1.526 1.600 74 3 5 4 7 I
I 82 I 3.538 3.800 262 1 3 1 2 I
I 87 I 768 1.000 232 4 6 2 3 I
I I
I HESSEN 15 I 10.932 9.500 1.432- 1 1 4 8 I
I 21 I 3.795 5.000 1.205 2 2 1 1 I
I 82 I 330 500 170 3 7 3 5 I
I 87 I 18 200 182 4 8 2 4 I
+--------------------------------------------------------------+
Besonderheit:
------------
Wird der RANG-Operand in Verbindung mit Spaltenbedingungen
verwendet, ergibt sich eine Besonderheit: die RANG-Operatoren
werden grundsaetzlich vor den Spaltenbedingungen ermittelt.
Dadurch ergeben sich u. U. Luecken in der Rangfolge.
Kap. 7.2.6
GRANZ-Operand in Werteformeln (Gruppenwechsel bei einem Kopf-
oder Zeilenschluessel zaehlen)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Beschreibung:
------------
Fordert man in einer Werteformel den GRANZ-Operanden bezueglich
eines Schluessels an, so werden die Gruppenwechsel bezueglich
des genannten Schluessels gezaehlt.
Die genaue Zaehlweise erkennt man am besten am unten aufgefuehrten
Beispiel.
Allgemeine Form des GRANZ-Operanden:
-----------------------------------
GRANZ ( Schluessel ), Aufbereitung
- Schluessel
----------
Es ist ein Schluessel anzugeben, der in der Anforderung bereits
als KS oder ZS ausgewaehlt wurde.
- Aufbereitung
------------
Aufbereitungsangaben koennen wahlweise in der Form "Vorkomma-
stellen, Nachkommastellen, Dimension" angegeben werden.
Restriktionen:
-------------
Fuer die Verwendung des GRANZ-Operanden sind folgende
Restriktionen zu beachten:
- Der GRANZ-Operand kann nur in WERTE-Formeln verwendet werden.
- Der Pseudoschluessel WERTE darf nur in der Spaltendimension
verwendet werden.
Beispiel:
Es soll festgestellt werden, fuer wie viele Laender bzw. Werke
Neuauftraege vorliegen.
Die Anforderung in BATCH-Sprache :
ASS;
AG : LEISTUNGS_STATISTIK ;
KS : ZEITRAUM ( 0508 ) ;
ZS : LAND ,
WERK ;
SS : WERTE = ( NEUAUFTRAEGE ,
GRANZ_WERK = GRANZ ( WERK ) ,
GRANZ_LAND = GRANZ ( LAND ));
GR : SUMME ...
END;
Ergebnis:
+------------------------------------------------------------+
I ASS I
I ARBEITSGEBIET: LEISTUNGSSTATISTIK I
I ZEITRAUM: 0508 I
I I
I I NEUAUFTRAEGE GRANZ_WERK GRANZ_LAND I
I LAND WERK I DM DM DM I
+-------------------+----------------------------------------+
I BAYERN 15 I 2.849 1 1 I
I 21 I 1.526 1 0 I
I 82 I 3.538 1 0 I
I 87 I 768 1 0 I
I I I
I HESSEN 15 I 10.932 1 1 I
I 21 I 3.795 1 0 I
I 82 I 330 1 0 I
I 87 I 18 1 0 I
I I I
I * I 23.756 8 2 I
+------------------------------------------------------------+
Kap. 7.2.7
AKT_MENGE-Operand in Werteformeln
Beschreibung:
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Der AKT_MENGE-Operand stellt eine starke Verallgemeinerung der
Schluesselbedingungen zum Wert dar. Sollen z.B. alle Tarife,
die zu Lebensversicherungen gehoeren abgefragt werden und es sind
mehr als 20 Tarife, so laesst sich dies mit Schluesselbedingungen
nicht mehr darstellen, abgesehen von der umfangreichen Schreib-
arbeit und Wartung. Auch eine Anforderung mit Hilfe von Intervallen
ist i.a. auch nicht moeglich.
Bestehen die Lebensversicherungen z.B. aus den Tarifen
L01, L05, L47, A35, X47, ...
so koennte eine Menge LEBEN definiert werden als
LEBEN ('L??', A35, X47 , ... ), wobei hier vorausgesetzt wird,
dass alle Tarife, die mit dem Buchstaben 'L' beginnen, Lebensver-
sicherungen sind und ausserdem noch einige weitere, die diese
Namenskonvention nicht beruecksichtigen, dazugehoeren.
Durch Bezugnahme auf die Menge LEBEN koennen also komplexe
Fragestellungen beantwortet werden. Insbesondere laesst die
Definition von Auspraegungmengen auch Auspraegungsintervalle,
Auspraegungsmasken und Negativselektionen zu.
Speichert man darueber hinaus Mengendefinitonen als Schluessel-
gruppierungen (und fordert sie dann auch an), so kann die
Wartung der Mengendefinitionen zentralisiert werden.
Es duerfen bei einem Schluessel mehrere Mengen definiert werden.
Ebenso darf AKT_MENGE mehrfach auf denselben Schluessel und
denselben Wert mit unterschiedlichen Mengen angewendet werden.
Allgemeine Form des AKT_MENGE-Operanden:
---------------------------------------
AKT_MENGE ( Schluessel, Wert (Optionen) ) & Mengenbezeichner
- Schluessel
----------
Es ist ein Schluessel anzugeben, der in der Anforderung bereits
als KS oder ZS ausgewaehlt wurde.
Bei diesem Schluessel muss die Option NUR_MENGEN oder NUR_M_NOTA
gesetzt sein (siehe hierzu 4.3.16 Aktuelle Auspraegungsmengen).
Darueberhinaus muessen bei diesem Schluessel mit Hilfe der
Auspraegungsauswahl Auspraegungsmengen definiert sein.
- Wert
----
Es ist ein Wert anzugeben, der in einem der angeforderten
Arbeitsgebiete vorkommt. Formeln sind nicht zulaessig.
- Optionen
--------
Hier sind nur die Zeitangaben zum Wert (falls erforderlich)
und die Angabe des gewuenschten Arbeitsgebiets (falls er-
forderlich) in der ueblichen Syntax zulaessig.
- Mengenbezeichner
----------------
Hier ist der Name einer der beim betreffenden Schluessel
definierten Mengen anzugeben.
Restriktionen:
-------------
Fuer die Verwendung des AKT_MENGE-Operanden sind folgende
Restriktionen zu beachten:
- Der AKT_MENGE-Operand kann nur in WERTE-Formeln verwendet werden.
- Der Pseudoschluessel WERTE darf nur in der Spaltendimension
verwendet werden.
Beispiel:
Es gibt den Wert ANZAHL und den Schluessel TARFIF (Nummer = 100).
Der Schluessel TARIF wird als Zeilenschluessel angefordert.
Folgende Mengen werden definiert:
100 = ('LEBEN' ('L??','A20'-'A30','X25'),
'KRANKEN' ('K??','A40'-'A50'),
'SACH' ('S??','A70'-'A90','Y34'),
'Z00' );
LEBEN, KRANKEN UND SACH stellen echte Mengen dar, Z00 hingegen
ist eine Einzelauspraegung. Die Mengenbezeichner von Einzelaus-
praegungen sind die Auspraegungen selbst.
Der Schluessel WERTE wird als Spaltenschluessel angefordert.
WERTE = ( FO1 = AKT_MENGE (TARIF, ANZAHL) & 'LEBEN' ,
FO2 = AKT_MENGE (TARIF, ANZAHL) & 'KRANKEN' ,
FO3 = AKT_MENGE (TARIF, ANZAHL) & 'SACH' ,
FO4 = AKT_MENGE (TARIF, ANZAHL) & 'Z00' );
Weiterhin wird KUNDE als weiterer Zeilenschluessel angefordert.
FO1 ermittelt dann pro Kunde die Anzahl der Lebensversichungen,
FO2 ermittelt dann pro Kunde die Anzahl der Krankenversichungen,
FO3 ermittelt dann pro Kunde die Anzahl der Sachversichungen,
FO4 ermittelt dann pro Kunde die Anzahl der Tarife Z00.
Die Ausgangssituation sei:
KUNDE TARIF I ANZAHL
-----------------------
MEIER A21 I 1
K10 I 1
I
MUELLER A25 I 1
K11 I 2
S00 I 1
I
SCHMIDT K10 I 1
S00 I 1
Y34 I 1
Z00 I 3
Mit der Option NUR_MENGEN bei Tarif fuehrt dies zu folgendem
Ergebnis:
KUNDE TARIF I FO1 FO2 FO3 FO4
-----------------------------------------------
MEIER A21,K10 I 1 1 0 0
I
MUELLER A25,K11,S00 I 1 2 1 0
I
SCHMIDT K10,S00,Y34,Z00 I 0 1 2 3
Man beachte:
Die Mengendefinitionen beim Schluessel TARIF haben keinen
Einfluss auf die Schluesselauspraegungen, die im Listbild
angezeigt werden. Angezeigt werden immer alle Auspraegungen, die
auch bei einer offenen Anforderung des Schluessels dargestellt
wuerden, nur eben nebeneinander und durch Kommata getrennt.
Die Mengendefinitionen haben also nur Auswirkungen auf das
Ergebnis der betreffenden Werteformel.
Kap. 7.3
Zeitraumformeln
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Zulaessige Operanden bei Zeitraumformeln sind:
- Ganzzahlige Direktoperanden
- Zeitraumangaben, eingeschlossen durch Hochkommata, um sie von
Direktoperanden unterscheiden zu koennen
- Zeitraumformeln
Hinweis: An eine Zeitraumformel kann noch Druckaufbereitungs-
information angehaengt werden. Sie wird analog zu Werteformeln
von der eigentlichen Zeitraumformel durch ein Komma getrennt
und in Klammern eingeschlossen (siehe Kap. 7.2.). Eine
Dimensionsangabe ist jedoch nicht zulaessig.
Beispiele:
,(6,2,,SVZ) : 6 Stellen, davon 2 Nachkommastellen, ohne Dimen-
sion und mit einer Abarbeitungsregel (SVZ: Spalte
vor Zeile), wenn es sich um eine Formel handelt.
,(,,,SVZ) : Besagt fuer eine Formel, dass zuerst die Spalte
und danach die Zeile fuer die Berechnung heran-
gezogen werden soll.
Hinweis: Hat man Bestandswerte angefordert, so ist eine
Zeitraumangabe nicht zulaessig (denn es ist kaum sinnvoll,
Bestaende verschiedener Zeitpunkte zu addieren).
Eine Ausnahme waere z. B. eine Mittelwertbildung.
In solch einem Fall kann mit Hilfe von OPT die betreffende
Pruefung ausgeschaltet werden, die sonst derartige Additionen
verhindert (Option NOZEITPRUEF). Ansonsten gelten fuer die
Angabe der Zeiten die gleichen Regeln wie fuer die Auswahl
von Zeiten zum Schluessel ZEITRAUM.
Es wird daher auf die Kap. 4.5.1. 'Absolute Zeitangaben'
und Kap. 4.5.2 'Relative Zeitangaben' verwiesen.
Beispiel 1:
Arbeitsgebiet 9 enthaelt die Werte LEISTUNG und ABZUEGE.
Die Entwicklung dieser Werte ueber 2 Monate soll parallel
dargestellt werden. Einmal die Aenderung im Februar gegenueber
dem Januar in absoluten Zahlen, und einmal in Prozent fuer Januar.
absolut : AEND1 = '0299' - '0199'
relativ in %: AEND2 =( '0299' - '0199' ) * 100 / '0199'
Eine moegliche Abfrage in der BATCH-Sprache:
ASS ;
AG: 9 ;
SS: WERTE = ( LEISTUNG , ABZUEGE ) ;
ZS: ZEITRAUM = ( 0199 , 0299 , AEND1 = '0299' - '0199' ,
AEND2 = ( '0299' - '0199' ) * 100 / '0199' ) ;
END ;
In einer Zeitraumformel muessen Zeitangaben in Hochkommata
eingeschlossen sein, um so eine Unterscheidung zwischen
Zeitangaben und konstanten Zahlen zu ermoeglichen. Mit dem
Ausdruck '0299' - '0199' wird eine Differenz der Werte des
Zeitraeume '0299' und '0199' angefordert. Eine Berechnung
der Angabe 0299 - 0199 wuerde dagegen als Ergebnis 100 liefern.
Ergebnis:
+---------------------------------------+
I ASS SEITE 1 I
I ZEITRAUM I LEISTUNG ABZUEGE I
I I DM DM I
+---------------------------------------+
I 0189 I 10.250,10 410,30 I
I 0289 I 11.600,60 205,15 I
I AEND1 I 1.350,50 205,15- I
I AEND2 I 13,01 50,00- I
+---------------------------------------+
Die obige Abfrage kann auch wie folgt angefordert werden:
ASS;
AG: 9;
ZS: ZEITRAUM = ( 0199 ,
0299 ,
AEND1 = '0299' - '0199' ,
AEND2 = AEND1 * 100 / '0199' );
SS: WERTE = ( LEISTUNG ,
ABZUEGE );
END;
ANMERKUNG:
----------
Da ZEITRAUM als Zeilenschluessel angefordert wird, gilt folgende
Restriktion (vgl. Kap. 7.7 Restriktionen bei Formeln/Funktionen):
Die Formel AEND1 muss vor der sichtbaren Formel AEND2 aufgefuehrt
werden. Dies gilt auch fuer unsichtbare Formeln, etwa bei
Umbenennung von AEND1 in NNAEND1.
Kap. 7.4
Schluesselformeln
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Zulaessige Operanden bei Schluesselformeln
------------------------------------------
- Ganzzahlige Direktoperanden
- Schluesselinhalte (KEINH)
- mit "?" maskierte Auspraegungen
- Bezeichner von Auspraegungsmengen (und damit Auspraegungsmengen)
- Schluesselformeln
Schluesselinhalte sollten stets in Hochkommata eingeschlossen
werden, damit sie von Direktoperanden unterschieden werden koennen.
Bezeichner von Auspraegungsmengen bzw. Schluesselformeln muessen in
Hochkommata eingeschlossen werden, wenn sie keine ASS-Bezeichner
sind. Im Zweifelsfall koennen sie immer in Hochkommata einge-
schlossen werden.
Fuer Schluesselformeln besteht die Moeglichkeit, Aufbereitungs-
optionen anzugeben. Die Form der Aufbereitungsoption stimmt mit
der bei Zeitraumformeln ueberein (s. o.).
Beispiel:
,(6,2,,SVZ) : 6 Stellen, davon 2 Nachkommastellen mit Dimension
DM und mit einer Abarbeitungsregel (SVZ: Spalte
vor Zeile), wenn es sich um eine Formel handelt.
Beispiel:
GESAMTANTEIL = '010' * 100 / ('010' + '020' + '030' + '040')
wobei 010, 020, 030 und 040 Auspraegungen (Inhalte) z. B. des
Schluessels TARIF sind.
Beispiel:
Fuer bestimmte Auspraegungen des Schluessels REISETARIF
sollen die Unterschiede im Wert LEISTUNG und im Wert ABZUEGE
dargestellt werden:
DIFF1 = '010' - '015': Unterschied zwischen 010 und 015
DIFF2 = '020' - '025': Unterschied zwischen 020 und 025
DIFF3 = '050' - '055': Unterschied zwischen 050 und 055
Eine moegliche Abfrage in BATCH-Sprache:
ASS ;
KS : ZEITRAUM = ( 0199 ) ;
ZS: REISETARIF = ( 010, 015, DIFF1 = '010' - '015' ,
020, 025, DIFF2 = '020' - '025' ,
050, 055, DIFF3 = '050' - '055' ) ;
SS: WERTE = ( LEISTUNG , ABZUEGE ) ;
END ;
Ergebnis:
+---------------------------------+
I ASS SEITE 1 I
I REISETARIF I LEISTUNG ABZUEGE I
I I DM DM I
+------------+--------------------+
I 010 I 100,00 9,10 I
I 015 I 1,00 0,00 I
I DIFF1 I 99,00 9,10 I
I 020 I 20,00 1,10 I
I 025 I 30,00 1,90 I
I DIFF2 I 10,00- 0,80- I
I 050 I 260,00 20,90 I
I 055 I 70,00 7,40 I
I DIFF3 I 190,00 13,50 I
+---------------------------------+
Der Anteil des Wertes LEISTUNG soll nach bestimmten Auspraegungen
der Schluessel ALTERSGRUPPE und REISETARIF, einmal getrennt nach
Geschlechtern innerhalb einer Gruppe und dann ueber alle Gruppen
errechnet werden.
Anforderung in BATCH-Sprache:
ASS;
AG: 9;
KS: ALTERSGRUPPE = ( 'ALT 1' ('01','02') ,
'ALT 2' ('00') );
ZS: REISETARIF = ( 'TAR A' ('010','020') ,
'TAR B' ('030','040') ,
'TAR C' ('050','060') ),
GESCHLECHT = ( NNM = '1' ,
NNW = '2' ,
NN = NNM + NNW ,
'ANT. M' = NNM * 100 / NN ,
'ANT. W' = NNW * 100 / NN ,
ANTEIL = 'ANT. M' + 'ANT. W' );
SS: ZEITRAUM = ( 0199 ,
0299 ),
WERTE = ( LEIST , (6,2,%) ,
'ANT. GES' = LEIST * GESAMT(GESCHLECHT,LEIST) /
GESAMT(REISETARIF,LEIST) , (6,2,%) );
END;
Ergebnis:
---------
ARBEITSGEBIET: 9: REISEVERSICHERUNG
ALTERSGRUPPE: ALT 1
I ZEITRAUM I I
I 01.99 I 02.99 I
I WERTE I I
I LEISTUNG ANT. GES I LEISTUNG ANT. GES I
REISETARIF GESCHLECHT I % % I % % I
------------------------------------------------------------------
I I I
TAR A ANT. M I 80,00 20,00 I 16,67 5,00 I
ANT. W I 20,00 5,00 I 83,33 25,00 I
ANTEIL I 100,00 25,00 I 100,00 30,00 I
I I I
* I xxxx xxxx I xxxx xxxx I
I I I
TAR B ANT. M I 37,50 15,00 I 33,33 10,00 I
ANT. W I 62,50 25,00 I 66,67 20,00 I
ANTEIL I 100,00 40,00 I 100,00 30,00 I
I I I
* I xxxx xxxx I xxxx xxxx I
I I I
TAR C ANT. M I 100,00 35,00 I 62,50 25,00 I
ANT. W I 0,00 0,00 I 37,50 15,00 I
ANTEIL I 100,00 35,00 I 100,00 40,00 I
I I I
* I xxxx xxxx I xxxx xxxx I
I I I
* I xxxx -------- I xxxx -------- I
Die zweite Seite hat einen entsprechenden Aufbau.
Kap. 7.5
Zwischen- und Endsummen im Spaltenschluessel
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Die Abarbeitungsreihenfolgen der Formeln ist prinzipiell wie
folgt festgelegt: Kopf-/ Zeilenformeln vor Spaltenformeln, in den
Spalten von oben nach unten. Dabei werden zunaechst die Formeln im
Kopfbereich berechnet, beginnend mit der niedrigsten Positions-
nummer, entsprechend gefolgt von den Zeilenformeln.
In sehr vielen Anwendungsfaellen entspricht diese Reihenfolge den
Anforderungen. Insbesondere koennen auf diesem Weg auch Summationen
ueber Schluesselauspraegungen und somit Zwischen- und Endsummen bei
Schluesseln im Spaltenschluessel erreicht werden.
Es gibt jedoch Anwendungsfaelle, wo eine andere Reihenfolge der
Formelabarbeitung erwuenscht ist; dazu ein Beispiel:
WERTE sei der Zeilenschluessel. Es werden drei Werte angefordert:
LEISTUNG (0197) ,
LEISTUNG (0198) und die prozentuale Veraenderung
AENDERUNG = 100 *(LEISTUNG(0198)-LEISTUNG(0197))/LEISTUNG(0197)
Im Spaltenschluessel werde der Schluessel SPARTE mit den
Auspraegungen FEUER, UNFALL, HAUSRAT angefordert.
Dies fuehrt zu folgender Liste:
WERTE I FEUER UNFALL HAUSRAT
--------------------------------------------
I
LEISTUNG(0197) I 10.000 5000 9000
LEISTUNG(0198) I 12.000 4000 10.000
AENDERUNG I 20 20- 11
Es soll jetzt eine vierte Spalte eingefuehrt werden, in der ueber
die Sparten addiert wird.
1. Summenbildung ueber eine Formel
SUMME = FEUER + UNFALL + HAUSRAT
In diesem Fall werden auch die prozentualen Veraenderungen der
dritten Zeile aufaddiert, da die oben angefuehrte Abarbeitungs-
regel wirksam wird. Dies liefert jedoch nicht das gewuenschte
Ergebnis. In der dritten Zeile der vierte Spalte moechte man
folgendes Ergebnis erhalten:
100 * ((LEISTUNG(0198) fuer FEUER +
LEISTUNG(0198) fuer UNFALL +
LEISTUNG(0198) fuer HAUSRAT)
- (LEISTUNG(0197) fuer FEUER +
LEISTUNG(0197) fuer UNFALL +
LEISTUNG(0197) fuer HAUSRAT))
/
(LEISTUNG(0197) fuer FEUER +
LEISTUNG(0197) fuer UNFALL +
LEISTUNG(0197) fuer HAUSRAT)
Dies wird mit der folgenden 2. Moeglichkeit erreicht:
2. Summenbildung ueber eine Menge
SS: SPARTE=(FEUER,UNFALL,HAUSRAT,SUMME(FEUER,UNFALL,HAUSRAT));
In diesem Fall wird die vierte Spalte in Form einer Ausprae-
gungsmenge gebildet. Da in diesem Fall keine Formel verwendet
wird, werden zunaechst in der vierten Spalte die Sparten
zusammengefasst und anschliessend die Werteformeln im Zeilen-
schluessel angewendet.
Man erhaelt folgendes Ergebnis:
WERTE I FEUER UNFALL HAUSRAT SUMME
-----------------------------------------------------
I
LEISTUNG(0197) I 10.000 5000 9000 24.000
LEISTUNG(0198) I 12.000 4000 10.000 26.000
AENDERUNG I 20 20- 11 8
Anmerkung:
Die 2. Moeglichkeit beruht darauf, dass ein- und dieselbe
Auspraegung eines Schluessels mehrfach angefordert werden kann,
im obigen Beispiel als Einzelauspraegung und als Element einer
Auspraegungsmenge. Dies ist nur im Spaltenschluessel moeglich.
Die mehrfache Anforderung von Schluesselauspraegungen eines
Schluessels sowohl als Einzelauspraegung und als Element in
einer Auspraegungsmenge ist auch moeglich, wenn im Zeilen-
schluessel nicht mit Formeln gearbeitet wird.
Zu beachten ist jedoch, dass stets als erstes die Auspraegungs-
mengen ermittelt werden, bevor irgendwelche Formeln angewendet
werden.
Ingesamt gibt es also zwei Moeglichkeiten im Spaltenschluessel
Aufsummierungen zu erreichen:
- mit Hilfe von Formeln
- mit Anforderung von Auspraegungsmengen.
Durch richtigen Einsatz der beiden Moeglichkeiten koennen Sie
darueber hinaus die Reihenfolge Summation und Formelabarbeitung
so beeinflussen, dass Sie das gewuenschte Resultat erhalten.
Eine weitere Moeglichkeit, die Reihenfolge zu bearbeiten wird im
Kap. 7.9 dargestellt.
Kap. 7.6
Anforderung von Funktionen
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Allgemein:
---------
ASS bietet bekanntlich die Moeglichkeit, mit Werten, Zeiten und
Schluesselinhalten zu rechnen.
Neben den bereits erwaehnten Formeln kennt ASS einen bestimmten
Umfang sogenannter Funktionen, die in logischer Verwandtschaft
zu den Formeln zu sehen sind.
Eine Funktion im Sinne von ASS kann man als feste Regel ansehen,
nach der aus bestimmten Eingaben (Operanden) eine Zahl ermittelt
wird.
Als Operanden kommen explizit genannte Zahlen (Direktoperanden)
oder in der Auswertung selbst ermittelte Zahlen in Betracht.
Folgende Funktionen koennen zur Zeit bei ASS-Auswertungen ver-
wendet werden:
Funktions- I Bedeutung I Kurzbeschreibung
bezeichner I I
-----------I----------------I------------------------------------
MIN I Minimum I Auswahl der kleinsten durch die
I I Operanden OP1,.....,OPm bestimmten
I I Zahl fuer 1 <= m <= 50
-----------I----------------I------------------------------------
MAX I Maximum I Auswahl der groessten durch die
I I Operanden OP1,.....,OPm bestimmten
I I Zahl fuer 1 <= m <= 50
-----------I----------------I------------------------------------
ABS I Absolutbetrag I Absolutbetrag einer durch "einen"
I I Operanden bestimmten Zahl
I I ABS(X) = X falls X >= 0
I I ABS(X) = -X falls X < 0
I I Dynamische Verwendung unzulaessig
-----------I----------------I------------------------------------
SUMME I Summenbildung I Summierung ueber alle durch die
I I Operanden OP1,.....,OPm bestimmten
I I Zahlen fuer 1 <= m <= 50
I I SUMME = X1 + X2 + ...... Xm
-----------------------------------------------------------------
-----------------------------------------------------------------
ARM I Arithmetisches I Mittelwert ueber alle durch die
I Mittel I Operanden OP1,.....,OPm bestimmten
I Mittelwert, I Zahlen fuer 1 <= m <= 50
I Erwartungswert I 1
I I ARM = --- * ( X1 + X2 + .. Xm )
I I m
-----------I----------------I------------------------------------
VAR I Varianz I Varianz ueber alle durch die
I I Operanden OP1,.....,OPm bestimmten
I I Zahlen fuer 1 <= m <= 50
I I m m
I I 1 --- 2 1 --- 2
I I VAR = - > Xi - ( - > Xi )
I I m --- m ---
I I i=1 i=1
-----------I----------------I------------------------------------
* I Standard- I Nicht als eigene Funktion vorhanden,
I abweichung, I aber direkt aus der Varianz zu
I Streuung I berechnen
I I Streuung = (Varianz) ** ( 1 / 2 )
-----------------------------------------------------------------
Verwendung von Funktionen
-------------------------
Entsprechend der 3 Grundelemente der Datenbasis koennen Funktionen
bei echten Schluesseln, Werten und Zeitraeumen verwendet werden.
Analog zu den Formeln spricht man deshalb auch von SCHLUESSEL-,
WERTE- und ZEITRAUM-Funktionen.
Allgemeine Form der Anforderung einer Funktion:
----------------------------------------------
Online: FUNKTIONSNAME = < OP1,......,OPm >,AUFBEREITUNG
Batch: FUNKTIONSNAME < OP1,......,OPm >,AUFBEREITUNG
- FUNKTIONSNAME:
-------------
Der Funktionsname kann maximal aus folgenden 3 Komponenten
bestehen:
1. Teil: optional NN fuer unsichtbare Funktionen
2. Teil: obligatorisch Funktionsbezeichner (MIN, MAX..)
3. Teil: optional positive Zahl zur Abgrenzung
mehrerer Funktionsnamen mit
gleichem Funktionsbezeichner
Beispiele: NNMIN, MAX01, ABS, NNARM326
- OPERANDEN:
---------
Syntax:
-------
Als Operanden einer Funktion sind folgende Angaben zulaessig:
OPERAND-Beschreibung I BEISPIEL OPERAND
==========================I==================================
Direktoperanden I Zahl 2100 -> 2100
(nur ganze Zahlen) I
--------------------------I----------------------------------
Angaben in Hochkommata I Auspraegung '025' -> '025'
fuer Auspraegungen, I Zeitraum Januar 1998 -> '0198'
Zeitraeume und Werte I Wertebez. BEITRAG -> 'BEITRAG'
--------------------------I----------------------------------
Einfache Werteanforderung I Wertebez. BEITRAG -> BEITRAG
(Bezeichnung/ Abkuerzung) I Werteabk. JBR -> JBR
--------------------------I----------------------------------
Erweiterte Werteanfor- I Zeitangaben:
derung mit Zusatzangaben I -> BEITRAG(0199-0699)
I Schluesselbedingungen:
I -> BEITRAG(,TARIF=050)
--------------------------I----------------------------------
Andere Formeln und I Formel ANTEIL -> ANTEIL
Funktionen I Funktion MIN02 -> MIN02
(Schachtelung: I GESAMT-Operand:
Innere Funktion ohne I -> GESAMT(TARIF,BEITRAG)
Angabe von Operanden) I TOTAL-Operand:
I -> TOTAL(TARIF,BEITRAG)
-------------------------------------------------------------
Anzahl der Operanden:
--------------------
In Abhaengigkeit von der Anzahl der angegebenen Operanden m
unterscheidet man zwei verschiedene Verwendungsmoeglichkeiten
einer Funktion.
- Statische Verwendung: 1 <= m <= 50 (Ausnahme: ABS)
Die einzelnen Operanden werden explizit angegeben.
- Dynamische Verwendung: m = 0
Es werden alle Operanden beruecksichtigt, die vor dieser
Funktion und nach der davor aufgefuehrten dynamischen Funktion
zu finden sind.
D. h. es wird rueckwaerts gesucht, bis eine weitere Funktion
mit dynamischer Verwendung gefunden wird.
Dabei werden evtl. vorhandene statische Funktionen als Direkt-
operanden behandelt.
ACHTUNG:
Eine dynamische Verwendung von unsichtbaren Funktionen
( NN-Funktionen ) ist nicht sinnvoll, weil diese intern
zuerst verarbeitet werden.
Dieser Zusammenhang wird nachfolgend in einem Beispiel
verdeutlicht.
- AUFBEREITUNG:
------------
Analog zu den Formeln sind auch in den Funktionen wahlweise
Aufbereitungsangaben moeglich, die durch Komma getrennt an
die Anforderung gefuegt werden.
Syntax: Vorkommastellen, Nachkommastellen, Dimension
(Angabe einer Dimension nur bei Werten)
Beispiel: MAX<>,(9,2,DM)
Beispiel:
Der Schluessel "1904" liegt mit folgenden Auspraegungen und
den zugehoerigen Werten "ANZAHL" vor:
Auspraegungen I ANZAHL
---------------I--------
'010' I 100
'015' I 200
'020' I 300
'025' I 400
'030' I 500
'035' I 600
'040' I 700
'045' I 800
'050' I 900
'055' I 1000
In einer Auswertung werden folgende Auspraegungen und Funktionen
zu diesem Schluessel in der angegebenen Reihenfolge angefordert:
Anforderung I Ergebnis
---------------------------------I-------------
'020' I 300
'025' I 400
MIN01<> I 300
'030' I 500
MIN02<'010','015','035',400> I 100
MAX01<MIN02,500> I 500
'040' I 700
MIN03<> I 100
'050' I 900
Die verwendeten Funktionen haben folgende Bedeutung:
Funkt.- I Verwendung I Operanden
Name I I
--------I------------I---------------------------------
MIN01 I dynamisch I Auspraegungen '020','025'
--------I------------I---------------------------------
MIN02 I statisch I Auspraegungen '010','015','035'
I I Direktoperand 400
--------I------------I---------------------------------
MAX01 I statisch I Ergebnis Funktion MIN02
I I Direktoperand 500
--------I------------I---------------------------------
MIN03 I dynamisch I Auspraegungen '030','040'
I I Ergebnis Funktion MIN02
I I Ergebnis Funktion MAX01
-------------------------------------------------------
Kap. 7.7
Restriktionen bei Verwendung von Formeln und Funktionen
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
- In einer Abfrage sind maximal 250 Formeln bzw. Funktionen
moeglich. Werden Formeln beim Spaltenschluessel verwendet
und es existiert mehr als ein Spaltenschluessel, so wird
eine Formel eines Spaltenschluessels i.a. auf mehrere Spalten
angewendet. Dies ist bei der Grenze von 250 Formeln zu
beruecksichtigen.
- Die Laenge einer Formel sowie die tiefste Klammerung
sind praktisch unbegrenzt.
- In SPALTENSCHLUESSELN sind keine dynamischen Funktionen erlaubt.
- Es duerfen nur in maximal zwei SPALTENSCHLUESSELN Formeln und
Funktionen verwendet werden.
- Bei verschachtelten Funktionen muessen die inneren Funktionen
mit ihren Operanden vorher definiert sein, damit diese Angaben
in der aeusseren Funktion verwendet werden koennen.
- Fuer ZEILENSCHLUESSEL existieren folgende zusaetzliche
Restriktionen:
- vor einer sichtbaren Formel bzw. Funktion sind deren unter-
geordnete Formeln bzw. Funktionen bzw. Mengen aufzufuehren,
d.h. alle Operanden des Zeilenschluessels, die selber Formeln
oder Funktionen oder Mengen sind, muessen vor der Formel
gedruckt werden, weil im Zeilenschuessel nur von "oben" nach
"unten" gerechnet wird.
Beispiel:
F11 = A11 + B11
F12 = A12 + B12
F13 = A13 + B13
F14 = A14 + B14
DURCHSCHNITT = (F11 + F12 + F13 + F14) / 4
Im obigen Beispiel wird richtig von oben nach unten
gerechnet.
F11 = A11 + B11
F12 = A12 + B12
DURCHSCHNITT = (F11 + F12 + F13 + F14) / 4
F13 = A13 + B13
F14 = A14 + B14
Das letzte Beispiel ist nicht ausfuehrbar, weil nicht von
"oben" nach "unten" gerechnet wird. Die beiden Zeilen fuer
F13 und F14 werden erst nach der Formel, in der sie benutzt
werden, gedruckt.
Benutzt man NN-Formeln, so laesst sich die obige Darstellung
erreichen:
NN1 = A13 + B13
NN2 = A14 + B14
F11 = A11 + B11
F12 = A12 + B12
DURCHSCHNITT = (F11 + F12 + NN1 + NN2) / 4
F13 = NN1
F14 = NN2
Kap. 7.8
Rundungsfunktion bei Werten
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Jeder Wert kann in der Auswertung gegenueber seiner Speicherung
in gerundeter Form dargestellt werden.
Rundungen koennen in folgender Weise angefordert werden:
- Echte Werte koennen ueber ihre Aufbereitungsangaben (WZ) auf
entsprechende Nachkommastellen oder auch auf Zehner (A),
Hunderter (B) usw. bis (E) gerundet werden.
NR BEZEICHNUNG DIM AUFBEREIT.
100.. NEUGESCHAEFT......... DM_PF. ( .. , . )
100.. NEUGESCHAEFT......... DM.... ( 10 , 0 )
100.. NEUGESCHAEFT......... ZDM... ( 10 , A )
I WERTE
I NEUGESCHAEFT NEUGESCHAEFT NEUGESCHAEFT
BEZIRK I DM_PF DM ZDM
--------------------------------------------------------
10 I 423.420,20 423.420 42.342
11 I 81.241,50 81.242 8.124
- In Werteformeln kann man ebenfalls ueber Aufbereitungsangaben
eine Rundung auf gewuenschte Nachkommastellen erreichen.
Weitere Rundungen auf Zehner, Hunderter usw. muessen in der
Formel berechnet werden.
NEUGESCHAEFT_DM... = NEUGESCHAEFT , (10,0,DM)
NEUGESCHAEFT_ZDM.. = NEUGESCHAEFT / 10 , (10,0,ZDM)
Rundungsprobleme bei konkurrierenden Berechnungen
-------------------------------------------------
Sobald zusaetzlich zur Rundung eine Summierung oder Berechnung mit
diesen Werten erfolgt, koennen sich entsprechend der Berechnungs-
reihenfolge Rundungsdifferenzen ergeben.
Konkurrierende Berechnungen koennen sein
- Sternsummen in Kopf- und Zeilenschluessel
- Formel- und Funktionsberechnungen in Zeilen- und Spalten-
schluessel
- Mengenanforderung von Schluesselauspraegungen
Durchfuehrung der Rundung bei echten Werten
-------------------------------------------
1. Darstellung der Werte in der Spaltendimension
---------------------------------------------
In diesem Fall gilt immer folgende Verarbeitungsreihenfolge:
- Mengenbildung von Auspraegungen
- Berechnungsanweisungen in der jeweils angeforderten Reihenfolge
- Rundung der Werte
I WERTE
I NEUGESCHAEFT 2. Schritt NEUGESCHAEFT
BEZIRK I DM_PF DM
----------------------- ---------------
10 I 423.420,20 --> 423.420
11 I 81.241,50 --> 81.242
12 I 126.320,30 --> 126.320
13 I 187.768,40 --> 187.768
14 I 116.172,00 --> 116.172
15 I 90.955,10 --> 90.955
1. Schritt ( 1.025.877 )
* I 1.025.877,50 --> 1.025.878
Ergebnis:
--------
Die berechnete Summe weist Rundungsdifferenzen auf, ist allerdings
in ihrer Aussage genauer, weil mit ungerundeten Werten gerechnet
wird.
2. Darstellung der Werte in der Zeilendimension
--------------------------------------------
- Summierung ueber Spaltenschluesselformel
Es wird zunaechst die Rundung der Werte vorgenommen (Zeile vor
Spalte), danach die Berechnung in der Spalte.
I BD
WERTE I 10 11 26 30 FORMEL
-----------------------------------------------------------------
NEUGESCHAEFT I 4.902,7 2.955,9 9.555,5 3.576,2 20.990,3
GERUNDET I 4.903 2.956 9.556 3.576 20.991
Bei Angabe des Parameters SVZ in der Spaltenschluesselformel kann
die Reihenfolge umgekehrt werden.
I BD
WERTE I 10 11 26 30 FO(SVZ)
-----------------------------------------------------------------
NEUGESCHAEFT I 4.902,7 2.955,9 9.555,5 3.576,2 20.990,3
GERUNDET I 4.903 2.956 9.556 3.576 20.990
- Summierung ueber Auspraegungsmengen
Auspraegungsmengen werden immer vor Berechnungen gebildet, sodass
bei dieser Variante das gleiche Ergebnis entsteht wie bei einer
Formelberechnung mit SVZ.
I BD
WERTE I 10 11 26 30 MENGE
-----------------------------------------------------------------
NEUGESCHAEFT I 4.902,7 2.955,9 9.555,5 3.576,2 20.990,3
GERUNDET I 4.903 2.956 9.556 3.576 20.990
Durchfuehrung der Rundung in Werteformeln
-----------------------------------------
Fordert man einen Wert ueber eine Werteformel an, wird auch die
Rundungsanweisung in dieser Formel abgelegt.
Da bei Werteformeln Moeglichkeiten bestehen, die Abarbeitungs-
reihenfolge der angeforderten Berechnungsanweisungen festzulegen,
kann so auch der Zeitpunkt der Rundung beeinflusst werden.
Die Reihenfolge der Abarbeitung von Formeln und Funktionen ist
im folgenden Kapitel beschrieben.
Kap. 7.9
Reihenfolge bei der Abarbeitung von Berechnungsanweisungen
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Allgemein:
---------
In einer Anforderung koennen vor allem in der Zeilen- und Spalten-
dimension Berechnungsanweisungen definiert werden.
Solche Berechnungen koennen sein:
- Formeln und Funktionen
- Sternsummen
- VON-BIS-Zeitangaben
- Auspraegungsmengen
Beim Aufeinandertreffen mehrerer Berechnungen ist das Auswertungs-
ergebnis von der Reihenfolge der Abarbeitung dieser Operationen
abhaengig (siehe auch Kap. 7.5.).
Innerhalb des ASS gelten zunaechst folgende Standardregeln:
- Kopf- bzw. Zeilenberechnungen werden vor Spaltenberechnungen,
ausgefuehrt, d. h. ZEILEN VOR SPALTE.
- Spalten werden von oben nach unten abgearbeitet.
- Die Aufbereitungsoptionen aus den Spalten ueberschreiben die
aus den Zeilen.
Diese Standardabarbeitungsreihenfolge kann durch Angabe der Option
"SVZ" (SPALTE VOR ZEILEN) uebersteuert werden, die in der Spalten-
formel/-funktion als zusaetzliche Aufbereitungsangabe erscheint.
Dabei ist die Option SVZ ein Positionsparameter, der immer an der
vierten Stelle der Aufbereitungsangaben stehen muss. Werden andere
Aufbereitungsangaben nicht gebraucht, so sind die entsprechenden
Positionen durch leere Eintraege zu besetzen.
Beispiele:
,(8,2,DM,SVZ) ; ,(8,,,SVZ) ; ,(,,,SVZ)
Beispiele:
Ein einfaches Beispiel soll den Sachverhalt verdeutlichen.
- ZEILEN VOR SPALTE (Standard)
ZS: Sternsumme
SS: Formel DURCHSCHNITT = PRODUKTION / ANZAHL , (8,0,DM)
Ergebnis:
I WERTE
I ANZAHL PRODUKTION < 2. Schritt > DURCHSCHNITT
BD I STUECK DM DM
------------------------------- -------------
1 I 2.142 41.407.135 --> 19.331
2 I 1.856 60.294.669 --> 32.486
3 I 574 62.102.318 --> 108.192
< 1. Schritt >
* I 4.572 163.804.122 --> 35.828
Abarbeitungsreihenfolge:
-----------------------
1. Ermittlung der Summen ANZAHL und PRODUKTION
2. Berechnung der durchschnittlichen PRODUKTION fuer jede BD
und fuer die schon berechnete Summenzeile.
- SPALTE VOR ZEILEN (SVZ)
ZS: Sternsumme
SS: Formel DURCHSCHNITT = PRODUKTION / ANZAHL , (8,0,DM,SVZ)
Ergebnis:
I WERTE
I ANZAHL PRODUKTION < 1. Schritt > DURCHSCHNITT
BD I STUECK DM DM
------------------------------- -------------
1 I 2.142 41.407.135 --> 19.331
2 I 1.856 60.294.669 --> 32.486
3 I 574 62.102.318 --> 108.192
< 2. Schritt >
* I 4.572 163.804.122 160.009
Abarbeitungsreihenfolge:
-----------------------
1. Berechnung der durchschnittlichen PRODUKTION fuer jede BD
2. Summierung von ANZAHL, PRODUKTION und berechneter
durchschnittlicher PRODUKTION
Abarbeitungsreihenfolge bei komplexeren Anforderungen
-----------------------------------------------------
Werden in der Spaltendimension mehrere Berechnungen angefordert,
ist zunaechst die Reihenfolge der Spaltenschluessel fuer die
Abarbeitung entscheidend.
Es gilt: 1. Spaltenschluessel vor 2. Spaltenschluessel
Durch Verwendung der Option SVZ in den Spaltenformeln kann man
die gewuenschte Verarbeitungsreihenfolge erreichen.
Weiterhin gilt: 1. Kopfschluessel vor 2. Kopfschluessel vor ...
vor 1. Zeilenschluessel vor 2. Zeilenschluessel
Beispielanforderungen:
1.) Anforderung:
ZS: Sternsumme / Schluesselformel
SS: 1. Werteformel
2. Zeitraumformel ( J/F = '0190' + '0290' )
Abarbeitung:
- Summierung der Zeilen
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 I 40 3000 I
2 I 15 750 I 20 800 I
3 I 40 1200 I 50 2000 I
* I 80 2950 I 110 5800 I
- Ausfuehrung Werteformel (mit Rundung)
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I ----
2 I 15 750 50 I 20 800 40 I ----
3 I 40 1200 30 I 50 2000 40 I ----
* I 80 2950 42 I 110 5800 53 I ----
- Ausfuehrung Zeitraumformel
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I 65 4000 ----
2 I 15 750 50 I 20 800 40 I 35 1550 ----
3 I 40 1200 30 I 50 2000 40 I 90 3200 ----
* I 80 2950 42 I 110 5800 53 I 190 8750 ----
2.) Anforderung:
ZS: Sternsumme / Schluesselformel
SS: 1. Werteformel
2. Zeitraumformel (SVZ)
oder
ZS: Sternsumme / Schluesselformel
SS: 1. Zeitraumformel (SVZ)
2. Werteformel
Abarbeitung:
- Ausfuehrung Zeitraumformel
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 I 40 3000 I 65 4000
2 I 15 750 I 20 800 I 35 1550
3 I 40 1200 I 50 2000 I 90 3200
* I I I
- Summierung der Zeilen
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 I 40 3000 I 65 4000
2 I 15 750 I 20 800 I 35 1550
3 I 40 1200 I 50 2000 I 90 3200
* I 80 2950 I 110 5800 I 190 8750
- Ausfuehrung Werteformel (mit Rundung)
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I 65 4000 62
2 I 15 750 50 I 20 800 40 I 35 1550 44
3 I 40 1200 30 I 50 2000 40 I 90 3200 36
* I 80 2950 42 I 110 5800 53 I 190 8750 49
3.) Anforderung:
ZS: Sternsumme / Schluesselformel
SS: 1. Werteformel (SVZ)
2. Zeitraumformel
oder
ZS: Sternsumme / Schluesselformel
SS: 1. Zeitraumformel
2. Werteformel (SVZ)
- Ausfuehrung Werteformel (mit Rundung)
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I ----
2 I 15 750 50 I 20 800 40 I ----
3 I 40 1200 30 I 50 2000 40 I ----
* I I I
- Summierung der Zeilen
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I ----
2 I 15 750 50 I 20 800 40 I ----
3 I 40 1200 30 I 50 2000 40 I ----
* I 80 2950 120 I 110 5800 135 I ----
- Ausfuehrung Zeitraumformel
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I 65 4000 ----
2 I 15 750 50 I 20 800 40 I 35 1550 ----
3 I 40 1200 30 I 50 2000 40 I 90 3200 ----
* I 80 2950 120 I 110 5800 135 I 190 8750 ----
4.) Anforderung:
ZS: Sternsumme / Schluesselformel
SS: 1. Werteformel (SVZ)
2. Zeitraumformel (SVZ)
Abarbeitung:
- Ausfuehrung Werteformel (mit Rundung)
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I ----
2 I 15 750 50 I 20 800 40 I ----
3 I 40 1200 30 I 50 2000 40 I ----
* I I I
- Ausfuehrung Zeitraumformel
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I 65 4000 ----
2 I 15 750 50 I 20 800 40 I 35 1550 ----
3 I 40 1200 30 I 50 2000 40 I 90 3200 ----
* I I I ----
- Summierung der Zeilen
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I 65 4000 ----
2 I 15 750 50 I 20 800 40 I 35 1550 ----
3 I 40 1200 30 I 50 2000 40 I 90 3200 ----
* I 80 2950 120 I 110 5800 135 I 190 8750 ----
5.) Anforderung:
ZS: Sternsumme / Schluesselformel
SS: 1. Zeitraumformel
2. Werteformel
Abarbeitung:
- Summierung der Zeilen
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 I 40 3000 I
2 I 15 750 I 20 800 I
3 I 40 1200 I 50 2000 I
* I 80 2950 I 110 5800 I
- Ausfuehrung Zeitraumformel
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 I 40 3000 I 65 4000
2 I 15 750 I 20 800 I 35 1550
3 I 40 1200 I 50 2000 I 90 3200
* I 80 2950 I 110 5800 I 190 8750
- Ausfuehrung Werteformel (mit Rundung)
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I 65 4000 62
2 I 15 750 50 I 20 800 40 I 35 1550 44
3 I 40 1200 30 I 50 2000 40 I 90 3200 36
* I 80 2950 42 I 110 5800 53 I 190 8750 49
6.) Anforderung:
ZS: Sternsumme / Schluesselformel
SS: 1. Zeitraumformel (SVZ)
2. Werteformel (SVZ)
Abarbeitung:
- Ausfuehrung Zeitraumformel
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 I 40 3000 I 65 4000
2 I 15 750 I 20 800 I 35 1550
3 I 40 1200 I 50 2000 I 90 3200
* I I I
- Ausfuehrung Werteformel (mit Rundung)
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I 65 4000 62
2 I 15 750 50 I 20 800 40 I 35 1550 44
3 I 40 1200 30 I 50 2000 40 I 90 3200 36
* I I I
- Summierung der Zeilen
I WERTE
I ANZ NEU DURCH I ANZ NEU DURCH I ANZ NEU DURCH
I ZEITRAUM I
BD I 0190 0190 0190 I 0290 0290 0290 I J/F J/F J/F
---------------------------------------------------------
1 I 25 1000 40 I 40 3000 75 I 65 4000 62
2 I 15 750 50 I 20 800 40 I 35 1550 44
3 I 40 1200 30 I 50 2000 40 I 90 3200 36
* I 80 2950 120 I 110 5800 135 I 190 8750 142
Rechnen mit gerundeten Werten
-----------------------------
Oft weicht in Auswertungen die betrachtete Wertedimension vom
ungerundeten, gespeicherten Format ab.
Statt einer Auswertung in DM und PF sollen die Werte z. B. in TDM
ausgewiesen werden.
Erfolgen nun Berechnungen mit diesen Werten, wird stets auf die
ungerundete Wertebasis zurueckgegriffen.
Ueber den Parameter SVZ kann zwar die Abarbeitungsreihenfolge und
damit auch der Zeitpunkt der Rundung gesteuert werden, Rundungs-
differenzen sind aber dadurch nicht vermeidbar.
Soll weiterhin eine Rundung auf Zehner erfolgen, gilt statt des
bereits berechneten DM-Wertes wiederum der ungerundete Wert als
Ausgangsbasis.
Beispiel:
FO01 = PRAEMIE , (8,0,DM) oder echter Wert: PRAEMIE, (8,0)
FO02 = PRAEMIE , (8,0,DM,SVZ)
FO03 = PRAEMIE / 10 , (8,0,ZDM) oder echter Wert: PRAEMIE, (8,A)
FO04 = PRAEMIE / 10 , (8,0,ZDM,SVZ)
I WERTE
I PRAEMIE FO01 FO02 FO03 FO04
GEBIET I DM_PF DM DM ZDM ZDM
----------------------------------------------------------
01 I 224,65 225 225 22 22
02 I 29,74 30 30 3 3
GESAMT I 254,39 254 255 25 25
Dieses Problem koennen Sie vermieden, indem Sie mittels einer
NN-Formel eine Rundung auf volle DM vornehmen, und danach mit
diesem NN-Formelwert weiterrechnen.
In der NN-Formel ist der Parameter SVZ anzugeben, um die Rundung
vor allen anderen Berechnungen auszufuehren.
NNPR = PRAEMIE , (8,0,DM,SVZ)
FO01 = NNPR , (8,0,DM)
FO02 = NNPR / 10 , (8,0,ZDM)
I WERTE
I PRAEMIE FO01 FO02
GEBIET I DM_PF DM ZDM
-----------------------------------------
01 I 224,65 225 23
02 I 29,74 30 3
GESAMT I 254,39 255 26
Auspraegungsmengen und VON-BIS-Zeitangaben
------------------------------------------
Statt mit Sternsummen oder Formeln zu arbeiten, koennen Sie auch
mit Auspraegungsmengen und VON-BIS-Zeitangaben Summierungen
ausloesen.
Allerdings ist in diesen Faellen die Verarbeitungsreihenfolge
nicht zu veraendern, weil diese Anweisungen immer vor allen
anderen Berechnungsanweisungen durchgefuehrt werden.
Durchsetzen der Aufbereitungsangaben
------------------------------------
Anhand der obigen Beispiele ist leicht erkennbar, dass
die Abarbeitungsreihenfolge immer in Kreuzungspunkten von
Zeilen- und Spaltenformeln eine Rolle spielt. Analog zur Be-
rechungsreihenfolge setzen sich auf die Nachkommastellen bzw.
Aufbereitungsangaben durch. Hierbei gilt, dass im Gegensatz
zu Zeitraum- und Schluesselformeln Werteformeln per Definition
stets eine Aufbereitungsangabe besitzen (Voreinstellung ohne
Nachkommastellen). Entsprechend der Berechnungsreihenfolge setzen
sich diese Angaben durch, wobei gegebenenfalls Zwischenergebnisse
gerundet werden.
HINWEIS
-------
Etwaige Spaltenbedingungen (vergleiche Kap. 8.7) werden nach
jedem Abarbeitungsschritt angewandt.
Kap. 7.10
Die Formelbibliothek (Online)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Formeln, die fuer Listanforderungen erfasst werden, speichert
das System in der Formelbibliothek. Abgespeicherte Formeln
koennen Sie spaeter wieder aus der Formelbibliothek in einer
aktuell zu bearbeitenden Listanforderung aufrufen. Jede
Formel in der Formelbibliothek wird durch einen achtstelligen
Namen identifiziert. Dieser Name muss ein ASS-Bezeichner sein.
Zu unterscheiden sind zwei Umgebungen aus denen heraus die
Formel bearbeitet wird. Geschieht dieses innerhalb einer List-
anforderung, so gilt folgendes:
Abspeichern von Formeln:
Fuer den Namen der abzuspeichernden Formel werden die ersten
acht Stellen aus dem Feld fuer die Formelbezeichnung hergenommen.
Sie tragen dort einfach den Namen der zu speichernden Formel
ein und druecken PF7.
Existiert bereits eine Formel mit diesem Namen, so wird ein
Hinweis ausgegeben. Ein Ueberschreiben ist nur nach nochmaliger
Betaetigung von PF7 moeglich.
Lesen von Formeln:
Wie beim Schreiben von Formeln gibt man im Feld fuer die
Formelbezeichnung den Namen der zu lesenden Formel ein und
drueckt PF8. Ist der gewuenschte Formelname nicht bekannt,
so kann mit PF5 in die Bibliotheksuebersicht verzweigt werden.
Hier koennen dann durch einfache Markierung Formeln ausgewaehlt
werden. Im Feld fuer den Formelnamen kann bei PF5 sofort eine
?-Maskierung mitgegeben werden, um die Menge der anzuzeigenden
Formeln einzuschraenken (siehe hierzu auch die Beschreibung der
Bibliotheksuebersicht).
Eine andere Moeglichkeit ist die zentrale Pflege von Formeln
aus der Maske VS100 heraus. Hierzu geben Sie einen achtstelligen
Formelnamen in der Maske ein und markieren das entsprechende Feld
fuer die Erstellung von Formeln. Anschliessend wird in die Maske
VS114 verzweigt, wo sie diese Formel verarbeiten koennen. Dabei
ist es zunaechst unerheblich, ob diese Formel spaeter in List-
anforderungen als Wert-, Zeit- oder Schluesselformel verwendet
wird. Das Abspeichern erfolgt analog zu Listanforderungen via
Endeverarbeitung (Eingabe von E im Kommandofeld). In dieser
Umgebung ist es auch moeglich, die Formeln mit Kommentaren
zu versehen, die man sich in der Bibliotheksuebersicht anzeigen
lassen kann.
Formeln in der Formelbibliothek koennen ebenso wie Listanfor-
derungen mit der Bibliotheksverwaltung (Maske VS117) verwaltet
werden. Mit der Bibliotheksuebersicht (VS122) koennen sie
nach bestimmten Auswahlkriterien angezeigt werden.
Beim Abspeichern von Formeln werden keine syntaktischen oder
semantischen Pruefungen der betreffenden Formel durchgefuehrt.
Sie koennen daher beliebige Texte in der Formelbibliothek
abspeichern.
Zeitpunkt der semantischen Pruefung
-----------------------------------
Mit PF6 kehren Sie zu der Maske zurueck, aus der Sie die
Maske VS114 angesteuert haben.
Die Pruefung der Semantik wird wegen des hohen Aufwands nicht
bei der Bearbeitung der Maske VS114 durchgefuehrt, sondern
erst vor der Anzeige des Listbildes oder vor der Anzeige
der Statistik oder in der Abschlussbearbeitung der Listan-
forderung, weil in den drei genannten Faellen die Listanforderung
sowieso nochmals vollstaendig durchgeprueft wird.
In der Maske VS114 werden Eingaben nur auf korrekte Syntax
geprueft.
Kap. 7.11
Anforderung von Formeln (Online)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Formeln werden in der Maske VS114 erfasst. Diese Maske kann
aus mehreren anderen Masken angesteuert werden und zwar
- aus Maske VS110 (Auswahl von Auspraegungen eines Kopf-,
Zeilen- oder Spaltenschluessels)
- aus Maske VS111 (Erweiterte Wertanforderung ueber WZ)
- aus Maske VS113 (Anforderung von Zeiten ueber ZE)
- aus Maske VS100
- aus Maske VS117 (Bibliotheksuebersicht durch Selektion)
- aus Maske VS122 (Bibliotheksverwaltung durch Selektion)
Aus den ersten drei genannten Bildern heraus kommt man jeweils
in die Maske VS114, indem man die gewuenschte Reihenfolgenummer
vergibt und jeweils das Feld FORMEL markiert. In der Maske VS100
ist fuer das Verzweigen ein Formelname anzugeben und das ent-
sprechende Feld fuer die Formelbearbeitung zu markieren. Aus der
Bibliotheksverwaltung bzw. aus der Bibliotheksuebersicht heraus
verzweigt man durch Selektion der gewuenschten Formel.
In das erste Eingabefeld von VS114 muss ein Formelbezeichner
eingetragen sein. Dieser kann bis zu 20 beliebige Zeichen
enthalten, mit Ausnahme des einfachen Hochkommas.
Beim Abspeichern einer Formel in die Bibliothek werden nur die
ersten acht Zeichen der Formelbezeichnung beruecksichtigt.
In diesem Fall sollten die Formelbezeichnungen nur aus ASS-
Bezeichnern bestehen.
Der eigentliche Formelausdruck wird nach den gleichen Regeln
wie in der BATCH-Sprache beschrieben.
Abhaengig davon, ob eine Formeln innerhalb einer Listanforderung
bearbeitet wird oder ob diese Formel unabhaengig gepflegt wird
(Ansteuerung aus VS100, VS117 oder VS122), stehen verschiedene
Funktionen via PF-Taste zur Verfuegung.
Mit PF4 und Eingabe einer Formelbezeichnung koennen Sie sich eine
eventuell in der aktuellen Anforderung bereits existierende Formel
als Vorlage fuer eine neue Formel einlesen lassen.
Mit PF8 und Eingabe einer Formelbezeichnung kann die entsprechen-
de Formel aus der Formelbibliothek eingelesen werden.
Mit PF5 kann bei unbekanntem Formelnamen zur Formelauswahl auch
in die Bibliotheksuebersicht verzweigt werden (vgl. auch Kap. 7.10
'Die Formelbibliothek (Online)').
ACHTUNG: Dabei muss die Art der Formel auch wirklich zur aktuellen
Anforderungsumgebung passen. Wird z. B. eine Werteformel als
Schluesselformel eingelesen, so ist diese Anforderung ein Verstoss
gegen die ASS-Syntax und wird deshalb nicht ausgefuehrt.
Diese Funktionstasten sind nur bei der Verarbeitung von Formeln
innerhalb von Anforderungen sinnvoll und stehen daher auch nur
in dieser Umgebung zur Verfuegung.
Mit der PF3-Taste wird zu den Zeileninhalten zurueckgekehrt, die
zuletzt als gueltig vorgemerkt wurden (durch Einstieg in die Maske
oder durch Druecken der Enter-Taste). Hierbei werden durch
Betaetigen der PF3-Taste leere Zeilen (also auch die, die durch
das i-Einfuegekommando erzeugt wurden) wieder zusammengeschoben.
Sollen lediglich die Zeilen des angezeigten Bildschirms um die
Leerzeilen zusammengeschoben werden, ist vor dem Betaetigen der
PF3-Taste der Bildschirminhalt mit Enter-Taste vorzumerken, wobei
keine Fehlermeldung auftreten darf.
Kap. 7.12
Editierfunktionen fuer die Maske VS114
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Es stehen folgende Editierfunktionen bei der Erfassung einer
Formel zur Verfuegung :
- Einfuegen einer Leerzeile
- Wiederholen einer Zeile
- Kopieren einer Zeile oder eines Blockes von Zeilen
- Bewegen einer Zeile oder eines Blockes von Zeilen
Alle Editierkommandos bestehen aus einem Kommando-Kuerzel (ein
Buchstabe), gefolgt von einem Blank. Sie muessen linksbuendig in
den betreffenden Zeilen eingegeben werden.
Der Inhalt der entsprechenden Zeilen wird dann nicht aus der
aktuellen Maske geholt (da er ja teilweise ueberschrieben worden
sein kann durch das Editierkommando), sondern aus der vorher-
gehenden Eingabe, bzw. von der Anforderungsdatenbank, falls
die Formel gerade zuvor mit PF8 eingelesen wurde.
Letzteres ist natuerlich nur dann moeglich, wenn die Formel nicht
zwischendurch von einem anderen Benutzer von der Anforderungs-
datenbank geloescht wurde.
Die einzelnen Kommandos :
Kommando I Wirkung
------------------------------------------------
i,I I Eine Leerzeile wird eingefuegt, die folgenden Zeilen
I ruecken um eine Zeile nach unten.
r,R I Die entsprechende Zeile wird dupliziert.
c,C I Die entsprechende Zeile (ein 'c' eingeben) oder der ent-
I sprechende Block (zwei 'c' eingegeben, der Block reicht
I vom ersten 'c' bis zum zweiten 'c') wird kopiert, und
I zwar hinter die mit 'a' gekennzeichnete Zeile bzw. vor
I die mit 'b' gekennzeichnete Zeile.
m,M I Wie 'c', aber der Quellbereich wird geloescht.
a,A I Hinter dieser Zeile beginnt der Zielbereich fuer
I Copy/Move
b,B I Vor dieser Zeile beginnt der Zielbereich fuer Copy/Move
Verschachtelte Kommandos:
Ein r-Kommando innerhalb eines c-Block-Kommandos:
das r-Kommando wird zuerst ausgefuehrt.
Ein m-Kommando innerhalb eines r-Block-Kommandos:
das m-Kommando wird zuerst ausgefuehrt.
Kap. 7.13
Anforderung von Formeln (BATCH-Sprache)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
In der BATCH-Sprache werden Formeln wie normale Schluessel-
inhalte, Zeiten der Werte ueber ihre Bezeichnung angesprochen.
Ist die Bezeichnung kein ASS-Bezeichner, muss die Bezeichnung
zwischen einfache Hochkommata gesetzt werden.
Der Bezeichnung folgt ein Gleichheitszeichen. Dahinter folgt
der eigentliche Formelausdruck, dessen moegliche Bestandteile
oben beschrieben wurden.
Beispiel: Schluesselformel
ZS: TARIF = (050, 060, 070, SONDERTARIF = '061' + '062', 080);
Kap. 7.14
Definition von Formeln durch Formeln aus der Formelbibliothek
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Wird eine Formel oder Funktion in vielen Anforderungen verwendet,
so besteht die Moeglichkeit, diese Formel bzw. Funktion dynamisch
von der Formelbibliothek zu ergaenzen. Der Vorteil liegt darin,
dass bei einer Aenderung der Formel auf der Bibliothek andern-
falls saemtliche betreffende Anforderungen anzupassen waeren.
Angefordert werden derartige Formeln / Funktionen durch
FONAME1 = <<FONAME2, wobei FONAME2 auf der Formelbibliothek
bekannt sein muss. Handelt es sich um eine Funktion, so muss
FONAME1 die Konventionen fuer Funktionsnamen (vgl, Kap. 7.6)
erfuellen.
Ferner ist bei der Definition von FONAME1 die Angabe von Aufbe-
reitungsangaben moeglich, wobei schon vorhandene Aufbereitungs-
angaben bei FONAME2 uebersteuert werden.
Weitere Angaben, z. B. die Verwendung innerhalb eines arithme-
tischen Ausdrucks, sind nicht zulaessig. Derartige Konstrukte
lassen sich jedoch auf einfache Weise durch die Verwendung von
Hilfsformeln (NN-Formeln) erreichen.
Kap. 7.15
Bedingungen in Formeln (IF / THEN / ELSE)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
In bestimmten Anwendungsfaellen ist es erforderlich, den Wert
einer Formel in Abhaengigkeit einer (logischen) Bedingung
zu bestimmen.
Die Syntax hierfuer lautet:
Foname = IF Bedingung THEN arithmetischer Ausdruck 1
ELSE arithmetischer Ausdruck 2
ENDIF
Die Art des arithmetischen Ausdrucks haengt davon ab, ob
es sich um eine Zeitraum-, Schluessel- oder Werteformel
handelt.
In der Bedingung ist die Verwendung der Vergleichsoperatoren
'<', '<=', '>', '>=', '=' und '^=' sowie die Verknuepfung
zweier Bedingungen durch '&' (logisches und) oder '!'
(logisches oder) erlaubt. Die Bedingung gilt als 'wahr', wenn
die Auswertung ein von 0 verschiedenes Ergebnis liefert. Im
anderen Fall gilt die Bedingung als nicht erfuellt.
Bei Schluesseln mit Zeit-Typ (siehe ST06) sind auch
chronologische Zeitvergleiche zulaessig, siehe 4.4.1.
Beispiel:
BESTANDSENTWICKLUNG
= IF BESTAND_ALT = 0
THEN 0
ELSE ((BESTAND_NEU - BESTAND_ALT) / BESTAND_ALT) * 100
ENDIF
Der Formel kann wie ueblich eine Aufbereitungsangabe folgen.
Die Schachtelung von Bedingungen ist direkt nicht erlaubt.
Jedoch koennen die arithmetischen Ausdruecke im THEN-Zweig
bzw. ELSE-Zweig Formeln beinhalten, deren Wert wiederum durch
eine IF-Bedingung bestimmt ist.
Innerhalb einer Werteformel kann bei der Bedingung auch auf andere
Schluessel Bezug genommen werden. Um dabei einen Schluessel-
bezeichner von einem Wertebezeichner unterscheiden zu koennen,
ist ersterer durch die Angabe von SCHLUESSEL(Schluesselbezeichner)
kenntlich zu machen.
Beispiel:
PRAEMIE_KFZ
= IF SCHLUESSEL(SPARTE) = KFZ
THEN VERS_SUMME * FAKTOR
ELSE 0
ENDIF
Auch in diesem Fall ist die Verknuepfung verschiedener Bedingungen
zulaessig (Klammerung ist empfehlenswert).
Die hierbei angesprochenen Schluessel muessen explizit angefordert
als Kopf-, Zeilen- oder Spaltenschluessel angefordert sein.
Installationsabhaengig kann es aufgrund der internen Abarbeitungs-
reihenfolge notwendig sein, den THEN-Teil oder ELSE-Teil als
NN-Formel auszugliedern. Dieses ist dann der Fall, wenn
gleichzeitig Rechenwerte und Mengen angefordert werden.
Im obigen Beispiel wird auf eine Schluessel-Auspraegung abgefragt.
Es gibt auch die Moeglichkeit auf Auspraegungsmengen abzufragen:
PRAEMIE_KFZ
= IF SCHLUESSEL(SPARTE) = MENGE('Sach')
THEN VERS_SUMME * FAKTOR
ELSE 0
ENDIF
wobei alle Mengen, die in der betreffenden Anforderung mit 'Sach'
bezeichnet sind, beruecksichtigt werden.
In Werte-, Zeitraum- oder Schluessel-Formeln kann bei
Bedingungen auch ein sogenannter String-Vergleich verwendet
werden.
Beispiel:
IF '&&MONAT' < '04'
THEN 0
ELSE NEUBEITRAG
ENDIF
Beim Stringvergleich ist darauf zu achten, dass beide
Operanden als String definiert sind, d.h. in Hochkommata
eingeschlossen werden. Im obigen Beispiel ist das
Ergebnis abhaengig vom Inhalt des Parameters &&MONAT und damit
in der gesamten Anforderung immer gleich.
In Werteformeln darf auch die rechte Seite vom Vergleichs-Operator
einen Schluessel, der in der aktuellen Anforderung als KS, ZS
oder SS angefordert ist, adressieren.
Beispiel:
PRAEMIE_KFZ
= IF SCHLUESSEL(SPARTE) = SCHLUESSEL(SPARTE_NEU)
THEN VERS_SUMME * FAKTOR
ELSE 0
ENDIF
Vorheriges Kapitel: 6 Kommentare in ASS-Auswertungen
Nächstes Kapitel: 8 Druckaufbereitungs- und Selektionsoptionen