RAPGEN
Installations Handbuch
Teil 2.
13. Datei Definitions Modul............................................................................................................................................................... 3
13.1. Installation des DMS.RAP.DRN................................................................................................................................................ 3
13.2. Generell........................................................................................................................................................................................... 4
13.2.1. Interaktive Dateidefinition.......................................................................................................................................................... 4
13.2.2. Interaktive Felddefinition........................................................................................................................................................... 4
13.2.3. Beenden der Dateidefinition in einem
Durchlauf.................................................................................................................... 4
13.2.4. Erweiterte Feldformat Spezifikationen...................................................................................................................................... 5
13.2.5. Full Screen Editor......................................................................................................................................................................... 5
13.2.6. Nachschlangen einer Datei........................................................................................................................................................ 5
13.2.7. Batch Update Mode für Dateien............................................................................................................................................... 5
13.2.8. Batch Update von Parameterdateien........................................................................................................................................ 5
13.2.9. Generierung einer Definitionsbeschreibung
(Hilfe)................................................................................................................ 5
13.3. Hauptfunktionen........................................................................................................................................................................... 6
13.3.1. Erweiterung einer bestehenden Definition.............................................................................................................................. 6
13.3.2. Anlegen einer neuen Dateidefinition........................................................................................................................................ 6
13.3.3. Löschen einer Dateidefinition.................................................................................................................................................... 6
13.3.4. Ausdrucken einer Dateidefinition............................................................................................................................................. 7
13.3.5. Kopieren einer Dateidefinition................................................................................................................................................... 7
13.3.6. Kopieren von einem anderen System....................................................................................................................................... 7
13.3.7. Ändern eines Dateikurznamens................................................................................................................................................. 7
13.3.8. PUT und GET in/von einer Textdatei........................................................................................................................................ 7
13.3.9. Erweitern der Felddefinitionen................................................................................................................................................... 7
13.3.10. Erweitern des Index und der Dateiverweise............................................................................................................................ 7
13.3.11. Zusätzliche Feldbeschreibung
(Dokumentation)................................................................................................................... 7
13.3.12. Generieren des READ Kommandos......................................................................................................................................... 8
13.3.13. Nachschlangen in einer Datei................................................................................................................................................... 8
13.3.14. Generierung einer Hilfsanleitung.............................................................................................................................................. 8
13.4. Inhalt der Kopf Felder (Header)..................................................................................................................................................
8
13.4.1. Dateikurzname.............................................................................................................................................................................. 8
13.4.2. Dateiname..................................................................................................................................................................................... 8
13.4.2.1. Umwandlungsregeln für einen Dateinamen............................................................................................................................ 8
13.4.2.2. Dateinamen‑Datei....................................................................................................................................................................... 9
13.4.2.3. STAR, NEWSTAR und SUPERSTAR Systeme..................................................................................................................... 9
13.4.3. Text................................................................................................................................................................................................ 9
13.5. Felddefinitionen............................................................................................................................................................................ 9
13.5.1. Definieren eines Feldes............................................................................................................................................................... 9
13.5.2. Springen zwischen den einzelnen Feldern............................................................................................................................. 10
13.5.3. Beenden der Felddefinitionen.................................................................................................................................................. 10
13.5.4. Feldformat Spezifikationen....................................................................................................................................................... 10
13.6. Kommandos während der Felddefinition................................................................................................................................ 11
13.6.1. DEL Löschen von Feldern........................................................................................................................................................ 11
13.6.2. INS Einfügen von Feldern........................................................................................................................................................ 11
13.6.3. MOD Ändern des Anzeige Modus........................................................................................................................................ 11
13.6.4. GET Kopieren von einem anderen Datei................................................................................................................................ 13
13.6.5. MAT MAT READ für Feldtypen............................................................................................................................................ 13
13.6.6. ACT Aktivieren/Deaktivieren im
Listgenerator.................................................................................................................... 13
13.6.7. PSW Angeben des Passwords für diese
Datei..................................................................................................................... 13
13.6.8. PRT Ausdruck der kompletten
Dateidefinition..................................................................................................................... 13
13.6.9. INX Index/Dateiverweis Definition......................................................................................................................................... 14
13.6.9.1. Funktionen für die Index Definition....................................................................................................................................... 14
13.6.9.2. Index Definitionen.................................................................................................................................................................... 14
13.6.9.3. Dateiverweis Definition........................................................................................................................................................... 14
13.6.10. Struktur der Schlüsselfeld Definitionen................................................................................................................................ 15
13.6.10.1. Felder......................................................................................................................................................................................... 15
13.6.10.2. Funktionen................................................................................................................................................................................ 15
13.6.10.3. Kombination von Feld und Funktion................................................................................................................................... 15
13.6.10.4. Beispiele für Schlüsselstrukturen.......................................................................................................................................... 15
13.6.11. KEY Feldnummer bei 'Schlüssel nicht im
Satz'..................................................................................................................... 15
13.6.12. TXT Pflege von erweiterten
Felddefinitionen...................................................................................................................... 16
13.6.13. XFO Nachschlangen in einer Datei........................................................................................................................................ 17
13.6.13.1. Anzeigen der Datei ab Beginn............................................................................................................................................... 17
13.6.13.2. Anzeigen der nächsten Seite................................................................................................................................................. 17
13.6.13.3. Auswahl des Anfangsschlüssels......................................................................................................................................... 17
13.6.13.4. Auswahl eines bestimmten Index der Datei......................................................................................................................... 17
13.6.13.5. Auswahl einer fremden Datei................................................................................................................................................. 17
13.6.13.6. Nachschlangen in einer Datei beenden................................................................................................................................ 17
13.6.13.7. MOD Wahl des Anzeige Modus.......................................................................................................................................... 18
13.6.13.8. Auswahl eines bestimmten Teiles eines
Satzes.................................................................................................................. 18
13.6.14. CHK Feld Eingabe Prüfung..................................................................................................................................................... 19
13.7. Regeln beim Erweitern einer
Dateidefinition........................................................................................................................... 19
13.7.1. Vorzeichen.................................................................................................................................................................................. 19
13.7.2. Hinzufügen von Feldern in einer
bestehenden Datei........................................................................................................... 19
13.7.3. Ändern von Feldern in einer bestehenden
Datei.................................................................................................................. 19
13.7.4. Listen mit mehreren Dateien..................................................................................................................................................... 19
13.7.5. Ändern eines Feld Types......................................................................................................................................................... 20
13.7.6. WRITE Kommandos................................................................................................................................................................. 20
13.7.7. DATAMASTER Dateien.......................................................................................................................................................... 20
14. Subfunctions............................................................................................................................................................................... 21
14.1. Subfunctions and the LOAD command.................................................................................................................................. 21
14.1.1. Loading of a subfunction......................................................................................................................................................... 21
14.1.2. The subfunction textfiles.......................................................................................................................................................... 22
14.1.3. Structure of the subfunction textfile....................................................................................................................................... 22
14.1.4. A subfunction example............................................................................................................................................................. 22
14.2. Subfunctions in complex calculation:...................................................................................................................................... 23
14.2.1. Subfunctions as subroutines................................................................................................................................................... 23
14.2.2. Subfunctions in selections....................................................................................................................................................... 23
14.2.3. Subfunction parameters............................................................................................................................................................ 24
14.2.4. Evaluation order......................................................................................................................................................................... 24
14.2.5. Restrictions................................................................................................................................................................................. 25
14.3. Subfunctions and the HLP command...................................................................................................................................... 25
14.3.1. Printing the subfunction help.................................................................................................................................................. 26
14.3.2. List of implemented subfunctions........................................................................................................................................... 26
14.3.3. Detailed description of the subfunctions.............................................................................................................................. 27
14.4. Writing a subfunction................................................................................................................................................................ 30
14.4.1. The master textfile DMS.RAPX............................................................................................................................................... 31
14.4.2. 100 Return variable.................................................................................................................................................................... 31
14.4.3. 101‑149 Parameter variables..................................................................................................................................................... 31
14.4.3.1. Return values in parameter values......................................................................................................................................... 31
14.4.4. 150‑199 Free field definitions................................................................................................................................................... 32
14.4.4.1. #Dx Start‑data definitions........................................................................................................................................................ 32
14.4.5. 200 Initialize entry...................................................................................................................................................................... 32
14.4.6. 201‑299 Entry points.................................................................................................................................................................. 32
14.4.6.1. Dummy entry............................................................................................................................................................................. 32
14.4.6.2. Multiple entry points............................................................................................................................................................... 33
14.4.6.3. Dummy subfunctions............................................................................................................................................................... 33
14.4.7. 300‑399 Variables used.............................................................................................................................................................. 33
14.4.8. 400 Reentrant Y/N...................................................................................................................................................................... 33
14.4.9. 401 Renumber from, to, step..................................................................................................................................................... 33
14.4.10. 402 Write access Y/N............................................................................................................................................................... 34
14.4.11. 403 Password Y/N..................................................................................................................................................................... 34
14.4.12. 404 Number of #Dx fields......................................................................................................................................................... 34
14.4.13. 416 FN functions nessesary.................................................................................................................................................... 34
14.4.14. 419 Acoounting report active................................................................................................................................................. 34
14.5. Using files in a subfunction...................................................................................................................................................... 35
14.5.1. File channels............................................................................................................................................................................... 35
14.5.2. Other file informations.............................................................................................................................................................. 35
14.5.3. File variables............................................................................................................................................................................... 35
14.5.4. File channels as parameters..................................................................................................................................................... 35
14.6. Subfunction examples................................................................................................................................................................ 36
Figuren......................................................................................................................................................................................................... 39
Stichwort...................................................................................................................................................................................................... 40
13. Datei Definitions Modul.
Ein neu entwickeltes Datei Definitions Modul
für den Listgenerator macht es dem Anwender einfacher, bestehende Dateien für
den Listgenerator neu zu definieren.
Bisher wurde dafür eine besondere Version
des DATAMASTER's benutzt. Der DATAMASTER ist jedoch besser dafür geeignet, neue
Dateien aufzubauen bzw. Dateien, die durch den DATAMASTER angelegt wurden, zu
ändern.
Der Name des neuen Moduls ist DMS.RAP.DRN,
und wurde per 01.01.1988 freigegeben. Bereits definierte Dateien bzw. der
Listgenerator selbst werden hiervon nicht berührt. Bereits definierte Listen
sind ebenfalls davon unabhängig, ob neue oder alte Dateidefinitionen benutzt
wurden.
14.1. Installation des DMS.RAP.DRN.
Kopieren Sie alle Dateien mit dem Prefix
DMS.RAP.DRN auf das Anwendersystem (beliebige lu). Sie können das Kommando
COPYALL in Zusammenhang mit libr.list DMS.RAP.DRNLIB verwenden.
Figur
1 Libr.list
FILNAVN BRUGER BLOKKE PART./ APPL. VERS SPC
DATO HBA HASH
* #REC. AREA FMVVTM
INF. TOTAL
D
DMS.RAP.DRN 5 37
24 0 0 0 0
1 01.02.88 6264 54852
D
DMS.RAP.DRN1 5 28
24 0 0 0 0
1 01.02.88 131513 26864
D
DMS.RAP.DRN2 5
11 24 0 0
0 0 1 01.02.88 6207
29529
D
DMS.RAP.DRN3 5 21
24 0 0 0 0
1 01.02.88 4745 8933
D
DMS.RAP.DRN4 5 27
24 0 0 0 0
1 01.02.88 112523 11236
D
DMS.RAP.DRN5 5 22
24 0 0 0
0 1 01.02.88 112523 24778
D
DMS.RAP.DRN6 5 11
24 0 0 0 0
1 01.02.88 112523 63643
D
DMS.RAP.DRN7 5 10
24 0 0 0 0
1 01.02.88 112523 10691
D
DMS.RAP.DRN8 5 19
24 0 0 0 0
1 01.02.88 112523 38985
D
DMS.RAP.DRNLIB 5 4
3 0 0 0 0
1 01.02.88 112523 31471
C
DMS.RAP.DRNT 5 16
5 0 0 0 0
0 01.02.88 4713 29264
C
DMS.RAP.DRNTE 5
16 5 0 0
0 0 0 01.02.88 5125
29264
C
DMS.RAP.DRNTY 5 16
5 0 0 0 0
0 01.02.88 4730 29264
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
TOTAL: 238 61099
Das Programm kann jetzt vom Scope (#)
angewählt werden, nachdem DMS.RAPGEN von diesem Arbeitsplatz gestartet wurde.
Ein Eintrag in der TAMOS Programmwahl kann
vorgenommen werden, wenn DMS.RAP.DRN auf der gleichen lu platziert wird wie
DMS.RAPGEN, und das Programmwahlmodul DMS.R auf die neue Version gebracht wird.
Die Programmwahl sollte als
lu/DMS.R,986300
definiert
sein, wobei 98 das Programm, und 63 das System angibt. Die Programmnummer in
der Programmwahl muss auf 0 (Null) gesetzt werden.
DMS.RAP.DRN besteht aus 8 BASIC Programmen,
die optimiert werden können, und einer Datei mit den sprachabhängigen Texten
(etwa 200 Blöcke).
NIROS 5.1 rev. 5 (oder höher) wird benütigt
(Anmerkung: Das Programm kann nicht unter Versionen kleiner 5.0 laufen). Eine
Partitiongrösse von 24 Kb ist für einen normalen ablauf ausreichend.
Falls Dateidefinitionen mit Satzlängen >
1600 Bytes erforderlich sind, und die Datensätze während der Definition auf dem
Bildschirm angezeigt werden sollen, kann eine grössere Partition erforderlich
werden.
14.3. Generell.
Die normalen Funktionstasten von TAMOS/COMET
können in diesen Programmen verwendet werden, also:
@ um den Wert des
Feldes zu erhalten
um ein Feld
zurückzugehen
END um die Funktion zu
beenden
SPR um die Funktion
abzubrechen
? um die Verfügbaren
Kommandos anzuzeigen
Das Programm wird durch Eingabe von ENDE auf
die Frage nach dem Dateikurznamen beendet. An anderen Stellen wird nur die
entsprechende Funktion beendet.
Verwenden Sie SPR, beachten Sie bitte, dass
die Eingabe in der augenblicklichen Funktion nicht berücksichtigt wird, frühere
Eingaben aber gültig sind.
<CR> hat die gleiche Wirkung wie @,
nämlich Beibehalten des augenblicklichen Wertes des entsprechenden Feldes. Die
Funktionen Insert/Delete/Backspace können zum Editieren des Feldnamens u.s.w.
verwendet werden.
14.4.1. Interaktive Dateidefinition.
Wurde ein Dateiname eingegeben, versucht
DMS.RAP.DRN diese Datei zu eröffnen. Ist dies nicht möglich, erhält der
Anwender eine entsprechende Mitteilung. Der Korrekte Dateiname kann
anschliessend eingetastet werden.
Ist die Datei gefunden, wird die Satzlänge
und Schlüssellänge der Datei zur Kontrolle auf dem Bildschirm angezeigt. In der
Statuszeile wird die Anzahl Sätze, die Anzahl benutzer und Anzahl freier Sätze
angegeben.
Der nächste Satz der Datei wird für spätere
Bearbeitung eingelesen (Satznummer 1 bei relativen Dateien).
14.4.3. Interaktive Felddefinition.
Wird ein Feld definiert/hinzugefügt, wird
die Variable 'Feldtype' und 'Bytedisplacement' neu berechnet und angezeigt.
Alle Felder, die von diesen Werte beeinflusst werden, werden neu berechnet.
Bytenummer und Feldtype ($,1%,2%,3%,4%)
werden in der Statuszeile angezeigt.
Ist der gesamte Satz im Speicher abgelegt
(siehe oben), wird der Wert des Feldes entsprechend des Felddefinitionsformates
rechts in der Statuszeile ausgegeben.
Hierdurch erhalten Sie eine visuelle Kontrollmöglichkeit
des definierten Satzes. Erscheint * (o.ä.) in einem
numerischen Feld, ist die zugehörige Definition nicht korrekt. Ist ein ganzer
Satz nicht vorhanden, wird die entsprechende Feldvariable angezeigt.
14.4.5. Beenden der Dateidefinition in einem
Durchlauf.
Die Felddefinitionen sind beendet und alle
Bytenummern u.s.w. korrekt, wenn der Testsatz, der auf dem Bildschirm angezeigt
wird, gelesen werden konnte.
READ Kommandos werden anschliessend
automatische generiert, und die Datei ist klar für die Verwendung durch
DMS.RAPGEN.
14.4.7. Erweiterte Feldformat Spezifikationen.
Eine Felddefinition besteht normalerweise
aus zwei Angaben, dem Feldnamen und dem Feldformat.
Das Format wird wie gewöhnlich definiert,
indem man z.B. ein alphanumerisches Feld mit 32 Zeichen, oder ein numerisches
Feld mit 8 Vorkommastellen und 2 Dezimalstellen angibt.
Wird weiter nichts angegeben, wird das Feld
als ungepackt, abgelegt in der kleinsten Variablen, verstanden. Das
Bytedisplacement wird als nächstes freies Feld berechnet.
Falls notwendig, können weitere
Informationen unmittelbar im Anschluss an das Feldformat mit einem Zusatz (Ein
Zeichen Kode) angefügt werden:
Z.B. bestimmt B16, dass das Feld im Byte 16
beginnt, P gibt gepackt an und T1 gibt eine 1% Variable an.
Alle Optionen können hier benutzt werden,
werden jedoch für einfache Dateien nicht verlangt.
14.4.9. Full Screen Editor.
Es wird immer rein volle Seite mit Feldern
auf dem Bildschirm angezeigt. Es ist also nicht mehr notwendig, die
vorhergehenden Felder einzeln aufzurufen.
14.4.11. Nachschlangen einer Datei.
Man hat die Möglichkeit, in jeder
indizierten Datei während der Felddefinitionen nachzuschlangen. Die einzelnen
Satzschlüssel können zusammen mit den Feldinhalten einer jeden Art
(packed,1%,2%,3%,4%,alpha,text,binär) angezeigt werden.
14.4.13. Batch Update Mode für Dateien.
Es ist möglich, Textdateien mit den
Felddefinitionen anzulegen, um diese Dateien auf einem anderen System für die
Definition zu verwenden. Da normalerweise solche Textdateien sehr kurz sind (2‑3
Sektoren), ist eine eventuelle Modemübertragung sehr schnell.
14.4.15. Batch Update von Parameterdateien.
Sie können ein Programm schreiben, dass die
Parameterdateien von COMET oder einem anderen System liest, und eine
entsprechende Textdatei für DMS.RAP.DRN anlegt.
Wird DMS.RAP.DRN mit J0=1000 und dem Kanal
#8 (offen) als Textdatei 'gelinkt', werden alle Kommandos hierüber ausgeführt.
14.4.17. Generierung einer Definitionsbeschreibung
(Hilfe).
Sind alle Dateien korrekt definiert und
abgeschlossen, kann eine Textdatei, die die gesamte Beschreibung der Dateien
enthält (auch der einzelnen Felder) generiert werden. Diese Datei kann als
Textdatei in der Hilfe Funktion der EXPERT Programmwahl benutzt werden.
14.5. Hauptfunktionen.
Nach Anwahl von DMS.RAP.DRN wird eine
Übersicht über alle bekannten Dateien auf dem Bildschirm ausgegeben. Der
Anwender kann jetzt den gewünschten Dateikurzname eingeben.
Figur
2 Dateiübersicht, Kommandos bei
Dateikurzname.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORTNAME: FILENAME: TEXT:
DISCNAME: RECLEN KEYS:
BU
BUDGETDATEI
DB
DEB/KRED BEWEGUNG
DK
DEB/KRED STAMDATEI
KB
SACHKONTEN‑BEWEGUNG
KO
SACHKONTEN‑STAMDATEI
L2
ARTIKELSTAM 2/LAWI
L3
ARTIKELSTAM 3/LSTAP
L4
ARTIKELSTAM 6/ AB/F
L5
ARTIKELSTAM ‑ FEROS
L6
ARTIKELSTAM COSTING
LA
ARTIKEL‑STAMKARTOTEK
LO
LAGERORTDATEI
MESSAGE:@//END/SPR/GET/PRT/PUT/XFO/MAN/
Figur
3 Dateiübersicht, Kommandos bei Dateiname.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORTNAME:LA FILENAME:9/LF‑06000abc TEXT:ARTIKEL‑STAMKARTOTEK
DISCNAME:09/LF‑06000001 RECLEN 656 KEYS:16,12 BYTES
BU
BUDGETDATEI
DB
DEB/KRED BEWEGUNG
DK
DEB/KRED STAMDATEI
KB
SACHKONTEN‑BEWEGUNG
KO
SACHKONTEN‑STAMDATEI
L2
ARTIKELSTAM 2/LAWI
L3
ARTIKELSTAM 3/LSTAP
L4
ARTIKELSTAM 6/ AB/F
L5
ARTIKELSTAM ‑ FEROS
L6
ARTIKELSTAM COSTING
LA
ARTIKEL‑STAMKARTOTEK
LO
LAGERORTDATEI
MESSAGE:@//END/SPR/DEL/GET/XFO/
14.6.1. Erweiterung einer bestehenden Definition.
Geben Sie den Kurznamen einer der
angezeigten Dateien ein. Die Definitionen werden gelesen und am Bildschirm
angezeigt.
14.6.3. Anlegen einer neuen Dateidefinition.
Geben Sie einen neuen (nicht benutzen)
zweistelligen Kurznamen ein. Anschliessend werden Sie um Bestätigung gebeten,
dass eine neue Datei angelegt werden soll.
Die nächste freie Dateidefinition (DRN)
wird automatisch reserviert. Dabei werden alle gegenwärtigen Untersysteme
durchsucht (DMDATAFILx).
14.6.5. Löschen einer Dateidefinition.
Eine Dateidefinition wird gelöscht, indem
Sie nach dem Dateikurznamen das Kommando DEL geben. Anschliessend wird um eine
Bestätigung gebeten.
Alle Definitionen und alle READ Kommandos
der Textdatei werden gelöscht. Die Datei selbst wird natürlich nicht berührt.
14.6.7. Ausdrucken einer Dateidefinition.
Anstelle des Dateikurznamens geben Sie das
Kommando PRT. Sie werden anschliessend gefragt, welche Dateidefinitionen
gedruckt werden sollen.
Sie können einen einzelnen Kurznamen,
mehrere Namen (getrennt durch Komma) oder ein Intervall angeben, z.B. L1‑L3,BU,DB‑DK.
Der Drucker $LPT, der durch TAMOS dem
Bildschirm zugeordnet ist, wird benutzt. Anzahl Zeilen und Druckbreite werden
automatisch angepasst. Geben Sie nach dem Kurznamen ein + (plus) an, wird auch,
falls möglich, der Satzinhalt ausgegeben.
14.6.9. Kopieren einer Dateidefinition.
Geben Sie anstelle des Kurznamens das
Kommando GET ein, nachdem Sie bereits eine Datei gewählt haben.
Sie werden jetzt gefragt, von welcher Datei
Sie die Definitionen kopieren wollen. Geben Sie den Kurznamen einer bestehenden
Datei an, werden die Definitionen dieser Datei (einschl. Textdateien für READ
Kommandos) in die neue Definitionsdatei kopiert.
14.6.11. Kopieren von einem anderen System.
Wie unter Punkt 13.3.5.
Bei der Angabe 'Kopieren von' kann man
jetzt xxyy eingeben, wobei xx die Nummer eines Systems, und yy der
Dateikurzname ist.
Geben Sie z.B. 63LA ein, wird die
Dateidefinition der Datei LA im System 63 kopiert.
14.6.13. Ändern eines Dateikurznamens.
Hierfür müssen Sie die 'alte'
Dateidefinition in eine neue Dateidefinition mit einem neuen Kurznamen
kopieren.
14.6.15. PUT und GET in/von einer Textdatei.
Geben Sie das Kommando PUT ein, können Sie
ausgewählte Dateidefinitionen in eine Textdatei einschreiben (print).
Sie werden nach dem Namen der Textdatei
gefragt. Hier können Sie die Dateien entsprechend der Beschreibung der Print Funktion
auswählen.
Geben Sie das Kommando GET ein, werden Sie
nach dem Namen der Textdatei gefragt. Alle Eingaben für das Programm werden
jetzt von der entsprechenden Textdatei, die wiederum PUT Kommandos bzw.
programm generierte Parameter enthalten kann, genommen.
14.6.17. Erweitern der Felddefinitionen.
Haben Sie Dateiname und Text (Header‑Informationen)
eingegeben, werden die ersten 20 Felder der Datei angezeigt. Sie können jetzt
die Felddefinitionen erweitern (siehe späterer Abschnitt).
14.6.19. Erweitern des Index und der Dateiverweise.
Geben Sie das Kommando INX ein (in jedem
beliebigen Feld). Anschliessend werden der Index/Dateiverweise angezeigt. Diese
können jetzt erweitert werden.
Bei Beenden dieser Funktion ( END ) kehrt
man zurück zu den Felddefinitionen.
14.6.21.
13.3.11. Zusätzliche Feldbeschreibung
(Dokumentation).
Das TXT Kommando kann dazu benutzt werden,
bis zu 99 Zeilen Text für jedes Feld einzugeben. Dieser Text wird bei Aufrufen
der Hilfe Funktion auf dem Bildschirm angezeigt.
Diese zusätzliche Beschreibung ist nicht
notwendig, für eine vollständige Dokumentation jedoch sehr hilfreich.
14.6.23. Generieren des READ Kommandos.
Nach Beenden der Felddefinitionen (END),
wird man gefragt, ob READ Kommandos generiert werden sollen (DMREAD.xx).
Dies ist notwendig, wenn Erweiterungen
eines Feldformats, d.h. Bytenummer, Feldtype, Feldlänge u.s.w., vorgenommen
oder neuen Felder hinzugefügt wurden. Haben Sie selbst Erweiterungen der READ
Kommandos durchgeführt, sollte dieser Schritt unterlassen werden, da die
bestehenden Textdateien hierdurch überschrieben werden.
14.6.25.
13.3.13. Nachschlangen in einer Datei.
Geben Sie das Kommando XFO während des
Definierens von Feldern bzw. am Anfang ein, wird die Funktion 'Nachschlangen in
einer Datei' aktiviert.
14.6.27. Generierung einer Hilfsanleitung.
Gibt man statt des Kurznamens das Kommando
MAN ein, wird eine spezielle Ausgabe der Dateidefinitionen in der Textdatei
x/MANUALxx0001 abgelegt, wobei x/xx das Prefix der Datei x/xxFILES ist, wie es
von DMS.RAPGEN.SYS gesetzt wurde.
Diese Datei kann dann dazu benutzt werden,
eine Hilfsanleitung in der EXPERT Programmwahl einzurichten. Die Dateien werden
in alphabetischer Reihenfolge nummeriert, beginnend mit 001. Weiterhin wird
jedes einzelne Feld in einer Datei als 'Dateinummer+Feldnummer' nummeriert.
Der
Kurzname und die Feldnummer werden als Zugriffsschlüssel gekennzeichnet. Der
Anwender kann z.B. POS XX05 eingeben, um den Text für die Datei XX, Feld 5
angezeigt zu bekommen.
Der Titel dieser Anleitung entspricht dem
Systemnamen, der in der DMS.RAPGEN Dateidefinition festgelegt wurde.
14.7. Inhalt der Kopf Felder (Header).
Folgende Informationen müssen eingegeben
werden, bevor die eigentlichen Feldbeschreibungen definiert werden können:
14.8.1. Dateikurzname.
Dieser zwei Zeichen lange Kurzname muss die
Datei eindeutig identifizieren können. Das erste Zeichen muss ein
Grossbuchstabe (A‑Z) sein.
14.8.3. Dateiname.
Der Dateiname kann dem aktuellen Namen der
Datei entsprechen, oder es können Zeichen ersetzt werden, um die Datei auch
unter COMET oder anderen Systemen anwenden zu können.
14.8.4.1. Umwandlungsregeln für einen Dateinamen.
Der Dateiname in der Dateidefinition muss
als lu/Dateiname in Grossbuchstaben angegeben werden. Kleine Buchstaben und
Sonderzeichen werden entsprechend folgender Übersicht umgewandelt:
Der COMET TOP Dateiname heisst z.B. 1/GF‑03000abc.
Kleinbuchstaben und Sonderzeichen werden
wie folgt umgewandelt:
abc = TAMOS Programmwahl
Parameter 1
def = TAMOS Programmwahl
Parameter 2
ghi = TAMOS Programmnr.
jk
= Arbeitsplatznr.
l
= DMS Suffix
mn
= Systemnr. des Listgenerators
o
= Sprachsuffix des Listgenerators
pq
= (Reserviert)
rz
= (Frei)
#
= Datei Suffix des Listgenerators
@
= Arbeitsplatznr. 1‑9 (nur am
Ende des Dateinamens)
Die lu wird durch die entsprechende Nummer
in der DLU Tabelle, wie sie von DMS.RAPGEN.SYS definiert wurde, ersetzt. Setzen
Sie diese immer auf 0123456789, um Ersetzungen zu umgehen. Hierdurch wird diese
Aufgabe von DMS.RAPGEN.LU übernommen.
14.8.4.3. Dateinamen‑Datei.
Für einige Systeme, z.B. NYRUP Systeme, wird
eine Datei gehalten, die die einzelnen Dateinamen enthält. Jede Datei wird
hierbei durch eine Dateinummer identifiziert.
Benennen Sie z.B. das Listgeneratorsystem
in DMS.RAPGEN.SYS in Feldnummer 1 0/DS10ASYSTEM, dann wird hiermit die
Dateinamen Datei bezeichnet. Das zweite Zeichen muss ein Schrägstrich ( / )
sein. Sie können jetzt den Dateinamen als RRR oder RRR,BBB angeben, wobei RRR
die Satznummer des Satzes, die den Dateinamen enthält, und BBB das
Bytedisplacement ist.
14.8.4.5. STAR, NEWSTAR und SUPERSTAR Systeme.
Folgende Regeln gelten, wenn das BACKCHAIN Programm aktiviert wird,
falls dieses in DMS.RAPGEN.SYS mit einem Prefix x/ST gekennzeichnet ist.
Der Dateiname muss als 02LEKA angegeben
werden, wobei die ersten zwei Ziffern auf eine Parameternummer der Dateiparameter
verweisen. Anschliessend muss der Dateiname angegeben werden.
Ist der Systemkode in DMS.RAPGEN.SYS auf 1
gesetzt, wird die lu und das Prefix für die NewSTAR Datei von der TAMOS
abhängigen Datei 0/ST.PARAMabc übernommen (Satznummer 65 und 13).
14.8.5. Text.
Hier kann ein erklärender Text (bis zu 25
Zeichen) eingegeben werden.
14.9. Felddefinitionen.
Ist die Eingabe der Kopfinformationen
abgeschlossen, werden die ersten 20 Felder der Datei angezeigt. Sie befinden
sich in Position Feldnr. 0.
Figur
4 Felddefinitionen, Satzinhalt.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORTNAME:LA FILENAME:9/LF‑06000abc TEXT:ARTIKEL‑STAMKARTOTEK
DISCNAME:09/LF‑06000001 RECLEN
656 KEYS:16,12 BYTES
NO. NAME FORMAT BYTE;T RECORD CONTENTS
1
ARTIKELNUMMER
!16B4 ! 4;$ =100
2
ARTIKELBEZEICHNUNG
!33B21 ! 21;$ =FRAKT
3
ARTIKELBEZEICHNUNG
!33B55 ! 55;$ =
4
MATCHCODE
!6B89(16) ! 89;$ =FRAKT
5
SATZNUMMER ARTIKEL !6,B96 !
96;2%= 5
6
LIEFERANTENUMMER
!8,P ! 100;3%= 0
7
BESTANDS‑KONTONUMMER
!12,PB105 ! 105;4%= 6030
8
KZ.ARTIKEL GESPERRT
!1B112 ! 112;$ =0
9
KZ.VERFUEGB.KONTR. !1 ! 113;$ =6
10
KZ.ARTIKELKONTO !1 ! 114;$ =1
11
BEWERTUNGSSCHLÜSSEL !1 ! 115;$ =2
12
ABC SCHLÜSSEL !1 ! 116;$ =D
13
BESTELLMENGENSCHLÜSSEL !1 ! 117;$ =0
14
BEZUGSSCHLÜSSEL !1 ! 118;$ =0
15
RESERV.F.KZ.VAR.‑VER
!1 ! 119;$ =0
16
KZ.BESTELLPUNKT !1 ! 120;$ =0
17
RESERVIERT !1 ! 121;$ =
18
RESERVIERT !1 ! 122;$ =
19
BEZUGSKOSTENSCHLÜSSEL !1, ! 124;1%=0
MESSAGE:00‑99/@//END/SPR/DEL/INS/MOD/GET/MAT/ACT/INX/PSW/PRT/KEY/TXT/CHK/XFO/
14.10.1. Definieren eines Feldes.
Um ein Feld zu definieren, geben Sie nur den
Feldnamen und die Formatspezifikationen ein. Die Bytenr. des Feldes u.s.w.
werden errechnet und angezeigt. Anschliessend kann das nächste Feld definiert
werden.
14.10.3. Springen zwischen den einzelnen Feldern.
Die Taste kann benutzt
werden, um ein Feld zurück zu springen.
Bei <CR> oder @ wird der
augenblickliche Wert (Text und Format) beibehalten.
Durch Eingabe eines Wertes zwischen 1 und
99 kann ein bestimmtes Feld direkt angesprungen werden (Feldnr.). Liegt das
Feld ausserhalb des Intervalls, das gerade auf dem Bildschirm angezeigt wird,
wird der Bildschirminhalt entsprechend verschoben.
Bei Angabe von 0 oder in
der ersten Position wird direkt auf die Position nach dem letzten definierten
Feld gesprungen.
14.10.5. Beenden der Felddefinitionen.
Durch die Eingabe von END werden die
Definitionen in die Datei geschrieben, und READ Kommandos können jetzt
generiert werden.
SPR bricht den Definitionsvorgang ab, ohne
dass irgendwelche Felder verändert wurden.
14.10.7. Feldformat Spezifikationen.
Die folgenden Optionen (wahlfreie
Kombination) können bei der Formatangabe eines Feldes mitangegeben werden:
32
32 Zeichen Textfeld
3,
3 stelliges num. Feld
3,2
‑
, 2 Dezimalstellen
‑3,2 ‑ , 2 Dezimalstellen und Vorzeichen
,8,2
mit Trennung nach Tausender, Vorzeichen
*8,2
vorangestellte ***** (Stern)
Bxxxx
Feld beginnt auf Bytenr. xxxx
Tx
Feld erhält den Typ x
P
gepackt
P2
gepackt ohne Komma, Division durch 10E
S
das letzte Zeichen beinhaltet einen
'delimiter' ($)
(xx)
xx Zeichen sind im Satz reserviert ($)
W
Arbeitsfeld nicht im Satz
miteingeschlossen
Cx
Kode für Feldeingabe Prüfung auf x
gesetzt
K
Einmaliger Schlüssel 1,S
D
Doppelter Schlüssel 2,NP,S
E
Einmaliger Schlüssel, keine 0 3<>0,3,S
Z
Doppelter Schlüssel, keine 0 4<>0,4,NP,S
V
Doppelter Schlüssel
gewendetes Datum
(FND) 5D,NP,S
I
Doppelter invertierter Schlüssel
(Call 91) 6I,NP,S
X
Doppelter Schlüssel
gewendetes Datum,
invertiert 7DI,NP,S
Die
folgenden Optionen sind für spätere Verwendungen reserviert:
Px
Spezielles Feld Type x, gepackt
Wx
Arbeitsfeld in anderem Satz
miteingeschlossen
Feldtypen,
die automatisch berechnet werden:
1%
bis zu 3 Ziffern, keine Dezimalstellen
2%
4 und 5 Ziffern, oder Dezimalstellen in
1%
3%
7 bis 10 Ziffern
4%
mehr als 10 Ziffern
14.11. Kommandos während der Felddefinition.
Die folgenden Kommandos stehen während einer
Felddefinition zur Verfügung:
14.12.1. DEL Löschen von Feldern.
Bei Eingabe dieses Kommandos wird gefragt,
wieviele Felder gelöscht werden sollen ab dem Feld, in dem das DEL Kommando
abgesetzt wird. Geben Sie entweder die Anzahl Felder ein, oder, falls doch
keine Felder gelöschet werden sollen, tasten Sie <CR>.
14.12.3. INS Einfügen von Feldern.
Sie werden gefragt, wieviele Felder vor dem
aktuellen Feld eingefügt werden sollen. Beachten Sie bitte, dass die maximale
Anzahl Felder in einem Satz 99 sein kann.
14.12.5. MOD Ändern des Anzeige Modus.
Mit diesem Kommando können Sie den Anzeige
Modus für die rechte Bildschirmhälfte ändern:
0
= Feld, Type, Format
1
= Byte, Variable
2
= Byte, Type, Satzinhalt
3
= Lese nächsten Satz, wie 2
4
= Keine Anzeige
5
= Erste Zeile der erweiterten
Feldbeschreibung
51 =
Erste Zeile der speziellen Feldtexte
6
= Zugelassene Feldwerte
Ist ihr Arbeitsplatz über ein 'langsammes'
Modem mit dem System verbunden, kann über die Funktion 4 die Geschwindigkeit
erhöht werden. Die Taste R2 bewirkt, dass der Modus 4 als 'Default' gewählt
wird. Die anfängliche Dateiübersicht wird dann nicht gezeigt.
Bei Wahl von Modus 1,2 oder 3 werden alle
Bytenummern u.s.w. der entsprechenden Felder unmittelbar neu berechnet, wenn
Feldtype oder andere Werte geändert wurden. Dies kann durch Wahl von 1 oder 4
unterdrückt werden.
In Modus 5 wird automatisch auf ein neues
Schirmbild gewechselt, in dem die zusätzliche Feldbeschreibung angezeigt wird.
Die Textzeilen können über die 'Hilfe' Funktion im Listgenerator ausgegeben
werden.
Figur
5 Felddefinitionen, Feldformate.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORTNAME:LA FILENAME:9/LF‑06000abc TEXT:ARTIKEL‑STAMKARTOTEK
DISCNAME:09/LF‑06000001 RECLEN
656 KEYS:16,12 BYTES
NO. NAME FORMAT T
FORMAT
1
ARTIKELNUMMER
!16B4 !$ XXXXXXXXXXXXXXXX
2
ARTIKELBEZEICHNUNG
!33B21 !$ XXXXXXXXXXXXXXXXXXXXXXXXXXXX
3
ARTIKELBEZEICHNUNG !33B55 !$
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
4
MATCHCODE
!6B89(16) !$ XXXXXXXXXXXXXXXX
5
SATZNUMMER ARTIKEL
!6,B96 !2% ######
6
LIEFERANTENUMMER
!8,P !3% ########
7
BESTANDS‑KONTONUMMER
!12,PB105 !4%
############
8
KZ.ARTIKEL GESPERRT
!1B112 !$ X
9
KZ.VERFUEGB.KONTR. !1 !$ X
10
KZ.ARTIKELKONTO !1 !$ X
11
BEWERTUNGSSCHLÜSSEL !1 !$ X
12
ABC SCHLÜSSEL !1 !$ X
13
BESTELLMENGENSCHLÜSSEL !1 !$ X
14
BEZUGSSCHLÜSSEL !1 !$ X
15
RESERV.F.KZ.VAR.‑VER
!1 !$ X
16
KZ.BESTELLPUNKT !1 !$ X
17
RESERVIERT !1 !$ X
18
RESERVIERT !1 !$ X
19
BEZUGSKOSTENSCHLÜSSEL !1, !1% #
DISPLAY MODE:0
MESSAGE:00‑99/@//END/SPR/DEL/INS/MOD/GET/MAT/ACT/INX/PSW/PRT/KEY/TXT/CHK/XFO/
Figur
6 Felddefinitionen, Variable.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORTNAME:LA FILENAME:9/LF‑06000abc TEXT:ARTIKEL‑STAMKARTOTEK
DISCNAME:09/LF‑06000001 RECLEN
656 KEYS:16,12 BYTES
NO. NAME FORMAT BYTE;VARIABLE
1
ARTIKELNUMMER
!16B4 ! 4;S$(1,16)
2
ARTIKELBEZEICHNUNG
!33B21 ! 21;S$(17,49)
3
ARTIKELBEZEICHNUNG
!33B55 ! 55;S$(50,82)
4
MATCHCODE
!6B89(16) ! 89;S$(83,98)
5
SATZNUMMER ARTIKEL !6,B96 !
96;S2(1)
6
LIEFERANTENUMMER
!8,P ! 100;S3(1)
7
BESTANDS‑KONTONUMMER
!12,PB105 ! 105;S4(1)
8
KZ.ARTIKEL GESPERRT
!1B112 ! 112;S$(99,99)
9
KZ.VERFUEGB.KONTR. !1 ! 113;S$(100,100)
10
KZ.ARTIKELKONTO !1 ! 114;S$(101,101)
11
BEWERTUNGSSCHLÜSSEL !1 ! 115;S$(102,102)
12
ABC SCHLÜSSEL !1 ! 116;S$(103,103)
13
BESTELLMENGENSCHLÜSSEL !1 ! 117;S$(104,104)
14
BEZUGSSCHLÜSSEL !1 ! 118;S$(105,105)
15
RESERV.F.KZ.VAR.‑VER
!1 !
119;S$(106,106)
16
KZ.BESTELLPUNKT !1 ! 120;S$(107,107)
17
RESERVIERT !1 ! 121;S$(108,108)
18
RESERVIERT !1 ! 122;S$(109,109)
19
BEZUGSKOSTENSCHLÜSSEL !1, ! 124;S1(1)
DISPLAY MODE:1
MESSAGE:00‑99/@//END/SPR/DEL/INS/MOD/GET/MAT/ACT/INX/PSW/PRT/KEY/TXT/CHK/XFO/
Figur
7 Erweiterte Feldbeschreibungen.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORTNAME:LA FILENAME:9/LF‑06000abc TEXT:ARTIKEL‑STAMKARTOTEK
DISCNAME:09/LF‑06000001 RECLEN
656 KEYS:16,12 BYTES
NO. NAME FORMAT FIELD DESCRIPTION
1
ARTIKELNUMMER
!16B4 !MAIN KEY
2
ARTIKELBEZEICHNUNG
!33B21 !
3
ARTIKELBEZEICHNUNG !33B55 !CAN BE OMITTED
4
MATCHCODE
!6B89(16) !SECONDARY SEARCH
KEY
5
SATZNUMMER ARTIKEL
!6,B96 !POINTER RELATIVE
FILE
6
LIEFERANTENUMMER
!8,P !KEY SUPPLIERS FILE
7
BESTANDS‑KONTONUMMER
!12,PB105 !
8
KZ.ARTIKEL GESPERRT
!1B112 !START BYTE
DEPENDENT ON PARAMS
9
KZ.VERFUEGB.KONTR. !1 !
10
KZ.ARTIKELKONTO !1 !
11
BEWERTUNGSSCHLÜSSEL !1 !
12
ABC SCHLÜSSEL !1 !
13
BESTELLMENGENSCHLÜSSEL !1 !
14
BEZUGSSCHLÜSSEL !1 !
15
RESERV.F.KZ.VAR.‑VER
!1 !
16
KZ.BESTELLPUNKT !1 !
17
RESERVIERT !1 !
18
RESERVIERT !1 !
19
BEZUGSKOSTENSCHLÜSSEL !1, !
DISPLAY MODE:5
MESSAGE:00‑99/@//END/SPR/DEL/INS/MOD/GET/MAT/ACT/INX/PSW/PRT/KEY/TXT/CHK/XFO/
Figur
8 Zugelassene Werte.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORTNAME:LA FILENAME:9/LF‑06000abc TEXT:ARTIKEL‑STAMKARTOTEK
DISCNAME:09/LF‑06000001 RECLEN
656 KEYS:16,12 BYTES
NO. NAME FORMAT ALLOWED VALUES
1
ARTIKELNUMMER
!16B4 !
2
ARTIKELBEZEICHNUNG
!33B21 !
3
ARTIKELBEZEICHNUNG
!33B55 !
4
MATCHCODE
!6B89(16) !
5
SATZNUMMER ARTIKEL
!6,B96 !
6
LIEFERANTENUMMER
!8,P !
7
BESTANDS‑KONTONUMMER
!12,PB105 !
8
KZ.ARTIKEL GESPERRT
!1B112 !0,1
9
KZ.VERFUEGB.KONTR. !1 !0‑9
10
KZ.ARTIKELKONTO !1 !
11
BEWERTUNGSSCHLUESSEL !1 !1,2
12
ABC SCHLUESSEL !1 !0,1,2,3
13
BESTELLMENGENSCHLUESSEL !1 !
14
BEZUGSSCHLUESSEL !1 !
15
RESERV.F.KZ.VAR.‑VER
!1 !
16
KZ.BESTELLPUNKT !1 !
17
RESERVIERT !1 !
18
RESERVIERT !1 !
19
BEZUGSKOSTENSCHLUESSEL !1, !
DISPLAY MODE:6
MESSAGE:00‑99/@//END/SPR/DEL/INS/MOD/GET/MAT/ACT/INX/PSW/PRT/KEY/TXT/CHK/XFO/
14.12.7. GET Kopieren von einem anderen Datei.
Sie werden gebeten, den Kurznamen und die
Feldnummern 'von', 'bis' der Datei anzugeben, aus der Sie die Felddefinitionen
übernehmen wollen.
Diese Felddefinitionen werden dann in die
aktuelle Datei ab laufendem Feld übernommen. Bestehende Definitionen werden
überschrieben.
Sollen Felder eingefügt werden, benutzen
Sie bitte zuerst das INSert Kommando.
Es können Definitionen aus einer Datei
eines anderen Systems kopiert werden, indem man die Systemnr. zusammen mit dem
Kurznamen angibt, z.B. 02LA.
14.12.9. MAT MAT READ für Feldtypen.
Geben Sie die Feldnummern ein, für die der
MAT READ Befehl benutzt werden soll, z.B. $4, wenn MAT READ für alphanumerische
Felder und Felder des Typs 4% verwendet werden soll.
<CR> annuliert das Kommando, und die
Eingabe einer Leerstelle löscht alle vorher gesetzten MAT READ Optionen.
Numerische Variable werden beginnend mit
Sx(0) nummeriert, anstelle von Sx(1), wenn MAT READ für die Variable Typ x
aktiv ist.
14.12.11. ACT Aktivieren/Deaktivieren im
Listgenerator.
Ist eine Datei definiert, kann diese Datei
in der Regel vom Listgenerator verwendet werden.
Wollen Sie die Dateidefinitionen im System
behalten, doch soll die Datei nicht im DMS.RAPGEN benutzbar sein, kann das ACT
Kommando benutzt werden. Sie werden gebeten anzugeben, ob die entsprechende
Datei aktiv (J/N) sein soll.
14.12.13. PSW Angeben des Passwords für diese
Datei.
Geben Sie hier das Password für die aktuelle
Datei ein. Bei Eingabe von Leerstellen werden früher eingegebene Passwords
annuliert.
Ein Password muss immer dann eingegeben
werden, wenn der Anwender eine neue Liste für diese Datei einrichten will. Der
Anwender kann die Liste selbst mit einem Password schützen (Anwendername).
14.12.15. PRT Ausdruck der kompletten
Dateidefinition.
Dieses Kommando startet einen Ausdruck der
kompletten Dateidefinition und der aktuellen Satzinhalte auf dem Drucker $LPT.
14.12.17. INX Index/Dateiverweis Definition.
Bei Eingabe des Kommandos INX wird folgendes
neue Schirmbild gezeigt:
Figur
9 Index und Dateiverweis Definition.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
INDEX NAME FILE
DIR KEY DEFINITION
1 ARTIKELNUMMER !
!01 !1 !
2 MATCHCODE+RECNO !
!02 !4,N !
3 LAWI !L2 !
! !
4 LSTAP !L3 !
! !
5 AB/F !L4 !
! !
6 FEROS !L5 !
! !
7 COSTING !L6
! ! !
8 LAGERORT !L0
!01 !NP !
9 ! !
! !
10 ! !
! !
11 ! !
! !
12 ! !
! !
13 ! !
! !
14 ! !
! !
15 ! !
! !
16 ! !
! !
17 ! !
! !
18 ! !
! !
19 ! !
! !
MESSAGE:00‑99/@//END/SPR/DEL/INS/
Hierüber
können alle Indices und Dateiverweise definiert werden.
Die erweiterten Definitionen sind nicht
notwendig für den Listgenerator. Wir empfehlen aber dennoch, diese
Erweiterungen vorzunehmen, um späterhin eine brauchbare und lückenlose
Dokumentation des Systems zu haben.
Eine Liste kann auf jedem Index aufgebaut
werden.
Index und Dateiverweis Definitionen können
jederzeit zu einer bestehenden Dateidefinition hinzugefügt werden.
14.12.18.1. Funktionen für die Index Definition.
Bis zu 99 Definitionen können aufgebaut und
folgende Kommandos 0,1‑99,@,,END,DEL,SPR,INS
benutzt werden.
14.12.18.3. Index Definitionen.
Geben Sie den Namen des Index (bis 17
Zeichen) ein, und lassen Sie den Rest der Zeile frei. Dieser Text wird bei
Start einer Liste angezeigt.
Wollen Sie die Definitionen beenden, dann
lassen Sie die Spalte DATEI leer, definieren das Directory (1‑15) und
beschreiben die Schlüsseldefinition wie erläutert.
14.12.18.5. Dateiverweis Definition.
Geben Sie den Indexnamen als einen Text, der
die verknüpfte Datei beschreibt, und den Kurznamen in Datei ein (dieses
identifiziert die Verknüpfung). Anschliessend geben Sie die DIRectory Nummer in
der verknüpften Datei an. Die Schlüsseldefinition beschreibt das Feld in der
Datei, die für die Bildung des Zugriffsschlüssels für die verknüpfte Datei
benutzt werden soll.
Ist der Dateiverweis definiert, kann der
Anwender das Kommando READ(xx) beim Definieren einer Liste geben, ohne dass der
entsprechende Schlüssel gesondert definiert werden muss.
14.12.19. Struktur der Schlüsselfeld Definitionen.
Im folgenden wird die Syntax für die
Definition von Schlüsselfeldern erläutert:
14.12.20.1.
13.6.10.1. Felder.
Felder werden als Feldnummer ohne
vorangestelltes angegeben.
10 = Feld nr. 10
10(5,6) = Zeichen 5 und 6 in
Feld 10
R = Satznummer
N = Satznummer relativ
"XX" = Textkonstante
14.12.20.3.
13.6.10.2. Funktionen.
Funktionen werden direkt im Anschluss an das
Feld angegeben.
D = Datumswendung
(TTMMJJ ‑‑> JJMMTT wie FND)
P = Packen
Z = Unterdrücken von
Nullen
S = 'Space Padding'
14.12.20.5.
page
\* arabic1613.6.10.3. Kombination von Feld und Funktion.
Mehrere Felder werden durch Komma getrennt.
Die Funktion P kann für jedes Feld, oder
alleine, d.h. ohne Angabe einer Feldnummer, benutzt werden. Hierdurch werden
alle Zeichen, die vorher definiert wurden, gepackt.
14.12.20.7.
13.6.10.4. Beispiele für Schlüsselstrukturen.
1
Feld 1
1,2
Feld 1, gefolgt von Feld 2
1,2,P
wie oben, gepackt
1P,2
Feld 1 gepackt, gefolgt von Feld 2
1(3,4),2
Feld 1, Zeichen 3 und 4, gefolgt von
Feld 2
"01",1 Konstante 01,
gefolgt von Feld 1
2,NP,S
Feld 2, relative Satznummer, gepackt,
Leerstellen
Die beiden letzten Strukturen werden
normalerweise vom DATAMASTER benutzt, um einen eindeutigen Schlüssel bzw. einen
doppelten Schlüssel zu definieren.
14.12.21.
date
\@ "MMMM d, yyyy"januar 10, 200813.6.11. KEY Feldnummer bei 'Schlüssel nicht im
Satz'.
Es muss die Feldnummer eingegeben werden, wo
der Listgenerator den Zugriffsschlüssel speichern soll, wenn dieser Schlüssel
nicht aus dem Satz selbst gelesen werden kann.
Das Feld muss als alphanumerisches
Arbeitsfeld mit einer ausreichenden Länge, z.B. 30W, definiert sein.
Der Feldinhalt hängt natürlich davon ab,
welcher Index in der Liste benutzt wird.
Das Feld wird beim Sortieren
zwischenzeitlich in der Datei DMSORTWORK gespeichert.
14.12.23. TXT Pflege von erweiterten
Felddefinitionen.
Figur
10
Erweiterte Felddefinitionen.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
001 ARTIKELNUMMER
1 MAIN KEY
2 THIS NUMBER IS USED TO IDENTIFY
THE ARTICLE.
3
4 LENGTH IS MAX.16 CHARACTERS,
DEPENDING ON THE PARAMETER FILE.
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MESSAGE:00‑99/000‑199/@//END/SPR/DEL/INS/
über
das Kommando TXT, bzw. Sie den Modus 5 oder 51 gewählt haben, wechselt auf eine
Textseite, die die erweiterten Felddefinitionen enthält.
END oder <CR> in der ersten Textzeile
bringt Sie in die normale Definitionsfunktion zurück.
Über die Angabe 0‑99 kann eine
bestimmte Textzeile angewählt werden. Über die Kommandos INS/DEL kann eine
Zeile eingefügt bzw. gelöscht werden.
Geben Sie eine 3 ziffrige Zahl ein, z.B.
003, wird das entsprechende Feld angezeigt und kann jetzt erweitert werden. Man
braucht nicht in die Definitionsfunktion zurückkehren, um das nächste Feld
anzuwählen.
Die erweiterten Felddefinitionen können
über die 'Hilfe' Funktion auf dem Bildschirm angezeigt werden.
Jedem Feld sind zwei Textseiten zugeordnet.
Die zweite Seite hat den Modus 51 und wird nicht bei der 'Hilfe' Funktion
angezeigt. Diese Seite ist für spätere Verwendung reserviert.
14.12.25.
13.6.13. XFO Nachschlangen in einer Datei.
Wenn Sie während der Definition in einem
beliebigen Feld das Kommando XFO eingeben, wird das Programm zum Nachschlangen
in einer Datei aktiviert.
Beenden Sie dieses Programm durch END,
kehren Sie an die Stelle zurück, in der Sie die Definitionen verlassen haben.
Mit Hilfe der Funktion XFO kann jeder Schlüssel einer Datei, oder auch der
Satzinhalt, auf dem Bildschirm angezeigt werden.
Figur
11
XFO Nachschlangen in einer Datei.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORT:LO FILENAME:9/LF‑06001abc TEXT:LAGERORTDATEI
DISCNAME:09/LF‑06001001 RECLEN
92 KEYS:6 BYTES
KEY UNPACKED
01: 123456 RECNO.
RELAT. 123456789.12
1 "" 56
0 ""
2 "....." 75
19 "0000010002"
3 "....." 58
2 "0000020001"
4 "....." 61
5 "0000020002"
5 "....." 62
6 "0000020003"
6 "....." 63
7 "0000020004"
7 "....." 59
3 "0000030001"
8 "....." 64
8 "0000030002"
9 "....." 65
9 "0000030003"
10 "....." 66
10 "0000030004"
11 "....." 60
4 "0000040001"
12 "....." 67
11 "0000040002"
13 "....." 68
12 "0000040003"
14 "..!.." 69
13 "0000100001"
15 "..!.." 72
16 "0000100002"
16 "..!.." 73
17 "0000100003"
17 "..".." 70
14 "0000110001"
18 "..".." 77
21 "0000110002"
KEY:
MESSAGE:xx./nn:xxx/nnP:xxx/lu/filename/@//END/SPR/MOD/
14.12.26.1. Anzeigen der Datei ab Beginn.
Drücken Sie nur die Taste <CR>. Die
erste Seite mit Schlüsseln wird am Bildschirm angezeigt. Es werden folgende
Informationen ausgegeben: Wert des Schlüssels, Satznummer, relative Satznummer
und entpackter Schlüssel. Ist der Schlüssel von vorneherein ungepackt, kann das
letzte Feld ignoriert werden.
14.12.26.3. Anzeigen der nächsten Seite.
Zum Anzeigen der nächsten Seite drücken Sie
nur die Taste <CR>.
14.12.26.5. Auswahl des Anfangsschlüssels.
Wird ein Schlüsselwert eingegeben, wird ab
diesem Schlüssel angezeigt. Ist der Schlüssel gepackt, muss ein vorangestelltes
P angegeben werden, z.B. P:1234.
14.12.26.7. Auswahl eines bestimmten Index der Datei.
Wird 2 eingegeben, dann wird Index 2 gewählt.
Ausschliessend kann ein Startwert (siehe oben) eingegeben werden, z.B. 2P:1234.
14.12.26.9. Auswahl einer fremden Datei.
Zum Auswählen einer fremden Datei muss nur
lu/Dateiname dieser Datei eingegeben werden, z.B. 5/lf‑06000001.
14.12.26.11. Nachschlangen in einer Datei beenden.
Über die Kommandos ,
,SPOR und END kommt man in das ursprüngliche Programm zurück (gleiche
Stelle).
14.12.26.13. MOD Wahl des Anzeige Modus.
Der Anzeige Modus kann durch Eingabe von MOD
und einer der folgende Schlüssel bestimmt werden:
0
= Nur Schlüssel
1
= Satz als Text angezeigt
2
= Satz ungepackt angezeigt
3
= Satz hexadezimal angezeigt
4
= Anzeige aller möglichen
Variable Typen
14.12.26.15. Auswahl eines bestimmten Teiles eines
Satzes.
In Kombination mit dem Anzeige Modus kann
die erste und letzte Bytenummer des Teiles des Satzes, der angezeigt werden
soll, angegeben werden.
MOD 4,60,70 zeigt Byte nr. 60 bis Byte nr.
70 des Satzes an. MOD 4,60 bewirkt, dass ab Byte nr. 60 angezeigt wird.
Figur
12
XFO Modus 2, Anzeige ungepackt.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORT:LO FILENAME:9/LF‑06001abc TEXT:LAGERORTDATEI
DISCNAME:09/LF‑06001001 RECLEN
92 KEYS:6 BYTES
KEY UNPACKED
01: 123456 RECNO.
RELAT. 123456789.12
1:"....." 75
19 "0000010002"
0000: 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7
8 9 . 1 2 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7 8 9
..3+.07
0000010002......74....7+..........71..........710.........73..........71
2 . .
.9.9.9.9.9.9.9.9.9.9.9.9...00..........71..........71..............71....
......719.9.9.9.9.9...‑1
2 "....." 58
2 "0000020001"
0000: 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7
8 9 . 1 2 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7 8 9
........0000020001......74....7+..................................7.0.........71
2 . .
09.9.9.9.9.9.9.9.9.9.9.9.....5.64......77................................
........+7+.,5+4+3++....
3 "....." 61
5 "0000020002"
0000: 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7
8 9 . 1 2 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7 8 9
..2‑..4.0000020002......74....7+..........71..........714.........71..........71
2 . .
09.9.9.9.9.9.9.9.9.9.9.9...0...........71..........71..............714...
......71+7+0,2++,4+,...0
4 "....." 62
6 "0000020003"
0000: 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7
8 9 . 1 2 3 4 5 6 7 8 9 . 1 2 3 4 5 6 7 8 9
..2....60000020003......74....7+..........71..........710.........72..........7.
DISPLAY MODE:
MESSAGE:0=KEY, 1=TEXT, 2=PACK,
3=HEX, 4=ALL TYPES, x,bbbb,bbbb = BYTENOS.
Figur
13
XFO Modus 4, Anzeige aller möglichen Var. Typen.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
FILESHORT:LU FILENAME:9/LF‑06001abc TEXT:LAGERORTDATEI
DISCNAME:09/LF‑06001001 RECLEN
92 KEYS:6 BYTES
UNPACKED KEY
01: 123456789.12 RECNO.
RELAT. 123456
1 "0000010002" 75
19 "....."
BYTE HEX $
PACK 1% 2% 3% 4% BINARY
0000:004C L ....
76
0002:F188 q. .0.0
61835
0004:1111 .. 0000 1111
‑0.00
4369
0006:1211 .. 0101 1211
4625
0008:1300 . 0202
1300
130000.00 4864
0010:0000 ....
0 ‑0.00 0
0012:8501 .. 7474 ‑501
850104.00
34049
0014:048C .. ....
1164
0016:0000 ....
0 0.00 0.00 0.00 0
0018:0000 ....
0 0.00 0.00 0.00 0
0020:0082 . ....
82
0.08 130
0022:0000 ....
0 0.00 0.00 0.00 0
0024:0000 ....
0 0.00 0.00 0.00 0
0026:0082 . ....
82
0.82 130
0028:1000 . 0.0.
1000
10.00
4096
0030:0000 ....
0 0.00 0.00 0.00 0
KEY:
MESSAGE:
14.12.27. CHK Feld Eingabe Prüfung.
Figur
14
Zulässige Feldinhalte.
FILE DEFINITION RAPGEN FILE DEF REPORT GENERATOR # 0 88.02.01/13:03
008 KZ.ARTIKEL GESPERRT MINIMUM MAXIMUM
DISPLAY LENGTH:16
1 NORMAL !0 !0 !
2 GESPERRT !1 !1 !
3 ! ! !
4 ! ! !
5 ! ! !
6 ! ! !
7 ! ! !
8 ! ! !
9 ! ! !
10 ! ! !
11 ! ! !
12 ! ! !
13 ! ! !
14 ! ! !
15 ! ! !
16 ! ! !
17 ! ! !
18 ! ! !
19 ! ! !
MESSAGE:00‑99/000‑099/@//END/SPR/DEL/INS/
Diese
Information werden z.Zt. vom Listgenerator nicht verwertet, und können
übergangen werden. Sie können diese Funktion jedoch für Dokumentationszweke
verwenden.
Mit dem Kommando CHK wechselt man auf eine
neue Seite. Hier werden dann die zugelassenen Feldinhalte angezeigt.
END oder <CR> bringt Sie in die
Felddefinitionen zurück.
Durch Angabe von 0‑99 kann eine
bestimmte Zeile angesteuert werden. Die Kommandos INS/DEL können hier verwendet
werden. Beachten Sie, dass maximal 99 Zeilen eingegeben werden dürfen.
Bei Eingabe einer 3 stelligen Zahl, z.B.
003, wird dieses Feld angezeigt. Erweiterungen können vorgenommen werden und
man braucht nicht in die Felddefinitionen zurückspringen, um ein neues Feld
anzusteuern.
14.13. Regeln beim Erweitern einer
Dateidefinition.
Beachten Sie die folgenden Regeln, bevor Sie
eine Datei definieren bzw. neu definieren.
14.14.1. Vorzeichen.
Sie sollten ein numerisches Feld mit
Vorzeichen definieren, z.B. ‑8,2 oder 8,2, um spätere Probleme zu
vermeiden.
14.14.3. Hinzufügen von Feldern in einer
bestehenden Datei.
Fügen Sie felder in einer bestehenden Datei
hinzu, beachten Sie bitte, dass die Feldnummern der freien Felder des
Listgenerators sich ändern. Listen, die freie Felder benutzen, müssen also neu
definiert werden.
Sie können eine Kopie (neuer Kurzname)
anfertigen, um dann in der Kopie die Erweiterungen vorzunehmen.
14.14.5. Ändern von Feldern in einer bestehenden
Datei.
Werden aufgrund von Änderungen neue READ
Kommandos generiert, müssen diese in alle neu generierten Listen übernommen
werden.
14.14.7. Listen mit mehreren Dateien.
Benutzt eine Liste Beim Lesen einer Datei
das Kommando READ(xx), werden die READ Kommandos während der Definition der
Berechnungen geladen, nicht beim generieren der Liste. Diese Liste müssen also
nocheinmal über das Berechnungs Modul laufen, damit die vorgenommenen
Änderungen wirksam sind.
14.14.9. Ändern eines Feld Types.
Wird die Nummer einer 4% Variablen geändert,
verschieben sich die freien Felder in einer definierten Liste.
Sind die freien Felder als alphanumerische
Felder definiert, bewirkt eine Änderung der Feldlänge ebenso ein Verschieben
der folgenden freien Felder.
14.14.11. WRITE Kommandos.
WRITE Kommandos können über dieses Modul
nicht generiert werden, und werden bei Änderung einer bestehenden
Dateidefinition nicht neu generiert.
14.14.13. DATAMASTER Dateien.
Wird dieses Programm benutzt, um
Felddefinitionen zu ändern, kann dies vom DATAMASTER nicht erkannt werden.
15. Subfunctions.
Subfunctions are a combination of the BASIC
GOSUB subroutine call and the more easy to use FND function definition.
A BASIC FND function is very restricted as
it must be expressed in one statement in the program, it is only able to take
one numeric parameter as well as only one numeric value can be returned.
A subfunction can have as many arguments as
needed and may return either a numeric or an alphanumeric value. Also the
passed parameters may be modifyed by the subfunction, it is many return values
may be given.
The subfunction are invoked in the
DMS.RAPGEN calculations or selections by a statement like:
#47 = WORKD(#3,#4)
The subfunction WORKD calculates the number of
days between the two dates in field 3 and field 4 and returns this value to
field 47.
Introduction of the subfunction is done to
make it easyer for the user of DMS.RAPGEN to use complex functions as well for
the programmer to develop subroutines to suit special purposes in a given
installation.
16.1. Subfunctions and the LOAD command.
The subfunction call #47 = WORKD(#3,#4)
could be performed on former releases of
DMS.RAPGEN by the more BASIC‑like calculations:
LOAD WORKD
T3=#3
T3(1)=#4
GOSUB 4220
#47=T3
which gives exactly the same result but is of
cause much more complex to handle for the average user of DMS.RAPGEN. Some
subroutines will even require an initialize GOSUB to be placed in the FIRST
calculations to set up parameters.
DMS.RAPGEN will translate the subfunction
code to several basic statements containing the nessesary parameter settings,
routine calls and return value placement.
16.2.1. Loading of a subfunction.
DMS.RAPGEN will now scan all calculation
lines for command words which are unknown to the normal BASIC statement.
A
subfunction call is recognized if any combination of 4 letters (A‑Z only,
not digits) succeded by a bracket if found in the translated BASIC statement,
and this is not one of the report generator special functions like READ, START
etc.
If a subfunction like WORKD ( is found,
DMS.RAPGEN will test if the textfile:
x/RAPX.WORKD
is present on the system. x is the lu of the
DMS.RAPGEN programs.
If this textfile is present the subfunction
will be loaded into the calculations from this, otherwise DMS.RAPGEN will look
for the textfile:
x/DMS.RAPX.WORKD
and load the subfunction from here.
The error message NO SUCH SUBFUNCTION will
be given if neither of those textfiles are found, the command word will not be
translated in this case and may cause basic error if you try to start the
report.
16.2.3. The subfunction textfiles.
The subfunctions placed in DMS.RAPX.xxxxx is
the standard subfunction for the report generator.
These may be modifyed or new may be written
to solve special requirements and placed in textfiles with the name
RAPX.xxxxxxxxx.
Such textfiles will never be distributed
from us, it is new releases of DMS.RAPGEN will not overwrite individually
customized subfunctions.
The user function RAPXxxxxx has priority
over the standard DMS.RAPGEN function DMS.RAPX.xxxxx it is the user function is
loaded if this is present and the standard function will be ignored.
Due to the restriction of a file name to 14
characters a user subfunction may be 4‑9 characters, a standard
subfunction 4 or 5 characters only. As mentioned letters only (A‑Z) can
be used in subfunction names.
A longer subfunction name may be given by
the user (eg. NUMBER(...)), this will be shortened to the maximum length, it is
NUMBE for the standard subfunction DMS.RAPX.NUMBE
16.2.5. Structure of the subfunction textfile.
This textfile of cause contains the basic
subroutine itself. The subroutine must be written as quite normal basic program
and must be placed within the line numbers 1000 to 9999.
The statements 100‑999 in this
textfile contains REMarks which are used to control the generation of the
subfunction in the output report program.
The former used LOAD routines for
DMS.RAPGEN may easyly be modifyed to subfunctions just by adding these control
REMarks to the present textfile. Of cause the LOAD command can still be used in
the calculations.
The line number of the control REMarks (100‑999)
determines the parameter type for the translation:
1‑98 Remarks for
documentation
100 Return value
101‑149 Parameter
definitions
150‑199 Freefield definition
200
Initial entry point (DIM)
201‑299 Entry points
300‑399 Basic variable
requirements
400‑499 Special generator
requirements
500‑999 Reserved for future
extension
The control REMark may contain any
documentation text succeded by a colon and then the parameter, eg.:
100 REM RETURNS A GOOD VALUE: T3
16.2.7. A subfunction example.
To modify the former LOAD routine for the
word‑days calculations only a few control REMarks should be added to tell
the report generator which parameters are used and which variable holds the
result by the return.
The WORKD routine (or formar ARB) takes
from and to date in T3 and T3(1) and returns the number of days in T3.
You could modify the routine by:
LOAD DMS.RAPS.WORKD
100 REM RETURNS DAYS: T3
101 REM PARAMETER FROM DATE (DDMMAA): T3
102 REM PARAMETER TO DATE (DDMMAA): T3(1)
DUMP DMS.RAPX.WORKD
The calculation statement
#47 = WORKD (#3,#4)
will now be translated by DMS.RAPGEN to:
5201 GOSUB xxxxx
5202 S3(15)=T3
xxxxx T3=S2(1)
T3(1)=S2(2)
GOSUB yyyyy
yyyyy The WORKD subroutine itself (renumbered)
The calculation subfunctions will be located
in the statements:
803 gosub 13000 (before
users FIRST calculations)
13000‑13999 Initialize parameter
settings / gosub
14000‑14999 Parameter settings /
gosub
15000‑19999 Subfunction code
16.3. Subfunctions in complex calculation:
The user can place subfunctions in the
calculation statements just like other basic functions, eg:
#47 = WORKD (#3,#4)
IF WORKD (#3,#4)>3 LET #48=1
IF WORKD (#3,#4)+#15<100 READ (KU),#1
#49 = WORKD (#3,#4) %
WORKD(310388,#4)
#50 = CHEX
(#1,"1,2,3,7,4")
#51 = FUNC (1,FUNCA(2),FUNCB(3,4))
16.4.1. Subfunctions as subroutines.
All subfunctions will return a value and the
user may use this or not as desired.
If only the subfunction call is present in
a statement or if a subfunction call is preceded by the BASIC keyword GOSUB the
subfunction will act as an normal subroutine call:
FUNC (#1,2)
IF WORKD (#3,#4)>100 GOSUB FUNC
(#1,#2)
ON #47 GOSUB FUNCA(1), FUNCB(2),
FUNCC(3)
16.4.3. Subfunctions in selections.
As all the selections parameters
FIELDNO:
MINIMUM:
MAXIMUM:
may be given as calculations subfunctions may
be used here just as in the calculations.
NOTE: The internal line length in
selections is 50 characters only. If you need long subfunctions
(eg.FIND("PETER",#2,#3,...) you will have to select on a free field
which you have calculated as #47=FIND(...)
Subfunctions using files cannot be used in
selections directly, as the file handling and definitions only is included in
the calculation module.
The selection subfunctions will be located
in the statements:
802 gosub 10000 (before
users FIRST calculations)
10000‑10999 Initialize parameter
settings / gosub
11000‑11999 Parameter settings /
gosub
12000‑12999 Subfunction code
If a subfunction is used both in calculations
and selections the code for this will be loaded twice as the is a complete
separation between the generated code from selections and calculations.
16.4.5. Subfunction parameters.
The parameters for a subfunction may be any
field from any file, numeric constants or alphanumeric constants enclosed in
quotes or BASIC variables.
The parameters must be seperated by comma.
The user can specify any number of
parameters in a subfunction call, there is no check if the number of parameters
is less than or exeeds the number of parameters defined in the routine itself.
However, the programmer can in the
subfunction test on the number of parameters, be given the variable T. Any
omitted parameters will be set to zero or delimiter before the call.
If the subfunction FUNC requires 3
parameters the following calls are valid:
FUNC (1,2,3) (T=3)
FUNC () (T=0)
FUNC (1,2) (T=2)
FUNC (1,2,3,4,5) (T=3)
FUNC (,,3) (T=3)
FUNC (,2) (T=2)
NOTE:
The last parameter for a subfunction may be given as a concatenation of
strings.
This is used for example in the FIND
subfunction, which searchs for the first string parameter in the combinations
on the following string fields:
FIND
("PETER",#2,#3,#4,#5,#6)
16.4.7. Evaluation order.
DMS.RAPGEN will execute lines with multiple
subfunction calls from right to left, it is:
#47 = LAST(SECOND(FIRST(1)))
will evaluate correctly.
However you should take care if you write
subfunctions which are dependent of each others execution, as the statement
#47 = LAST(1)+FIRST(1)
will NOT execute correctly if FIRST is
dependent of the result from LAST.
Also the subfunction call
IF LAST(1)>100 LET #47 =
FIRST(2)
should be noted as FIRST, and is always
executed, the IF is used only for the LET statement. In case of a GOSUB call
the priority will be as expected:
IF FIRST(1)>100 GOSUB LAST(2)
and the routine executed only if the condition
is true.
16.4.9. Restrictions.
Subfunctions can not be called after one of
the report generator commands are reorganized in a statement, it is
IF FUNC(1) READ(KU) is valid, but
READ(KU), FUNC(2) is NOT allowed
NOTE: Multiple calls of the subfunctions on
the same calculation line not give the correct result if the return variables
for these subfunctions are not
separated.
16.5. Subfunctions and the HLP command
The user can get a list of all avaiable
subfunction by the normal HLP function in DMS.RAPGEN and even a detailed
description of each of these.
When you install DMS.RAPGEN or if you amend
in the subfunctions you should run the program DMS.RAPX.HLP to activate this
help function. This program may be placed in the selector by 00/DMS.R,85ss00.
A dummy file defilnition 00 will be created
by this program, all subfunctions present on the disc will be scanned and the
documentation textes from these in REMarks statement 1‑199 will be placed
as extended field documentation for the fields.
The subfunctions are sorted and numbered
from 1.. as fields in this dummy file.By
asking for HLP on file 00 a complete list of the subfunctions will be given, by
HLP on a specific field in this file, eg. 0005, a detailed explanation of this subfunction will be
shown.
Figur
15
HLP on file 00 shows list of subfunctions
DMS.RAPGEN 23 CURRENCY 4.....DEFINE
CALCULATIONS
1 CHECK ("12345") 19 STARN ()
2 CHEX ("1234","070201 20 STARP
(FROM,TO)
3 DATED (FROM,TO,360) 21 STARS (A,B,C,D,E,F)
4 DAYADD(DATE,DAYS,0) 22 UNPACK(#15)
5 EDIT (1234,"&&‑&&") 23 VALCH (#7,"AA,BB..")
6 FIND ("XX",#1,#2,#3) 24 VALID
(#7,#DA1)
7 FN 25 VALIX (#7,#DA1)
8 INDEX
(1,"1234","5678 26 WEEK
(DATE OR WEEK)
9 LTOT (1)
27 WORKD (#DD,#PD)
10 MESS ("TEXT",0) 28 ZERO
(FROM,TO)
11 NAME (#2,#47,#48,#49
12
NUMBER("01)248340")
13 NUMS ("1234")
14 PACK ("&&&&",1234)
15 PRIO (1)
16 SPOFF (" 12 ")
17 STARD (FROM,TO)
18 STARF (A,B,C,D,E,F)
CALCULATIONS ARE TYPED AS eg:
#60=#21+#22 , PERCENT AS eg.
#61=#62%#63
#DD=DATE, #PD=AS OF DATE, #D1=DATA,
#DA1=ALPHA.DATA , WHEN=WHEN TO CALCULATE
CALCULATION:HLP
MESSAGE :
00 SUBFUNCTIONS ENTER FILESHORTNAME OR CR:
Figur
16
HLP on 0005 gives details.
DMS.RAPGEN 23 CURRENCY 4.....DEFINE
CALCULATIONS
5 EDIT (1234,"&&‑&&")
THE EDIT FUNCTION CAN BE USED FOR
EDITING CUSTOMER NUMBERS,
INVOICE NUMBERS ETC.
EXAMPLE:
EDIT(12345,"&##&&&‑AX##/&") RETURNS
"0 012‑AX34/5"
EDIT(15) RETURNS "15"
EDIT("123","&&&‑&&&") RETURNS "000‑123"
RETURNS EDITED STRING
1:PARAMETER 1, NUMERIC
VALUE
2:OPTIONAL PARAMETER 2, EDIT
FORMAT
6 FIND ("XX",#1,#2,#3)
THIS ROUTINE SEARCHES FOR A ALPHA
STRING IN A NUMBER OF FIELDS
EXAMPLE:FIND("BATMAN",#2,#3,#4) WILL SEARCH THE ALPHANUMERIC
FIELDS
2,3,4 FOR THE OCCURENCE OF BATMAN
RETURNS 0:NOT FOUND, x:FOUND POSITION
SELECTION ON
FIND(#DA1,#2,#3,#4) MAY BE DONE,
BUT REMEMBER THE LIMITED
SELECTION LINE LENGTH.
A CALCULATION LIKE FREE
FIELD #47=FIND(#DA1,#2,#3,#4)
AND THEN A SELECTION
ON #47 MINIMUM:1
CALCULATIONS ARE TYPED AS eg:
#60=#21+#22 , PERCENT AS eg.
#61=#62%#63
#DD=DATE, #PD=AS OF DATE, #D1=DATA,
#DA1=ALPHA.DATA , WHEN=WHEN TO CALCULATE
CALCULATION:HLP
MESSAGE :
00 SUBFUNCTIONS ENTER FILESHORTNAME OR CR:
16.6.1. Printing the subfunction help.
By the file definition module for DMS.RAPGEN
(DMS.RAP.DRN) you can obtain a printout of all subfuctions whith the PRT
command on this dummyfile 00, as this works just like any normal file with
extended descriptions.
16.6.3. List of implemented subfunctions.
The current list of subfunctions printed as
descriped above looks like:
Figur
17
Print of the fields in file 00
NO.NAME FORMAT BYTE;VARIABLE T
1 CHECK ("12345") 1
0;S$(1,1) $
2 CHEX ("1234","07020105") 1 1;S$(2,2) $
3 DATED (FROM,TO,360) 1 2;S$(3,3) $
4 DAYADD(DATE,DAYS,0) 1 3;S$(4,4) $
5 EDIT (1234,"&&‑&&") 1 4;S$(5,5) $
6 FIND ("XX",#1,#2,#3) 1 5;S$(6,6) $
7 FN 1 6;S$(7,7) $
8 INDEX
(1,"1234","5678")
1
7;S$(8,8) $
9 LTOT (1) 1 8;S$(9,9) $
10 MESS ("TEXT",0) 1 9;S$(10,10) $
11 NAME (#2,#47,#48,#49) 1 10;S$(11,11) $
12
NUMBER("01)248340")
1
11;S$(12,12) $
13 NUMS ("1234") 1 12;S$(13,13) $
14 PACK ("&&&&",1234) 1 13;S$(14,14) $
15 PRIO (1) 1 14;S$(15,15) $
16 SPOFF (" 12 ") 1 15;S$(16,16) $
17 STARD (FROM,TO) 1 16;S$(17,17) $
18 STARF (A,B,C,D,E,F) 1 17;S$(18,18) $
19 STARN () 1 18;S$(19,19) $
20 STARP (FROM,TO) 1 19;S$(20,20) $
21 STARS (A,B,C,D,E,F) 1 20;S$(21,21) $
22 UNPACK(#15) 1 21;S$(22,22) $
23 VALCH
(#7,"AA,BB..") 1 22;S$(23,23) $
24 VALID (#7,#DA1) 1 23;S$(24,24) $
25 VALIX (#7,#DA1) 1 24;S$(25,25) $
26 WEEK (DATE OR WEEK) 1 25;S$(26,26) $
27 WORKD (#DD,#PD) 1 26;S$(27,27) $
28 ZERO (FROM,TO) 1 27;S$(28,28) $
16.6.5. Detailed description of the subfunctions
Following this print comes the detailed
description of all functions.
1 CHECK ("12345")
CALCULATION OF OCR‑CHECKDIGIT
MODULUS 10
THIS ROUTINE CALCULATES THE
NORMAL (DANISH) POSTGIRO CHECKDIGIT
MODULUS 10 WITH THE WEIGTHES
212121...
EXAMPLE: #47=CHECK(#1)
RETURNS FIELD WITH
CHECKDIGIT
1:PARAMETER ALFHA FIELD
2 CHEX ("1234","07020105")
CALCULATION OF OCR‑CHECKDIGIT
MODULUS 11
THIS ROUTINE MAY BE USED FOR
BANKS OR PERSON NUMBER CHECK DIGITS
EXAMPLE:#17=CHEX("123456","01020304")
RETURNS FIELD WITH CHECK
DIGIT
1:PARAMETER ALPHA FIELD TO
CALCULATE ON
2:WEIGHTES "xxyy.."
2 CHARS.PR DIGIT
3 DATED (FROM,TO,360)
CALCULATION OF DAYS BETWEEN TWO
DATES
EXAMPLE: #47=DATED(#15,#PD)
GIVES DAYS IN 365/366 MODE
#47=DATED(#15,#PD,360)
GIVES DAYS IN 360 MODE
RETURNS NUMBER OF DAYS
1:PARAMETERS, FROM DATE (DDMMYY OR YYMMDD)
2: TO DATE (DDMMYY OR YYMMDD)
3:OPTIONAL MODE 365 OR 360
4 DAYADD(DATE,DAYS,0)
ADD NUMBER OF DAYS TO A DATE
EXAMPLE: #47=DAYADD(#15,10) ADDS
10 DAYS TO FIELD 15 (365/366 MODE)
#47=DAYADD(#15,10,1)
ADDS 10 DAYS TO FIELD 15 (360 MODE)
#47=DAYADD(#15,10,2) ADDS 10 DAYS FROM
CURRENT MONTH
RETURNS CALCULATED DATE
DDMMYY
1:PARAMETER 1, DATE (DDMMYY
OR YYMMDD)
2:PARAMETER 2, NO OF DAYS TO
BE ADDED
3:OPTIONAL MODE 0=365, 1=360,
2=FROM CURRENT MONTH
5 EDIT (1234,"&&‑&&")
THE EDIT FUNCTION CAN BE USED
FOR EDITING CUSTOMER NUMBERS,
INVOICE NUMBERS ETC.
EXAMPLE:
EDIT(12345,"&##&&&‑AX##/&") RETURNS
"0 012‑AX34/5"
EDIT(15) RETURNS "15"
EDIT("123","&&&‑&&&") RETURNS "000‑123"
RETURNS EDITED STRING
1:PARAMETER 1, NUMERIC VALUE
2:OPTIONAL PARAMETER 2, EDIT
FORMAT
6 FIND ("XX",#1,#2,#3)
THIS ROUTINE SEARCHES FOR A
ALPHA STRING IN A NUMBER OF FIELDS
EXAMPLE:FIND("BATMAN",#2,#3,#4) WILL SEARCH THE ALPHANUMERIC
FIELDS
2,3,4 FOR THE OCCURENCE OF BATMAN
RETURNS 0:NOT FOUND, x:FOUND POSITION
SELECTION ON
FIND(#DA1,#2,#3,#4) MAY BE DONE,
BUT REMEMBER THE LIMITED
SELECTION LINE LENGTH.
A CALCULATION LIKE FREE
FIELD #47=FIND(#DA1,#2,#3,#4)
AND THEN A SELECTION
ON #47 MINIMUM:1
WILL BE ABLE TO HANDLE
MORE FIELDS
RETURNS POSITION IN STRING
1:PARAMETER 1, SEARCH FOR
STRING
2:PARAMETER 2, SEARCH IN
STRING
7 FN
THIS SUBFUNCTION IS INCLUDED
ONLY FOR DOCUMENTATION OF THE
FN‑FUNCTIONS WHICH CAN BE
USED IN THE REPORTS.
DATE FUNCTIONS
FNA (DDMMYY) = DAY NUMBER FROM YEAR 1900 (DATE
DIFFERENCES)
FNB (DAYS) = DATE FROM A FNA DAY NUMBER (ADD DAYS TO
DATE)
FND (DDMMYY) = YYMMDD,
FND(YYMMDD)=DDMMYY
FNE (DDMMYY) = 12*YY + MM , MAY BE USED FOR MONTH
CALCULATIONS
FNF (DDMMYY) = DAY NUMBER FROM YEAR 1900 AS FNA, 360
DAYS/MONTH
FNO (DDMMYY) = YYMMDD,
FNO(YYMMDD) = YYMMDD, FIX
UNKNOWN DATE
FNP (DDMMYY) = DDMMYY,
FNP(YYMMDD) = DDMMYY, FIX
UNKNOWN DATE
FNU (DDMMYY) = WEEKDAY, 0=SATURDAY, 6=FRIDAY
FNV (DDMMYY) = YYWW, WEEKNUMBER (NOTE:YEAR START = WEEK
NO.01)
ROUNDING FUNCTIONS
FNR (12.567) = 12.57 ROUNDING FUNCTION
FNH (12,567) = 13
ROUNDING FUNCTION
8 INDEX
(1,"1234","5678")
FIX INDEXNUMBER (AND START/STOP) OF MAIN FILE
EXAMPLE: INDEX(3) ==> MAIN
FILE INDEX 3 IS USED
EXAMPLE:
INDEX(3,"1234","5678") ==> INDEX 1, START/STOP FIXED
1:INDEXNUMMER
2:START KEY (OPTIONAL)
3:END KEY
(OPTIONAL)
9 LTOT (1)
THIS ROUTINE MAY BE USED TO FIX
LOWEST TOTAL LEVEL ON A REPORT
THE LTOT SUBFUNCTION OVERWRITES
THE USER INPUT BY START
EXAMPLE:LTOT(1) DO NOT PRINT ALL
SPECIFICATION LINES
LTOT(‑1) WILL
RETURN THE CURRENT LOWEST TOTAL LEVEL NO.
LTOT(9) WILL SUPRESS ALL
PRINTING
RETURNS LOWEST TOTAL LEVEL
NUMBER
1:PARAMETER 1, NEW LOWEST
TOTAL LEVEL NO.
10 MESS ("TEXT",0)
WITH THIS ROUTINE YOU CAN GIVE A
MESSAGE TO THE USER, WHO HAS STARTED
THE REPORT
EXAMPLE:MESS("SORTING
FINISHED ‑ PRINT STARTED.")
MESS("INVALID START‑DATE,
PROGRAM STOPPED.",1)
THE MESSAGE WILL BE RECORDED IN
THE SYSTEM LOGBOOK
1:PARAMETER 1, MESSAGE TEXT
2:PARAMETER 2, 1==>ABORT
PROGRAM
11 NAME (#2,#47,#48,#49)
ISOLATE CHRISTIAN AND LAST NAME
FROM A NAME FIELD
NOTE:THIS ROUTINE SHOULD BE
MODIFYED FOR THE SPECIFIC LANGUAGE
RETURNS LAST NAME,CHRISTIAN NAME
1:PARAMETERS NAME
2:MAY ALSO RETURN
CHRISTIAN,LASTNAME
3: CHRISTIAN NAME
4: LAST NAME
12 NUMBER("01)248340")
THE NUMBER ROUTINE MAY BE USED
TO CONVERT PHONENUMBERS OR
OTHER DIRTY ALPHABETIC NUMBERS
TO NUMERIC
EXAMPLE:NUMBER("01)248340") RETURNS 01248340
#25=EDIT(NUMBER(#8),"&&)&&&&&&")
COULD BE USED FOR CREATING
A
NEW PHONENUMBER STANDARD
NUMBER("31/03‑89")
RETURNS 310389
RETURNS NUMERIC NUMBER
1:PARAMETER 1, ALPHANUMERIC
VALUE
13 NUMS ("1234")
THIS ROUTINE MAY BE USED FOR
EASY CALCULATIONS ON ALPHA FIELDS
WHICH UNTIL NOW SHOULD BE
SPLITTED INTO SEVERAL STATEMENTS.
EXAMPLE:NUMS("1234")
RETURNS 1234
#47=#15+NUMS(#16)*10 FOR
USE OF ALPHA FIELDS IN CALCULATIONS
THE NUMS(X) ROUTINE MAY BE USED
SEVERAL TIMES IN ONE STATEMENT.
RETURNS NUMERIC NUMBER
1:PARAMETER 1, ALPHANUMERIC
VALUE
14 PACK ("&&&&",1234)
THIS ROUTINE MAY BE USED BY
COMPLEX KEY CONSTRUCTIONS
THE STATUS CODE #OK (R4) MAY BE
REQUESTED FOR OPERATION OK.
EXAMPLE:PACK("&&&&&&",1234) RETURNS
THE PACKED STRING OF THIS VALUE
R$=PACK(R$) ALPHANUMERIC PACKING IF ONE PARAMETER ONLY
THE PACK SUBFUNCTION MAY BE USED
MULTIPLE TIMES IN A STATEMENT
RETURNS PACKED VALUE
1:PARAMETER 2, USING
FORMAT/STRING TO PACK
2:OPTIONAL PARAMETER 2, NUMERIC
VALUE
15 PRIO (1)
FOR HEAVY REPORTS YOU MAY SET
THE PRIORITY OF THE PORT LOW, SO
THE PRINTING WILL NOT SLOW DOWN
OTHER USERS.
EXAMPLE:PRIO(1) SETS LOWEST
PRIORITY
PRIO(8) SETS HIGHEST
PRIORITY
1:PARAMETER 1, PRIORITY (1‑8)
16 SPOFF (" 12 ")
SPOFF REMOVES ALL LEADING AND
TRAILING SPACES FROM A FIELD
EXAMPLE:SELECTION ON
SPOFF(#8)="A" WORKS EVEN IF #8 CONTAINS SPACES
RETURNS FIELD WITHOUT
SPACES
1:PARAMETER FIELD WITH
LEADING/TRAILING SPACES
17 STARD (FROM,TO)
DANISH STAR SYSTEM ACCOUNTING
REPORTS
THIS SUBFUNCTION MAY BE USED IN
CONNECTION WITH THE STARF
SUBFUNCTION TO GET THE CURRENT
PERIOD
RETURNS START DATE OF THE
YEAR (YYMMDD)
1.PARAMETER RETURNS START
MONTH OF THE PERIOD
2.PARAMETER RETURNS END MONTH OF THE PERIOD
ROUTINE IS LOCATED
IN:DMS.RAPX.STARF
18 STARF (A,B,C,D,E,F)
DANISH STAR SYSTEM ACCOUNTING
REPORTS
THIS SUBFUNCTION MAKES IT EASYER
TO MAKE ACCOUNTING REPORTS
ON STAR SYSTEMS BY COLLECTING
FIGURES BASED ON THE YEAR START DATE
FROM THE GENERAL LEDGER AND THE
BUDGET FILES
STARF(PER.BAL, YTD.BAL,
PER.LASTYEAR, YTD LY, PER.BUDGET, YTD.BUDGET)
WILL DEFINE A FREE INPUT DATE
FIELD (#Dx) AS PERIOD START
READ THE ACCOUNTING START OF
YEAR FROM THE COMPANY FILE
AND CALCULATE THE FIGURES FOR
THE GIVEN ACCOUNT IN THE PERIOD/YEAR
IF THE BUDGET PARAMETERS ARE
OMITTED, THE BUDGET FILE WILL NOT
BE READ.
RETURNS NOTHING
1:RETURNS BALANCE PERIOD
2:RETURNS BALANCE YEAR TO
DATE
3:RETURNS LAST YEAR PERIOD
4:RETURNS LAST YEAR YEAR TO
DATE
5:RETURNS BUDGET PERIOD (IF
REQUIRED)
6:RETURNS BUDGET YTD (IF REQUIRED)
7:#D PERIODENS START ,6,
19 STARN ()
DANISH STAR SYSTEM ACCOUNTING
REPORTS
THIS SUBFUNCTION IS FOR USE IN
ACCOUNTING REPORTS ONLY
AND CAN BE USED TO CALCULATE
INDEX FIGURES IN A BALANCE SHEET
THE ROUTINE MAY BE EXTENDED FOR
SPECIAL PURPOSES.
WHEN AN ACCOUNT LINE IS DEFINED
AS:
5:1234:*1111:111‑222
THE ACCOUNTING SYSTEM WILL
COLLECT THE FIGURES FROM THE ACCOUNT
RANGES GIVEN BETWEEN THE COLON
MARKS.
THIS SUBFUNCTION WILL THE BE
CALLED PASSING THESE VALUES (IN Y8 ARRAY)
AND WITH THE FUNCTION CODE 5
(THE FIRST SPECIFICATION ON THE LINE)
THE ROUTINE MAY NOW DO ANY
CALCULATION ON THESE FIGURES AND
SHOULD RETURN THE RESULT (IN THE
Y4 ARRAY)
THE SUBFUNCTION CALL IS JUST
DUMMY TO LOAD THE FUNCTIONS,
THE ROUTINE HAS NO PARAMETERS
AND NOTHING TO RETURN.
20 STARP (FROM,TO)
DANISH STAR SYSTEM ACCOUNTING
REPORTS
THIS SUBFUNCTION MAY BE USED IN
CONNECTION WITH THE STARF
SUBFUNCTION TO SET THE CURRENT
PERIOD
RETURNS START DATE OF THE
YEAR (YYMMDD)
1.PARAMETER, START DATE,
RETURNS START MONTH OF THE PERIOD
2.PARAMETER, END DATE, RETURNS END MONTH OF THE PERIOD
ROUTINE IS LOCATED
IN:DMS.RAPX.STARF
21 STARS (A,B,C,D,E,F)
DANISH STAR SYSTEM ACCOUNTING
REPORTS
THIS SUBFUNCTION MAY BE USED IN
CONNECTION WITH THE STARF
SUBFUNCTION TO MOVE PERIOD
FIGURES IN THE FIELDS
THE PARAMETERS ARE AS FOR STARF
(A,B,C,D,E,F) AND THE ROUTINE
WILL COLLECT THE TOTALS FOR THE PERIOD/YTD AS
STARF
2.PARAMETER, END DATE, RETURNS END MONTH OF THE PERIOD
PERIOD 1 IN THE GENERAL LEDGER
FILE (FI) AND BUDGET FILE (BU)
WILL BE AJUSTED TO BE MONTH ONE
IN THE GIVEN PERIOD
THE START BALANCE IN FI WILL BE
UPDATED ACCORDING TO THIS
THE REPORT CAN NOW CALCULATED ON
FIXED FIELDS FOR THE PERIOD.
ROUTINE IS LOCATED
IN:DMS.RAPX.STARF
22 UNPACK(#15)
THIS ROUTINE MAY BE USED FOR KEY
UNPACKING AND TO SOLVE OTHER
SPECIAL PROBLEMS.
EXAMPLE:UNPACK(#15) RETURNS THE
UNPACKED VALUE OF THE PACKED FIELD
RETURNS NUMERIC NUMBER
1:PARAMETER 1, PACKED VALUE
23 VALCH (#7,"AA,BB..")
THIS ROUTINE SEARCHES THE
1.STRING FOR OCCURENCE IN THE 2.STRING
THE VALUES IN THE SECOND STRING
MUST BE SEPERATED BY COMMA
LEADING AND TRAILING SPACES IN
THE FIRST STRING ARE IGNORED.
EXAMPLE:
VALCH(#7,"AA,BB,CC")
RETURNS 0 IF #7 IS ONE
OF THE GIVEN VALUES, 1 ELSE.
VALCH(#7,"‑AA,BB,CC")
RETURNS 0 IF #7 IS NOT VALID
VALCH(#7,#DA1) MAY BE
USED IN SELECTIONS (OR SELECTION ON INP
RETURNS (0=OK, 1=NOTOK)
1:VALUE TO BE CHECKED
2:ALLOWED VALUES
24 VALID (#7,#DA1)
THIS ROUTINE SEARCHES THE VALUES
OR RANGES OF VALUES GIVED AS
THE 2.PARAMETER FOR THE
OCCURENCE OF THE 1.PARAMETER
EXAMPLE: VALID(#7,"1,3,5,10‑15")
RETURNS 0 IF #7 IS ONE
OF THE GIVEN VALUES, 1 ELSE.
VALID(#7,"‑1,3,5,10‑15")
RETURNS 0 IF #7 IS NOT VALID
VALID(#7,#DA1) MAY BE
USED IN SELECTIONS (OR SELECTION ON INP
RETURNS (0=OK, 1=NOTOK)
1:VALUE TO BE CHECKED
2:ALLOWED VALUES
25 VALIX (#7,#DA1)
THIS ROUTINE SEARCHES THE VALUES
OR RANGES OF VALUES GIVED AS
THE 2.PARAMETER FOR THE
OCCURENCE OF THE 1.PARAMETER
EXAMPLE: VALIX(#7,"1,3,5,10‑15")
RETURNS 0 IF #7 IS ONE
OF THE GIVEN VALUES, 1 ELSE.
VALIX(#7,"‑1,3,5,10‑15")
RETURNS 0 IF #7 IS NOT VALID
VALIX(#7,#DA1) MAY BE
USED IN SELECTIONS (OR SELECTION ON INP
THE ROUTINE WORKS JUST LIKE THE
VALID ROUTINE, BUT THE SCAN OF
THE ALLOWED VALUES IS DONE ONLY
BY THE START OF THE REPORT.
THIS MAKES THE ROUTINE MUCH
FASTER THAN THE VALID ROUTINE, BUT:
1.A MAXIMUM VALUE (DEFAULT 99)
MUST BE GIVEN.
2. ONE BYTE FOR EACH VALUE IS USED IN CORE FOR
THIS.
3.THE RANGE CAN NOT BE CHANGED
DURING THE RUN AS IT IS SET BY START.
THE ROUTINE IS QUICKER BUT MORE RESTRICTED
THAN THE VALID ROUTINE.
RETURNS (0=OK, 1=NOTOK)
1:VALUE TO BE CHECKED
2:ALLOWED VALUES
3:OPTIONAL MAX VALUE (DEFAULT
IS 99)
26 WEEK (DATE OR WEEK)
THE ROUTINE CONVERTS A DATE
DDMMYY OR YYMMDD TO YYWW WEEKNUMBER
OR A WEEK YYWW TO A DATE YYMMDD
EXAMPLE:WEEK(010189) RETURNS
8853
WEEK(890101) WILL ALSO
RETURN 8853
WEEK(8853) WILL RETURN THE START DATE OF THE WEEK
890101
THE STATUS (#OK) MAY BE
REQUESTED AFTER THIS CALL, 0=OK, >0==> ERROR
NOTE: THE CONVERSION FROM WEEK
TO DATE REQUIRES NIROS 7.0.2 !!
RETURNS WEEK NUMBER OR DATE
1:PARAMETER 1, DATE DDMMYY OR
YYMMDD OR WEEKNO YYWW
27 WORKD (#DD,#PD)
CALCULATION OF WORK‑DAYS
BETWEEN TWO DATES
EXAMPLE: #47=WORKD(#15,#PD)
NOTE:THE BUILD IN CALENDAR FOR
THIS FUNCTION MAY BE COUNTRY AND/OR
COMPANY DEPENDENT.
RETURNS NUMBER OF DAYS
1:PARAMETERS, FROM DATE (DDMMYY)
2: TO DATE (DDMMYY)
28 ZERO (FROM,TO)
THIS ROUTINE MAY BE USED AS A
SHORT‑FORM OF ZEROING NUMERIC WORKFIELDS
INSTEAD OF WRITING MULTIPLE
LINES WITH #xx=0
EXAMPLE:ZERO() ZEROES ALL NUMERIC WORKFIELDS
ZERO(24,40) ZEROES ALL WORKFIELDS
WITH FIELDNOS. 24‑40
1:OPTIONAL PARAMETER, FROM
WORKFIELD NO.
2:OPTIONAL PARAMETER, TO WORKFIELD NO.
16.7. Writing a subfunction.
A subfunction is a quite normal basic
subroutine located in lineno. 1000-9999.
When the user calls the subfunction first
time this is loaded from the textfile RAPX.xxxxxxxxx or DMS.RAPX.xxxxx and
renumbered to new linenumbers 10000‑19999 which area now has been
reserved for this purpose in the generated report.
The return value of the subfunction is
inserted in the calculation line as replacement for the subfunction call, and
just before the calculation is done statements to set parameters for the
subfunction are generated together with the GOSUB to the renumbered function
and eventually statements to return any number of variables from this.
The subfunction may be written using the
standard report generator variables (listed in the last chapter of the
installation manual). Most commenly used will be T1,T3,T2$ and T9$ which are
all free for use as work‑variables.
The subfunction can also use its own
variables in which case it must contain its own DIMensioning of these. In the
subfunction control REMarks you should then specify which variables are used by
the routine.
By loading the subfunction DMS.RAPGEN will
during the renumber loop also replace all these variables with free variables
(A5,A6,A7,A8,A9,B5,B6,...,08,09) to avoid conflict with the standard variables
and variables from other subfunctions.
16.8.1. The master textfile DMS.RAPX
When you should write a new subfunction you
may load the textfile DMS.RAPX and modify the control REMarks in here. In this
way you get an overview of the avaible parameters.
Figur
18
The DMS.RAPX control REMark master textfile
1 REM DMS.RAPX.xxxxx (.................) 28/02‑1989 /CH
10 REM DOCUMENTATION .....
98 REM FUNCTION TEXT EXAMPLE :PARAMETER
99 REM TAKE THIS FUNCTION FROM :
100 REM RETURNS (T3) :
101 REM NORMAL PARAMETER (T2$) :
102 REM RETURN PARAMETER (=T2$) :
103 REM FILE CHANNEL PARAMETER (XX.K1) :
150 REM FREE FIELD DEF ,6, (T3) :
151 REM #D START DATA DEF. ,6, (T3) :
200 REM INITIALIZE ENTRY (4300) :
201 REM NORMAL ENTRY (4400) :
202 REM SPECIAL ENTRY (4500,FUNCA) :
300 REM VARIABLE REPLACEMENT (T3) :
301 REM FILE VARIABLES (KU.K4,A$,1%,A1):
400 REM REENTRANT (Y/N) :
401 REM RENUMBER FROM,TO,STEP (4300,4999,10) :
402 REM WRITE ACCESS (Y/N) :
403 REM PASSWORD (Y/N) :
404 REM NUMBER OF #Dx FIELDS (0‑7) :
416 REM LOADING FN‑FUNCTIONS (Y/N)
:
419 REM ACCOUNTING ACTIVE (Y/N) :
The first line with 1 REM you should fill out
with the subfunction name and a brief‑list of parameters.This text will
becom the subfunction help name, it is the field name in the dummy HLP file 00.
In the following lines you may enter any
description remarks for your subfunctions, these will together with the return
value and parameter specifications
become the HLP detailed explanation of this subfunction.
16.8.3. 100 Return variable.
100 RETURNS:T3
causes this variable to be inserted in the
calculation line instead of the subfunction call. The statement:
#47=WORKD(#3,#4) will be translated to
S3(1)=T3
If the subfunction is called with GOSUB the return
variable will be ignored. If no RETURN is specifyed the subfunction will return
R4 (error code #OK) as default.
16.8.5. 101‑149 Parameter variables.
101 FROM DATE:D1
causes a statement like D1=#3 to be generated before the subfunction
is called.
A subfunction may contain up to 49
parameters but the restriction of a calculation line length will in praxis
limit this number.
If a parameter is not given in the
subfunction call this is set to zero or delimiter.
16.8.6.1. Return values in parameter values.
105 NAME:=T2$(101)
will cause statements like
T2$(101)=#50
GOSUB subfunction
#50=T2$(101)
to be generated. In this way you may return
any number of values from the subfunction.
16.8.7. 150‑199 Free field definitions.
It is possible in a subfunction to define a
free field with a control REMark like:
150 TOTAL BALANCE 9,2 :B7
DMS.RAPGEN will search all free fields for a
field with the name TOTAL BALANCE. If such a field is found this will be used,
if the field is not present a new field with this name and the given format
will be created.
Note that due to a very old bug the name of
the last free field is 4 characters only so 19 free fields only can be used by
this function.
If the free field is found to be eg. S4(8)
a statement
S4(8)=B7
will be generated after the subfunction call,
it is the subfunction may return a value in this free field by setting B7.
16.8.8.1. #Dx Start‑data definitions.
151 REM #D STARTDATE ,6,:T3
will define a free field as above AND
reserve one of the 7 start data input fields for the use for this.
Note:The value of this free field will be
set automatically when starting the report, you do not have to give a statement
like #47=#D1 which is nessesary by the normal use.
16.8.9. 200 Initialize entry.
200 INIT:4300
If you specify an initialize entry for the
sucfunction, this routine will be called when the report is started as a very
first calculation from statement 800 in the report program, before the users
FIRST calculations are done.
This routine is called only once and may
contain DIM and all other statements nessesary to initialize the routine.
Parameters are transferred to the
initialize call as for as possible just like the normal subfunction call and
may be used for the initialization. In a call like:
#47 = WORKD(#D1,#3)
you may use the value of #D1 in the initialize
function, but #3 will always be zero as the initialize is called very first in
the program.
Note that you should take the initialize
parameters from the standard report generator variables as T1,T3,T2$,T9$ as
your local variables are not yet dimensioned and can not be used as parameters
for the initialize call.
If the specification of a initialize entry
is omitted no initialization call is done.
16.8.11. 201‑299 Entry points.
201 Entry point:4310
may
be used to set a entry point for the subfunction. If the specification of an
entry point is omitted the entry point will default to the first line number of
the routine (1000‑1999).
16.8.12.1. Dummy entry.
201 ENTRY:0
causes
only the initialize entry to be called.
This may be used in subfunctions like
INDEX(3) which sets the main index for the report before the first read is
done. Nothing should be executed during the report run in this routine.
16.8.12.3. Multiple entry points.
201 ENTRY1: 4310,FUNCA
202 ENTRY2: 4320,FUNCB
You can specify up to 32 entry points for a
subfunction, if the user calls FUNCA GOSUB 4310 will be generated, FUNCB will
branch to 4320.
16.8.12.5. Dummy subfunctions.
As the subfunction above is named
RAPX.FUNCA, and the report generator checks this textfile is present when the
subfunction is called, a problem will occur if the user calls FUNCB before a
call to FUNCA has made this routine name known to the generator.
In this case you should place a textfile
RAPX.FUNCB just containing the line
99 REM placed in the file:
RAPX.FUNCA
to make DMS.RAPGEN to load the function from
this file instead.
16.8.13. 300‑399 Variables used.
300 REM my variable:K1$
will cause all occurenses of K1$ to be
replaced by a free report generator variable (A5,A6...09) when the subfunction
is loaded.
You may specify several variables on the
same line as:
300 REM uses: K1$,T2$,T9$,K1,A5,A$
but for documentation purpose we would
recommend to give just one variable and a documentation text on each line.
Note that single character variables as
A,B,C can not be replaced by DMS.RAPGEN as the search operations to do this
would be to time consuming.
16.8.15. 400 Reentrant Y/N.
As default all subfunctions will be
considered reentrant by DMS.RAPGEN, it is multiple calls to the subroutine will
load the routine only once.
If you specify 400 REENTRANT:N
a new copy of the subfunction will be loaded
for each call.
The copies will be renumbered and have
their own variables according to the control REMarks.
This may be used to initialize different
variables due to speed for the same routine.
16.8.17. 401 Renumber from, to, step.
As default DMS.RAPGEN will renumber the
complete routine located in the line numbers 1000‑9999.
For special purposes to modify the
generated codes at fixed linenumbers you may set the control remark:
401 RENUMBER: 4300,4399 or
401 RENUMBER: N
You may even specify a step linenumber for the
renumber routine if you would test/amend your program in live by:
401 RENUMBER: 4300,4399,10
Note that the renumber routine due to speed is
restricted to renumber only lines in the range 1000‑9999.
16.8.19. 402 Write access Y/N.
DMS.RAPGEN will normally open all fields
with Protect, it is no writing to any files can be performed.
Another advantage is that the reading of
locked records during the report print is possible so a report will not have to
wait for other updating or forgotten terminals.
If the user defines the report on the main
file xx comma something, eg. XX,W or just XX, all files will be opened normal
allowing eventually write on his own responsibility (for use for DATAMASTER
files).
You may update files from subfunctions by
including the control remark:
402 Write access: Y
which will place a comma after the main file
name causing normal open to be used.
Setting write access to N causes the
protect mode to be used.
Setting write access to W (or any other
letter or digit) causes the main file to be set to XX,W and the read statements
x/DMREAD.XXW to be loaded. Normal open will be used.
16.8.21.
14.4.11. 403 Password Y/N.
When a report is defined on a file like XX,W
causing write statements to be loaded (DATAMASTER), password must be entered
before the report can be started.
By the control REMark
403 Password:Y or
403 Password:N
you
can switch this password on or off for the report.
16.8.23. 404 Number of #Dx fields
404 Number of start‑data
fields:3
will
set the number of start data to be given to 3.
16.8.25.
14.4.13. 416 FN functions nessesary.
If your subfunction is using any of the
report generator standard functions like FNR,FNA etc. you should place
416 FN‑functions:Y
or
the functions may not be loaded into the program.
The only function which will always be
defined is the FND date turn function. For the use of this you do not have to
load the FN segment.
16.8.27. 419 Acoounting report active
As for the FN‑functions you may
activate the accounting function in
DMS.RAPGEN by use of a subfunction control REMark.
This facility has at the time being been
releasedin danish due to the heavy manual required for this product.
16.9. Using files in a subfunction.
In a subfunction you may of cause open and
handle your own files, you should use channel number 18 and onwards for this
purpose.
You can also request the report generator
to open a file, it is one of the 9 files available for a user in a report
program. DMS.RAPGEN will ensure the file variables is dimensioned and read
statements will be loaded into the program.
If you intend to write to any file (your
own responce) you should remember the control REMark 402 to open the files
without protect mode.
Note that normal read statements is without
record lock.
16.10.1. File channels.
DMS.RAPGEN works with logical channels for
the files. If you get a parameter like above K1=3 you should use #R1(K1,3) as a
physical channel to read the file.
The logical channels are numbered from 1 to
9, the physical channels will normally be one higher to leave TF.LOGFILE and
TF.PARAM free. Do not just use the logical channel +1 as this will not work for
file 9 and the numbering may be changed or extended.
16.10.3. Other file informations.
The normal file channel no. is R1 (eg. 5).
By R1=5, gosub 6700 you will clear all variables. By R1=5, R2=recno., gosub
8395 you can read record number R2. R2(R1,1) contains the first data record of
the file.
16.10.5. File variables.
As the report generator allocates the basic
variables for the used files dynamic naming the main file S1,S2,S3,S4,S$ the
second B etc. you will not know which variables to use when writing your
subfunction.
By the control REMark:
300 REM
FILE:KU:K4,A$,1%,A1,2%,A2,3%,A3,4%,A4
you
can write your subfunction using the variables A1,A2,A3,A4,A$. DMS.RAPGEN will
replace these by the file variables for the file KU in the given report.
The KU: will cause the file KU to be
opened, variables dimensioned and read statements to be loaded. The : as 3
character tells this control REMark should handle a file and will be followed
by file variables.
The following file variables must be given
with type, it is 1%,A1 or A$ as above.
If you omit the type as for K4 above, this
variable will be substituted with the file logical channel. It is a statement
in the subfunction as
R1=K4
will
be generated to be eg. R1=5
16.10.7. File channels as parameters.
In the parameter specification you can have
one or more definition of file parameters by:
101 FILE PARAM: XX: K1
The XX: defines to the subfunction loader that
the user will give a file shortname as parameter for the subfunction, eg:
FUNC (VA)
This
parameter will be given to the subfunction by a statement like:
K1 = 3
before
the GOSUB. You can now use K1 as channel no. in your subfunction (see below).
NOTE: If the parameter is omitted from the
subfunction call you will receive K1 = 0, it is no file given.
16.11. Subfunction examples.
Figur
19
The CHEX subfunction for modulus 11 control.
1 REM DMS.RAPX.CHEX ("1234","07020105") 28/02‑1989 /CH
10 REM CALCULATION OF OCR‑CHECKDIGIT
MODULUS 11
11 REM THIS ROUTINE MAY BE USED FOR
BANKS OR PERSON NUMBER CHECK DIGITS
20 REM
EXAMPLE:#17=CHEX("123456","01020304")
100 REM RETURNS FIELD WITH CHECK
DIGIT :T2$
101 REM PARAMETER ALPHA FIELD TO
CALCULATE ON:T2$
102 REM WEIGHTES "xxyy.."
2 CHARS.PR DIGIT :T9$
4205 LET T4=1
4206 LET T3=0
4207 FOR T1=1 TO LEN T2$
4208 IF T2$(T1,T1)=" " LET
T2$(T1,T1)="0"
4209 LET T=T2$(T1,T1)
4210 LET T4=T9$((T1‑1)*2+1,T1*2)
4211 LET T3=T3+T*T4
4212 LET T4= NOT T4
4213 NEXT T1
4214 LET T3=11‑(T3‑11*
INT (T3/11))
4215 IF T3>9 LET T3=0
4216 LET T2$( LEN T2$+1)=T3 USING
"#"
4217 LET T=T3
4218 LET T3=T2$
4219 RETURN
Figur
20
The INDEX / start key fix routine.
1 REM DMS.RAPX.INDEX
(1,"1234","5678") 28/02‑1989 /CH
10 REM FIX INDEXNUMBER (AND
START/STOP) OF MAIN FILE
20 REM EXAMPLE: INDEX(3) ==> MAIN
FILE INDEX 3 IS USED
30 REM EXAMPLE:
INDEX(3,"1234","5678") ==> INDEX 1, START/STOP
FIXED
99 REM
101 REM INDEXNUMMER :R5
102 REM START KEY (OPTIONAL) :T2$
103 REM END KEY
(OPTIONAL)
:T2$(100)
200 REM ENTRY AS FIRST CALCULATION
ALWAYS :1000
201 REM ENTRY IN NORMAL
CALCCULATIONS IS SET TO DUMMY:0
999 REM
1000 LET R1(0,2)=R5 /*INDEXNO.
1010 IF T<2 RETURN /*START/STOP GIVEN ?
1020 LET R1$=T2$
1030 LET R3$=R1$
1040 LET R2$=T2$(100)
1050 IF X0(14)=2 IF R2$=""
LET R2$="
1060 IF R2$="" LET
R2$="å" /*NORMAL HIGH KEY
1099 RETURN
Figur
21
The VALID subfunction
1 REM DMS.RAPX.VALIX (#7,#DA1) 28/02‑1989 /CH
5 REM THIS ROUTINE SEARCHES THE
VALUES OR RANGES OF VALUES GIVED AS
6 REM THE 2.PARAMETER FOR THE
OCCURENCE OF THE 1.PARAMETER
10 REM EXAMPLE: VALIX(#7,"1,3,5,10‑15")
11 REM RETURNS 0 IF #7 IS ONE OF THE GIVEN
VALUES, 1 ELSE.
12 REM VALIX(#7,"‑1,3,5,10‑15")
RETURNS 0 IF #7 IS NOT VALID
13 REM VALIX(#7,#DA1) MAY BE USED IN SELECTIONS
(OR SELECTION ON INPUT)
100 REM RETURNS (0=OK, 1=NOTOK) :R4
101 REM VALUE TO BE CHECKED :T3
102 REM ALLOWED VALUES :T2$
103 REM OPTIONAL MAX VALUE (DEFAULT
IS 99) :T4
200 REM INITIALIZE ENTRY :1030
201 REM NORMAL ENTRY :1000
300 REM WORK VARIABLE :T9$
400 REM REENTRANT :N
1000 LET R4=0
1010 IF T9$(T3+1)<"X"
LET R4=1
1020 RETURN
1030 IF T<3 LET T1=99
1035 DEALLO T9$
1040 DIM T9$(T4+1)
1050 LET T=1
1060 IF T2$(1,1)>="0"
IF T2$(1,1)<="9" LET T=0
1070 LET T9$=" ",T9$
1080 IF T LET
T9$="X",T9$
1090 LET T2$(250)="X"
1100 IF T LET T2$(250)="
"
1110 LET T=T+1
1120 IF T> LEN T2$ GOTO 1000
1130 LET T1=T2$(T)
1140 LET T=T+ CHR T1+ NOT T1
1150 LET P5=T1
1160 IF T2$(T,T)<>"‑"
GOTO 1190
1170 LET P5=T2$(T+1)
1180 LET T=T+ CHR P5+1
1190 IF T1>T4 LET T1=T4
1191 IF P5>T4 LET P5=T4
1195 LET
T9$(T1+1,P5+1)=T2$(250),T9$(T1+1)
1200 GOTO 1110
1210 GOTO 1000
Figur
22
The WORKD call of the workday subfunction
5201 GOSUB 14000
5202 LET S4(5)=T3 /* #47=WORKD(#PD,#42)
14000 REM #47=WORKD(#PD,#42)
14001 LET T3=X(8)
14002 LET T3(1)=S2(2)
14003 LET T=2
14004 GOSUB 15001
14005 RETURN
15000 REM #47=WORKD(#PD,#42)
15001 REM CALCULATE WORKDAYS T3 FROM
DATE DDMMYY T3 TO T3(1)
15002 LET T3(2)= FND(T3)
15003 REM ETC..ETC..ETC..
Figur
23
Control REMarks for the complex STARF subfunction.
1 REM DMS.RAPX.STARF ‑ ACCOUNTING REPORT TOTALIZER
100 REM RETURNS :P1
101 REM RETURNS BALANCE PERIOD :=P1(1)
102 REM RETURNS BALANCE YEAR TO
DATE :=P1(2)
103 REM RETURNS LAST YEAR
PERIOD :=P1(3)
104 REM RETURNS LAST YEAR YEAR TO
DATE :=P1(4)
105 REM RETURNS BUDGET PERIOD (IF
REQUIRED) :=P1(5)
106 REM RETURNS BUDGET YTD (IF REQUIRED) :=P1(6)
150 REM #D PERIODENS START ,6, :T3
200 REM INITIALIZE ENTRY, GET YEAR
START/PERIOD :1000
201 REM NORMAL ENTRY, GET
BALANCE/BUDGET :2000,STARF
202 REM GET ACOUNTING YEAR START
DATE/PERIOD :1500,STARD
203 REM SET NEW START/END
PERIOD :1300,STARP
300 REM VARIABLE FOR YEAR START
DATE :D0
301 REM VARIABLE FOR PERIOD START
MONTH :D1
302 REM VARIABLE FOR PERIOD END MONTH
:D2
303 REM VARIABLE FOR
PARAMETERS/RETURN VALUES :P1
304 REM COMPANY FILE VIKA CHANNEL
NO :VI:V1
305 REM GENERAL LEDGER FILE FIKA
VARIABLES :FI:F$,3%,F3
306 REM BUDGET FILE VARIABLES :BU:B0,1%,B1,3%,B3
307 REM WORK‑VARIABLE :A1
419 REM ACCOUNTING ACTIVE :Y
Figur
24
The STARF subfunction as source
1000 REM INITIALIZE
1010 DIM
4%,P1(6),2%,D0,D1,D2,A1
1015 DEF FNE(X)= DFV (X*1E‑02),1200* FRA X+100*
FRA ( INT X*1E‑02) /*DDMMYY
==
1020 READ #R1(V1,3),280,44;P1; /*YEAR START
1030 LET D0= FND(P1*100+1) /*START OF YEAR DDMMYY
1070 LET P1(1)=T3 /*SET DEFAULT PERIOD FROM #D1 TO #PD
1080 LET P1(2)=X(8)
1300 REM STARP(DDMMYY,DDMMYY) SET
PERIOD FROM‑TO
1305 LET D1= FNE(P1(1))‑
FNE(D0)+1 /* START MONTH
1310 LET D2= FNE(P1(2))‑
FNE(D0)+1 /* END MONTH
1400 IF D1<1 LET D1=1
1410 IF D1>16 LET D1=16
1420 IF D2<D1 LET D2=D1
1430 IF D2>16 LET D2=16
1500 REM STARD(FROM,TO) GET YEAR
START DATE AND PERIOD FROM,TO
1505 LET P1=D0 /*RETURN YEAR START DATE
1510 LET P1(1)=D1 /*AND FROM‑TO MONTH
1520 LET P1(2)=D2
1599 RETURN
2000 REM STARF(PER‑BAL, YTD‑BAL,
LYP‑BAL, LYR‑BAL, PER‑BUD, YTD‑BUD)
2010 IF P8 RETURN /* SKIP THIS ROUTINE FOR TOTALS
2020 CLEAR P1 /*ZERO ALL RETURN VALUES
2100 FOR A=1 TO D2 /* LOOP OVER PERIOD
2105 IF A>=D1 LET P1(1)=P1(1)+F3(16+A) /*PERIOD
2110 LET P1(2)=P1(2)+F3(16+A) /*YTD
2115 IF A>=D1 LET P1(3)=P1(3)+F3(A) /*LAST YEAR
2120 LET P1(4)=P1(4)+F3(A) /*LAST YEAR
2150 NEXT A
2160 IF T<5 RETURN /* BUDGET NOT REQUIRED (NO PARAMETERS
GIVEN)
2200 LET R1=B0 /*BUDGET FILE LOGICAL CHANNEL NO.
2210 LET R$=F$(1,12) /*ACCOUNT NO.
2220 SEARCH
#R1(R1,3),2,1;R$,R2,R4
2230 IF R4 GOTO 6700 /*CLEAR RECORD AND RETURN IF NO BUDGET
2240 GOSUB 8395
/*READ BUDGET FILE #R1, RECORD R2
2300 FOR A=1 TO 16 /* LOOP OVER ALL BUDGETS
2305 LET B3(A)=B3(A)*1
2306 IF A>=D1 IF A<=D2 LET
P1(5)=P1(5)+B3(A) /*BUDGET PERIOD
2310 IF A<=D2 LET P1(6)=P1(6)+B3(A) /*BUDGET YTD
2330 NEXT A
2399 RETURN
Figur
25
The user call of STARF
STARF(#44,#48,#52,#53,#45,#49)
STARF(MD.REAL,ÅTD.REAL.,MD.SIDSTE ÅR,ÅTD
IF #60=0 LET #45=#52 IF #D2BUDGET (Y/N)=0 LET
BUDGET=MD.SIDST
IF #60=0 LET #49=#53 IF #D2BUDGET (Y/N)=0 LET ÅTD
BUDGET=ÅTD
IF Y1(1)=1 LET #48=#48+#40 IF Y1(1)=1 LET
ÅTD.REAL.=ÅTD.REAL.+START
#46=#44‑#45 DIFF.=MD.REAL‑BUDGET
#50=#49‑#48 ÅTD DIFF=ÅTD BUDGET‑ÅTD.REAL.
#47=#46%#45 %=DIFF.%BUDGET
#51=#50%#49 ÅTD %=ÅTD DIFF%ÅTD
BUDGET
FØRST FØRST
IF #DA2="Y" LET
#60=1 IF
#DA2="Y" LET #D2BUDGET (Y/N)=1
#61=" SIDSTE ÅR " TEKST=" SIDSTE ÅR
"
IF #60=1 LET #61=" BUDGET " IF #D2BUDGET (Y/N)=1 LET
TEKST=" BUDGE
STARD(#59,#55) STARD(START
MÅNED,MÅNED)
Figur
26
STARF loaded into the report program.
13001 LET S4(16)=Q(1)
13002 REM
STARF(#44,#48,#52,#53,#45,#49)
13003 LET T3=S4(16)
13004 LET T=6
13005 GOSUB 15001
13006 LET S4(16)=T3
13999 RETURN
14000 REM
STARF(#44,#48,#52,#53,#45,#49)
14001 LET A8(1)=S4(2)
14002 LET A8(2)=S4(6)
14003 LET A8(3)=S4(10)
14004 LET A8(4)=S4(11)
14005 LET A8(5)=S4(3)
14006 LET A8(6)=S4(7)
14007 LET T3=S4(16)
14008 LET T=6
14009 GOSUB 15020
14010 LET S4(2)=A8(1)
14011 LET S4(6)=A8(2)
14012 LET S4(10)=A8(3)
14013 LET S4(11)=A8(4)
14014 LET S4(3)=A8(5)
14015 LET S4(7)=A8(6)
14016 LET S4(16)=T3
14017 RETURN
15000 REM
STARF(#44,#48,#52,#53,#45,#49)
15001 REM INITIALIZE
15002 DIM
4%,A8(6),2%,A5,A6,A7,A9
15003 DEF FNE(X)= DFV (X*1E‑02),1200* FRA X+100*
FRA ( INT X*1E‑02)
15004 READ #R1(2,3),280,44;A8;
15005 LET A5= FND(A8*100+1)
15006 LET A8(1)=T3
15007 LET A8(2)=X(8)
15008 REM STARP(DDMMYY,DDMMYY) SET
PERIOD FROM‑TO
15009 LET A6= FNEA8(1)‑
FNEA5+1
15010 LET A7= FNEA8(2)‑
FNEA5+1
15015 REM STARD(FROM,TO) GET YEAR
START DATE AND PERIOD FROM,TO
15016 LET A8=A5
15017 LET A8(1)=A6
15018 LET A8(2)=A7
15019 RETURN
15020 REM STARF(PER‑BAL, YTD‑BAL,
LYP‑BAL, LYR‑BAL, PER‑BUD, YTD‑BUD)
15021 IF P8 RETURN
15022 CLEAR A8
15023 FOR A=1 TO A7
15024 IF A>=A6 LET A8(1)=A8(1)+S3(16+A)
15025 LET A8(2)=A8(2)+S3(16+A)
15026 IF A>=A6 LET A8(3)=A8(3)+S3(A)
15027 LET A8(4)=A8(4)+S3(A)
15028 NEXT A
15029 IF T<5 RETURN
15030 LET R1=3
15031 LET R$=S$(1,12)
15032 SEARCH
#R1(R1,3),2,1;R$,R2,R4
15033 IF R4 GOTO 6700
15034 GOSUB 8395
15035 FOR A=1 TO 16
15036 LET C3(A)=C3(A)*10^C1(1)
15037 IF A>=A6 IF A<=A7 LET
A8(5)=A8(5)+C3(A)
15038 IF A<=A7 LET A8(6)=A8(6)+C3(A)
15039 NEXT A
15040 RETURN
Figuren
Figur
1 Libr.list............................................................................................................................................................................................. 3
Figur 2
Dateiübersicht, Kommandos bei Dateikurzname....................................................................................................................... 6
Figur 3
Dateiübersicht, Kommandos bei Dateiname.............................................................................................................................. 6
Figur 4
Felddefinitionen, Satzinhalt.......................................................................................................................................................... 9
Figur 5
Felddefinitionen, Feldformate..................................................................................................................................................... 11
Figur 6
Felddefinitionen, Variable........................................................................................................................................................... 12
Figur 7
Erweiterte Feldbeschreibungen.................................................................................................................................................. 12
Figur 8
Zugelassene Werte...................................................................................................................................................................... 12
Figur 9
Index und Dateiverweis Definition............................................................................................................................................ 14
Figur 10 Erweiterte Felddefinitionen........................................................................................................................................................ 16
Figur 11 XFO Nachschlangen in einer
Datei.......................................................................................................................................... 17
Figur 12 XFO Modus 2, Anzeige
ungepackt.......................................................................................................................................... 18
Figur 13 XFO Modus 4, Anzeige aller
möglichen Var. Typen............................................................................................................. 18
Figur 14 Zulässige Feldinhalte.................................................................................................................................................................. 19
Figur 15 HLP on file 00 shows list of
subfunctions............................................................................................................................... 25
Figur 16 HLP on 0005 gives details.......................................................................................................................................................... 26
Figur 17 Print of the fields in file 00.......................................................................................................................................................... 26
Figur 18 The DMS.RAPX control REMark
master textfile.................................................................................................................... 31
Figur 19 The CHEX subfunction for modulus
11 control..................................................................................................................... 36
Figur 20 The INDEX / start key fix
routine.............................................................................................................................................. 36
Figur 21 The VALID subfunction............................................................................................................................................................ 36
Figur 22 The WORKD call of the workday
subfunction...................................................................................................................... 37
Figur 23 Control REMarks for the
complex STARF subfunction........................................................................................................ 37
Figur 24 The STARF subfunction as
source.......................................................................................................................................... 37
Figur 25 The user call of STARF.............................................................................................................................................................. 38
Figur 26 STARF loaded into the report
program................................................................................................................................... 38
Stichwort
#DD.............................................................................. 25,
26, 30
#OK.............................................................................. 28,
30, 31
#PD......................................................................... 25‑27,
30, 37
Account...................................................................... 28,
29, 37
Checks..................................................................................... 33
Core.......................................................................................... 30
DATAMASTER.................................................... 3,
15, 20, 34
DIM........................................................................ 22,
32, 36‑38
Division................................................................................... 10
DMREAD............................................................................ 8,
34
DMS.RAPGEN.SYS............................................................. 8,
9
DMS.RAPS............................................................................. 22
DMSORTWORK................................................................... 15
DRN.................................................................................. 3‑6,
26
FNA................................................................................... 27,
34
FNB.......................................................................................... 27
FND...................................................... 10,
15, 21, 27, 34, 37, 38
FNH.......................................................................................... 27
FNR.................................................................................... 27,
34
FNU.......................................................................................... 27
FNV.......................................................................................... 27
Format............................................................. 5,
9‑12, 26‑28, 32
GOSUB.................................... 21,
23, 24, 30, 31, 33, 35, 37, 38
HBA........................................................................................... 3
INT...................................................................................... 36‑38
LEN.......................................................................................... 36
LOAD........................................................ 21,
22, 29, 31, 33, 34
LPT....................................................................................... 7,
13
LU..................................................................... 3,
8, 9, 17, 18, 21
MODE.................................................... 5,
11, 12, 18, 27, 34, 35
Modulus............................................................................ 27,
36
NIROS.................................................................................. 3,
30
NOT.................................................................................... 21‑37
NYRUP...................................................................................... 9
Ocr...................................................................................... 27,
36
over.................................................................................... 22,
37
Partition..................................................................................... 3
Password..................................................................... 13,
31, 34
POS............................................................................................ 8
REM.................................................................. 22,
31‑33, 35‑38
SCOPE....................................................................................... 3
Search.................................................. 12,
26, 27, 32, 33, 37, 38
STAR............................................................................. 9,
28, 29
Status................................................................................. 28,
30
STOP.................................................................................. 27,
36
Systemnr............................................................................. 8,
13
T2$................................................................................ 30‑33,
36
T3................................................................. 21‑23,
30‑32, 36‑38
T3(1)............................................................................. 21‑23,
37
T9$......................................................................... 30,
32, 33, 36
TAMOS......................................................................... 3,
4, 7‑9