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