RAPGEN

 

Anwenderhandbuch

 

 

Teil 1.


 


                                                                            Inhaltsverzeichnis

 

1.           Einleitung.........................................................................................................................................................................................   7

1.1.         Start des Listgenerators................................................................................................................................................................   7

1.2.         Ziel dieses Handbuches...............................................................................................................................................................   7

1.3.         Dateien, die in den Beispielen benutzt werden.........................................................................................................................   8

1.3.1.       VA Artikeldatei.............................................................................................................................................................................   8

1.3.2.       LE Lieferantdatei...........................................................................................................................................................................   8

1.3.3.       KU Valutadatei..............................................................................................................................................................................   8

1.3.4.       GR Varengruppendatei.................................................................................................................................................................   8

1.3.5.       Dateiinhalte....................................................................................................................................................................................   9

1.4.         Bedienung generell......................................................................................................................................................................   10

1.5.         Betriebssystem.............................................................................................................................................................................   11

1.6.         Plattenkapazität............................................................................................................................................................................   11

1.7.         DATAMASTER..........................................................................................................................................................................   11

1.8.         Systeme.........................................................................................................................................................................................   11

 

2.           Definition einer Liste....................................................................................................................................................................   12

2.1.         Allgemein......................................................................................................................................................................................   12

2.2.         Funktion 1.....................................................................................................................................................................................   12

2.2.1.       Nummer der Liste/Anfrage........................................................................................................................................................   13

2.2.2.       Datei..............................................................................................................................................................................................   13

2.2.3.       Datei Password...........................................................................................................................................................................   13

2.3.         Stammdaten einer Liste/Anfrage...............................................................................................................................................   14

2.3.1.       Name der Liste/Anfrage.............................................................................................................................................................   14

2.3.2.       Anzahl Zeilen per Seite..............................................................................................................................................................   14

2.3.3.       Überschriften...............................................................................................................................................................................   14

2.3.4.       Ausgabe von Nullen bei Leerfeldern (J/N).............................................................................................................................   14

2.3.5.       Drucker.........................................................................................................................................................................................   15

2.3.6.       Anwendername/Password Schutz...........................................................................................................................................   15

2.4.         TAMOS Programmwahl..............................................................................................................................................................   15

2.5.         Felder einer Liste/Anfrage..........................................................................................................................................................   16

2.5.1.       +xx rücke xx Positionen nach vorne.........................................................................................................................................   16

2.5.2.       ‑xx rücke xx Positionen zurück...................................................................................................................................................   16

2.5.3.       Pxxx rücke auf Position xxx.........................................................................................................................................................   17

2.5.4.       Hxx Feldnr. xx mit manueller Überschrift..................................................................................................................................   17

2.5.5.       D Lösche letztes Feld.................................................................................................................................................................   17

2.5.6.       T Einfügen von Text...................................................................................................................................................................   17

2.5.7.       Nxx Feldnr. xx ohne Überschrift................................................................................................................................................   17

2.5.8.       N Lösche alle Überschriften einer Zeile..................................................................................................................................   17

2.5.9.       H@xx Feldnr. xx mit geänderte Feldüberschrift......................................................................................................................   17

2.5.10.      KK#xx Felder anderer Dateien.................................................................................................................................................   17

2.5.11.      ? Übersicht über andere Dateien.............................................................................................................................................   17

2.5.12.      ZEILE Listentyp 'KONTOAUSZUG'.......................................................................................................................................   17

2.5.13.      <CR> Beende Zeile....................................................................................................................................................................   18

2.5.14.      Leerzeilen (doppelter Zeilenabstand).....................................................................................................................................   18

2.6.         Leerfelder......................................................................................................................................................................................   18

2.6.1.       Feldname......................................................................................................................................................................................   18

2.6.2.       Feldformat....................................................................................................................................................................................   18

2.6.3.       Definition des Feldformates......................................................................................................................................................   18

2.6.4.       Änderung des Feldformates.....................................................................................................................................................   18

2.6.5.       Rechengenauigkeit.....................................................................................................................................................................   19

2.6.6.       Automatischer Feldüberlauf (overflow)..................................................................................................................................   19

2.7.         Automatische Summenbildung.................................................................................................................................................   19

2.8.         Listenformat (Höhe / Breite).......................................................................................................................................................   19

 

3.           SELEKTIEREN..............................................................................................................................................................................   20

3.1.         Normale Anwendung..................................................................................................................................................................   20

3.2.         Löschen von Selektionskriterien...............................................................................................................................................   20

3.3.         Auswahlkriterium "ungleich Null"............................................................................................................................................   21

3.4.         Selektieren auf Basis alphanumerischer Textfelder................................................................................................................   21

3.5.         Rechenausdruck im Selektionskriterium...................................................................................................................................   21

3.6.         Selektion bei Beginn der Liste...................................................................................................................................................   21

3.7.         Selektion auf Teilen eines Feldes..............................................................................................................................................   21

3.8.         ODER Kriterium in Verbindung mit Berechnungen................................................................................................................   21

3.9.         QUICK Selektion..........................................................................................................................................................................   22

 

4.           Rechenfunktionen........................................................................................................................................................................   23

4.1.         Struktur der Rechenfunktionen.................................................................................................................................................   23

4.2.         Anwendung des Berechnungsmoduls.....................................................................................................................................   23

4.3.         Ändern einer Berechnung..........................................................................................................................................................   24

4.4.         Operant / Operator.......................................................................................................................................................................   25

4.5.         Prozentberechnungen und Divisionen.....................................................................................................................................   25

4.6.         Rechnen mit Teilen von Feldern................................................................................................................................................   26

4.7.         Alphanumerische Textfelder......................................................................................................................................................   26

4.8.         Spezialfelder..................................................................................................................................................................................   27

4.8.1.       #DD Tagesdatum........................................................................................................................................................................   27

4.8.2.       #PD Per Datum............................................................................................................................................................................   27

4.8.3.       #Dx Parameter..............................................................................................................................................................................   27

4.8.4.       #DAx alphanum. Parameter.......................................................................................................................................................   27

4.8.5.       #PP Seitennummer......................................................................................................................................................................   27

4.8.6.       #OK Status nach Lesen einer anderen Datei..........................................................................................................................   27

4.8.7.       #SC Bildschirmnummer..............................................................................................................................................................   27

4.8.8.       #NIVEAU Nr. der Summenebene.............................................................................................................................................   28

4.8.9.       #GRUPPE Gruppennummer Summe.........................................................................................................................................   28

4.8.10.      Arbeitsfelder...............................................................................................................................................................................   28

4.9.          REM Anmerkungen....................................................................................................................................................................   28

4.10.        Spezielle Funktionen..................................................................................................................................................................   29

4.10.1.      FNR Aufrunden AUF zwei Dezimalstellen.............................................................................................................................   29

4.10.2.      FNH  Abrunden auf zwei Dezimalstellen................................................................................................................................   29

4.10.3.      FND  Umstellen des Datums....................................................................................................................................................   29

4.10.4.      FNA Anzahl Tage zwischen Jahr 1900 und TTMMJJ.........................................................................................................   29

4.10.5.      FNB Umrechnen der Tage ab Jahr 1900 in Datum................................................................................................................   29

4.10.6.      FNU Umrechnen eines Datums in den Wochentag.............................................................................................................   30

4.10.7.      FNV Umrechnen eines Datums in Kalenderwoche...............................................................................................................   30

4.10.8.      Speichern der Spezialfunktionen.............................................................................................................................................   30

4.11.        BASIC Funktionen.....................................................................................................................................................................   30

4.11.1.      ABS Absolutwert einer Zahl....................................................................................................................................................   30

4.11.2.      SQR Quadratwurzel...................................................................................................................................................................   30

4.11.3.      FRA Nachkommestellen eines Feldes....................................................................................................................................   30

4.11.4.      INT Vorkommestellen eines Feldes.........................................................................................................................................   30

4.11.5.      SGN Vorzeichen eines Feldes..................................................................................................................................................   30

4.11.6.      NOT Logische Negation...........................................................................................................................................................   30

4.11.7.      LEN Länge eines Textes (string).............................................................................................................................................   30

4.11.8.      IF Bedingung..............................................................................................................................................................................   31

4.11.9.      Verknüpfungsoperatoren.........................................................................................................................................................   31

4.11.10.     WANN soll eine Rechenoperation ausgeführt werden......................................................................................................   32

4.11.11.     ZUERST, ZULETZT, NORMAL und NACH........................................................................................................................   32

4.11.12.     LOAD Kommando....................................................................................................................................................................   33

4.11.12.1.   OCR Prüfziffer für Postüberweisungen (Giro).....................................................................................................................   33

4.11.12.2.   CHEX Modulus 11 Prüfung...................................................................................................................................................   33

4.11.12.3.   ARB Berechnung von Arbeitstagen....................................................................................................................................   34

4.11.12.4.   NAME Auswahl Vor/Nachname...........................................................................................................................................   34

4.11.13.     ¬ Berechnungen mit festen Zeilennummern.......................................................................................................................   35

4.11.13.1.   Festhalten des Index...............................................................................................................................................................   35

4.11.13.2.   Festhalten der niedrigsten Summenebene...........................................................................................................................   35

4.11.13.3.   Festhalten von Start/Stop......................................................................................................................................................   35

4.11.14.     Schreiben in eine Datei............................................................................................................................................................   35

 

5.           Mehrere Dateien...........................................................................................................................................................................   36

5.1.         Generell..........................................................................................................................................................................................   36

5.2.         'Hilfe' Taste...................................................................................................................................................................................   36

5.3.         READ in Berechnungen.............................................................................................................................................................   37

5.4.         Verknüpfungen zwischen Dateien............................................................................................................................................   37

5.5.         Lesen einer dritten Datei.............................................................................................................................................................   38

5.6.         Dateien mit mehreren Indices.....................................................................................................................................................   38

5.7.         Verschiedene Sätze der gleichen Datei.....................................................................................................................................   38

5.8.         Maximale Anzahl Dateien...........................................................................................................................................................   38

5.9.         Bedingstes Lesen fremder Dateien...........................................................................................................................................   38

5.10.        Lesen NACH einer Selektion....................................................................................................................................................   38

5.11.        Summierung von Einzelposten.................................................................................................................................................   38

5.12.        'Kontoauszug'..............................................................................................................................................................................   38

5.13.        Relative Dateien und Dateiverweise........................................................................................................................................   39

5.14.        Besondere Schlüsselstrukturen................................................................................................................................................   39

5.15.        READ(KU), Saldenliste mit Währungsumrechnung.............................................................................................................   39

5.16.        Preiskalkulation mit Hilfe mehrerer Dateien............................................................................................................................   39

5.17.        Preiskalkulation (ohne automatische Verknüpfung).............................................................................................................   40

5.18.        Mehrfachlesen der gleichen Datei...........................................................................................................................................   40

5.19.        READ in Verbindung mit Summenbildungen.........................................................................................................................   41

5.20.        START/NEXT/REPEAT Summe von Einzelposten...............................................................................................................   41

5.20.1.      Bedingte Summierung mit START/NEXT/REPEAT.............................................................................................................   42

5.20.2.      Mehrere Schleifen mit START/NEXT/REPEAT...................................................................................................................   43

5.20.3.      Selektieren in Verbindung mit START/NEXT/REPEAT......................................................................................................   43

5.21.        READH/ZEILE............................................................................................................................................................................   43

5.21.1.      Selektieren in Verbindung mit READH/ZEILE......................................................................................................................   44

5.21.2.      Summen in Verbindung mit READH/ZEILE...........................................................................................................................   45

5.22.        Schlüsselroutine des Listgenerators.......................................................................................................................................   45

5.22.1.      Felder...........................................................................................................................................................................................   46

5.22.2.      Funktionen..................................................................................................................................................................................   46

5.22.3.      Zusammenstellung von Feldern und Funktionen.................................................................................................................   46

5.22.4.      Schlüsselaufbau, Beispiele.......................................................................................................................................................   46

 

6.           Sortieren und Summenbildung...................................................................................................................................................   47

6.1.         Sortieren........................................................................................................................................................................................   47

6.1.1.       Zwischensummen.......................................................................................................................................................................   47

6.1.2.       Sortierprinzip...............................................................................................................................................................................   48

6.1.3.       Sortierdatei DMSORTWORK...................................................................................................................................................   48

6.1.4.       Sortieren in absteigender Ordnung..........................................................................................................................................   49

6.1.5.       Sekundäre Sortierfolge...............................................................................................................................................................   49

6.1.6.       Mehrfach Sortierungen (NEU)..................................................................................................................................................   49

6.2.         Zwischensummen ohne Sortieren.............................................................................................................................................   50

6.3.         Gewichtete Summen....................................................................................................................................................................   51

6.3.1.       Generell.........................................................................................................................................................................................   51

6.3.2.       Erster Durchlauf..........................................................................................................................................................................   51

6.3.3.       Summenbildung..........................................................................................................................................................................   51

6.3.4.       Berechnung von gewichteten Summen...................................................................................................................................   51

6.3.5.       Gewichtete Summen und Selektieren.......................................................................................................................................   52

6.3.6.       Gewichtete Summen und QUICK Funktion............................................................................................................................   52

6.4.         Behandlung einer Liste, Übersicht............................................................................................................................................   53

6.4.3.       Grundregel für berechnete Summen.........................................................................................................................................   54

6.4.4.       Anwendung des WANN Kommandos...................................................................................................................................   54

6.4.5.       Beispiel für berechnete Summen..............................................................................................................................................   54

6.4.6.       Struktur für berechnete Summen..............................................................................................................................................   55

6.5.         Felder für Bildung einer Summe.................................................................................................................................................   55

6.5.1.       ‑Feldnr., Ausdruck des Feldes in der Summenzeile...............................................................................................................   56

6.5.2.       ‑ , ohne Text 'TOTAL'.................................................................................................................................................................   56

6.5.3.       2% oder 3% Genauigkeit (bei Summenbildung).....................................................................................................................   56

6.6.         Gruppensummen..........................................................................................................................................................................   57

6.6.1.       Gruppensummen (J/N/Ebene) ?................................................................................................................................................   57

6.6.2.       Gruppe Feldnr.: Anzahl Kodes und Name..............................................................................................................................   58

6.6.3.       'Unbestimmte' Gruppensummen...............................................................................................................................................   58

6.6.4.       Teilfelder / fremde Dateien........................................................................................................................................................   58

 

7.           Briefe und Korrektion einer Liste...............................................................................................................................................   59

7.1.         Definition eines Briefes...............................................................................................................................................................   59

7.2.         Bildschirm Anfrageprogramm....................................................................................................................................................   59

7.3.         Anwendung der Funktion 6 und 7............................................................................................................................................   59

7.4.         Änderung eines Briefes oder einer Liste..................................................................................................................................   60

7.5.         Kommandos in Funktion 6 und 7..............................................................................................................................................   60

7.5.1.       Zeilennr........................................................................................................................................................................................   60

7.5.2.       Zeilennr., Position.......................................................................................................................................................................   61

7.5.3.       <CR>.............................................................................................................................................................................................   61

7.5.4.       END oder <CR‑>.........................................................................................................................................................................   61

7.5.5.       ? oder <HILFE>...........................................................................................................................................................................   61

7.5.6.       POS, setze Anfangsposition für Bildschirm...........................................................................................................................   61

7.5.7.       PRINT...........................................................................................................................................................................................   61

7.5.8.       F Seitenvorschub........................................................................................................................................................................   61

7.5.9.       PRINTER, Definition der Druckerzuteilung u.a......................................................................................................................   61

7.5.10.      RASTER, Druckraster an/aus..................................................................................................................................................   61

7.5.11.      MODE, zeige Feldformat/nummer oder Feldname................................................................................................................   62

7.5.12.      IL oder LI, Einfügen einer Zeile...............................................................................................................................................   62

7.5.13.      DL oder LD, Löschen einer Zeile.............................................................................................................................................   62

7.5.14.      FORMAT, Ändern des Formates für Freifelder....................................................................................................................   62

7.6.         Spezialfelder in einem Brief/Liste...............................................................................................................................................   62

7.6.1.       #DD Tagesdatum........................................................................................................................................................................   62

7.6.2.       #PD per Datum............................................................................................................................................................................   62

7.6.3.       #PP Seitennummer......................................................................................................................................................................   63

7.6.4.       #KA Dateinummer......................................................................................................................................................................   63

7.6.5.       #SN Systemname........................................................................................................................................................................   63

7.6.6.       #SY Systemnr..............................................................................................................................................................................   63

7.6.7.       #TI Systemzeit.............................................................................................................................................................................   63

7.6.8.       #NO Programmnummer..............................................................................................................................................................   63

7.6.9.       #SC Bildschirmnummer..............................................................................................................................................................   63

7.7.         Spezielle Zeichen.........................................................................................................................................................................   63

7.8.         Einiges zu Druckzeilen und Positionen....................................................................................................................................   63

 

8.           Kopieren, Löschen, Dokumentation..........................................................................................................................................   64

8.1.         Kopieren einer Liste....................................................................................................................................................................   64

8.1.1.       Kopieren einer Liste von einem System in ein anderes........................................................................................................   64

8.2.         Löschen einer Liste.....................................................................................................................................................................   64

8.3.         Dokumentation der Listdefinitionen.........................................................................................................................................   65

8.4.         Andere Funktionen.....................................................................................................................................................................   67

8.4.1.       Formularvorschub......................................................................................................................................................................   67

8.4.2.       END...............................................................................................................................................................................................   67

8.4.3.       Wechsel in ein anderes System................................................................................................................................................   67

8.4.4.       Stop Hintergrundsliste...............................................................................................................................................................   67

8.4.5.       Job Warteschlange.....................................................................................................................................................................   67

8.4.6.       Scope und Systemprogramme..................................................................................................................................................   67

 

9.           Start einer Liste.............................................................................................................................................................................   68

9.1.         Anwendung der Funktion 9.......................................................................................................................................................   68

9.1.1.       Tagesdatum.................................................................................................................................................................................   68

9.1.2.       Per Datum.....................................................................................................................................................................................   68

9.1.3.       Start von, Stop bei......................................................................................................................................................................   69

9.1.3.1.     x: Wahl des Index bei Start von...............................................................................................................................................   69

9.1.3.2.     SORT, gleiche Sortierung wie zuletzt......................................................................................................................................   69

9.1.4.       Weitere Angaben beim Starten einer Liste.............................................................................................................................   69

9.1.5.       Warnung beim Sortieren/gewichteten Summen.....................................................................................................................   70

9.1.6.       Niedrigste Summenebene..........................................................................................................................................................   70

9.1.6.1.     Ünterdrücken des Ausdrucks..................................................................................................................................................   70

9.1.7.       Dateinummer................................................................................................................................................................................   70

9.1.8.       Start auf Drucker/Bildschirm/Hintergrundsport.....................................................................................................................   70

9.1.9.       Testprint.......................................................................................................................................................................................   70

9.2.         Generierung eines Programmes.................................................................................................................................................   71

9.3.         Bedienung der Hintergrundsporte (Phantomports)...............................................................................................................   71

9.4.         Lampenfunktionen.......................................................................................................................................................................   71

 

10.          Fehlermitteilungen.......................................................................................................................................................................   72

10.1.        Fehlermitteilungen......................................................................................................................................................................   72

10.1.1.      Drucker nicht bereit...................................................................................................................................................................   72

10.1.2.      Programm nicht vorhanden......................................................................................................................................................   72

10.1.3.      Liste nicht definiert....................................................................................................................................................................   72

10.1.4.      Liste bereits definiert.................................................................................................................................................................   72

10.1.5.      Keine weiteren freien Listen.....................................................................................................................................................   72

10.1.6.      Liste ist nicht mit diesem Generator definiert........................................................................................................................   72

10.1.7.      Falches Password......................................................................................................................................................................   72

10.1.8.      Liste bereits von anderen Bildschirm benutzt.......................................................................................................................   72

10.1.9.      Falsche Systemnummer............................................................................................................................................................   72

10.1.10.     Listgenerator vor anderem Bildschirm benutzt....................................................................................................................   72

10.1.11.     Benachrichtigen Sie bitte ihren Systemberater....................................................................................................................   72

10.1.12.     Benachrichtigen Sie bitte den technischen Service............................................................................................................   72

10.1.13.     Datei nicht vorhanden.............................................................................................................................................................   73

10.1.14.     Datei nicht implementiert.........................................................................................................................................................   73

10.1.15.     Datei nicht implementiert (READ fehlt).................................................................................................................................   73

10.1.16.     Datei nicht implmentiert (DRN fehlt)......................................................................................................................................   73

10.1.17.     Liste kann nicht gestartet werden..........................................................................................................................................   73

10.1.18.     Listdatei voll..............................................................................................................................................................................   73

10.1.19.     Verkehrtes Zeichen in einem numerischen Feld...................................................................................................................   73

10.1.20.     Falsche Listennummer.............................................................................................................................................................   73

10.1.21.     Sortieren nicht zugelassen......................................................................................................................................................   73

10.1.22.     Sortieren nicht implementiert..................................................................................................................................................   73

10.1.23.     Falsche Feldnummer.................................................................................................................................................................   73

10.1.24.     Falsche Anzahl..........................................................................................................................................................................   73

10.1.25.     Programm wird zu umfangreich...............................................................................................................................................   73

10.1.26.     Das Feld wird bereits summiert...............................................................................................................................................   74

10.1.27.     Hintergrundsport besetzt, neuer Versuch (J/N)...................................................................................................................   74

10.1.28.     Zeile zu lang...............................................................................................................................................................................   74

10.1.29.     BASIC Fehler Nr. xxxx in Zeile Nr. xxxx...................................................................................................................................   74

10.1.30.     BASIC Fehler Nr. xxxx in Zeile Nr. xxxx in DMS.RAPGEN.xxx.............................................................................................   74

10.1.31.     Nicht genug Speicher für Testprint.......................................................................................................................................   74

10.1.32.     Fehler beim Sortieren, Status=x..............................................................................................................................................   74

10.1.33.     Funktion x kann nicht ausgeführt werden............................................................................................................................   74

10.1.34.     Die folgenden Listen sind benutzt.........................................................................................................................................   74

10.1.35.     Falsches Format........................................................................................................................................................................   74

10.1.36.     Falsche Feldnummer, muss zwischen 1 und xx liegen.........................................................................................................   74

10.1.37.     Keine Summen in Briefen.........................................................................................................................................................   74

10.1.38.     Sortierbegriff verkürzt auf xx Stellen......................................................................................................................................   74

10.1.39.     DMS.RAPGEN nicht installiert...............................................................................................................................................   75

10.2.        SAVE Fehlernummer..................................................................................................................................................................   75

10.2.1.      SAVE Fehler Nr.104...................................................................................................................................................................   75

10.2.2.      SAVE Fehler Nr.108...................................................................................................................................................................   75

10.3.        BASIC Fehlernummern..............................................................................................................................................................   75

10.3.1.      Nr.1 Syntaxfehler........................................................................................................................................................................   75

10.3.2.      Nr.2 Falsche alphanumerische Textbehandlung...................................................................................................................   75

10.3.3.      Nr.3 Programm ist zu gross.......................................................................................................................................................   75

10.3.4.      Nr.5 Falsches Zeichen...............................................................................................................................................................   75

10.3.5.      Nr.9 Falsches Wort....................................................................................................................................................................   76

10.3.6.      Nr.11 Falsche Klammer..............................................................................................................................................................   76

10.3.7.      Nr.15 Division mit 0 oder arithmetischer Überlauf................................................................................................................   76

10.3.8.      Nr.18 Zuviele FOR/NEXT Schleifen........................................................................................................................................   76

10.3.9.      Nr.25 Alphanumerisches Feld nicht dimensioniert...............................................................................................................   76

10.3.10.     Nr.26 Logische Einheit nicht aktiv.........................................................................................................................................   76

10.3.11.     Nr.28 Falscher Wert für Index, Kanalnr. oder.......................................................................................................................   76

10.3.12.     Nr.30 FN Funktion nicht definiert...........................................................................................................................................   76

10.3.13.     Nr.42 Datei nicht vorhanden...................................................................................................................................................   76

10.3.14.     Nr.45 Datei lesegeschützt........................................................................................................................................................   76

10.3.15.     Nr.47 Platte voll.........................................................................................................................................................................   76

10.3.16.     Nr.50 Datei wird bereits benutzt.............................................................................................................................................   76

10.3.17.     Nr.51 Falsche Satsnummer......................................................................................................................................................   76

10.3.18.     Nr.52 Satz nicht vorhanden.....................................................................................................................................................   76

10.3.19.     Nr.73 Falscher Parameter.........................................................................................................................................................   76

 

Figuren.........................................................................................................................................................................................................   77

 


1.           Einleitung.

 

   DMS.RAPGEN ist ein Werkzeug für den Anwender eines Nixdorf 8870 Systems. Nach kurzer Einarbeitung können alle eine einfache Liste oder Anfrage erstellen. Dies geschieht im sog. Dialogverfahren. DMS.RAPGEN ist ein ausgetestetes Produkt, welches in Zusammenarbeit mit einer grossen Anzahl von Anwendern über eine 10 jährige Periode entwickelt wurde.

 

   Ziel dieser Entwicklung war es, dem Anwender ein einfach zu bedienendes Werkzeug in die Hand zu geben, mit dessen Hilfe Listen bzw. Anfragen an das System erstellt werden können.

 

   Die erstellten Listen können auf einer Vielzahl verschiedener Drucker ausgedruckt bzw. am Bildschirm angezeigt werden.

 

   Der Listgenerator baut auf einem sog. Data Dictionary auf, das bei der Installation definiert wird. Dieses Dictionary beinhaltet die Definitionen aller Dateien und führt den Anwender  beim Erstellen  einer Liste/Anfrage Schritt für Schritt durch die einzelnen Felder der zu bearbeitenden Datei.

 

2.1.         Start des Listgenerators.

 

   Nach Anwahl des Listgenerators erscheint folgendes Menü auf dem Bildschirm:

 

 

Figur 1  Funktionswahl des Listgenerators.

 

REPORT GENERATOR     RAPPORTGENERATOR     RAPPORTGENERATOR         

 

 

 

                    DMS.RAPGEN

 

                    1 ... NEU LISTE DEFINIEREN

                    2 ... SELEKTIONEN DEFINIEREN

                    3 ... SORTIERUNG UND SUMMIERUNGEN

                    4 ... KALKULATIONEN DEFINIEREN

                    5 ... LÖSCHE EINE LISTENR

                    6 ... NEUEN BRIEF DEFINIEREN

                    7 ... ÄNDERUNG EINER LISTE/BRIEF

                    8 ... AUSDRUCK VON LISTEDEFINITIONEN

                    9 ... AUSGABE LISTE/BRIEF

                   10 ... KOPIERUNG

 

                   CODE EINGEBEN: .......

 

 

 

 

 

 

NACHRICHT: :

 

 

 

 

   Durch Eingabe des entsprechenden Kodes wird die gewünschte Funktion aufgerufen.

 

2.3.         Ziel dieses Handbuches.

 

   Das Ziel dieses Handbuches ist es, die einzelnen Funktionen des Listgenerators im Detail zu beschreiben, so dass der Anwender die notwendigen Voraussetzungen bekommt, den Listgenerator best möglich zu nutzen.

 

   Darüberhinaus dient das Handbuch dem Programmierer bei der Installation des Listgenerators bzw. bei der Erweiterung von durch den Generator erstellte Programme. Dies erfolgt normalerweise als Fussnoten innerhalb der einzelnen Abschnitte.

 

   Der Listgenerator ist einfach zu bedienen und kann in kürzester Zeit erlernt werden. Der Listgenerator kann auch für komplexere Aufgaben, wie z.B. Verflechtungen verschiedener Dateien (bis zu 9 Dateien) innerhalb einer Liste, verwendet werden. Eine Reihe von Anwendern haben mit Hilfe dieses Generators mehr als 100 verschiedene Listen/Anfragen erstellt.

 

   Neben einer ausführlichen Beschreibung von Fehlermeldungen und möglichen Fehlersituationen finden Sie am Ende dieses Handbuches ein ausführliches Stichwortverzeichnis.


2.5.         Dateien, die in den Beispielen benutzt werden.

 

   Für die Erläuterungen in diesem Handbuch wurden vier kleinere Dateien gewählt, die alle mit dem DATAMASTER erstellt werden können.

 

  Der Listgenerator kann natürlich für alle  beliebigen Dateien installiert werden, d.h. indexiert oder relativ (mit Suchbegriffen). Die jeweilige Dateiform wird bei der Installation des Listgenerators definiert. Die verschiedenen Dateistrukturen beeinflussen nicht die Bedieneroberfläche.

 

   Um die Anwendung mehrerer Dateien gleichzeitig illustrieren zu können, wurde als Ausgangspunkt eine Artikeldatei gewählt, in der jeder Artikel zu einer bestimmten Artikelgruppe gehört, und in der die Berechnung des Verkaufspreises auf Basis des Einkaufspreises und der Währung beruht.

 

DATEIEN.       

                  

                 Artikelnr

                 Lieferantennr                   Gruppennr

             

VA                              GR               

Artikeldatei      ®Varengruppendatei

             

         ­                                           

                                                   

                                                   

         ¯        Lieferantennr                   Valutacod

             

LE                              KU               

Lieferantdatei    Valutadatei      

             

                  

2.6.1.       VA Artikeldatei.

 

 NR NAME                   FORMAT   LAYOUT             INDEX

  1 ARTIKELNR                4      xxxx               SCHLÜSSEL 1

  2 BEZEICHNUNG             20      xxxxxxxxxxxxxxxxxxxx

  3 VERKAUFSPREIS            6,2    999999,99

  4 EINKAUFSPREIS            6,2    999999,99

  5 LETZT.EINKAUFSDATUM     ,6,     99,99,99

  6 LIEFERANTENNR            3      xxx                SCHLÜSSEL 2

  7 GRUPPENNR.               2,     99, 

  8 BESTAND                 ‑6      ‑999999

  9 ALTERNATIVE              3      xxx

    LIEFERANTENNR

 10 FREI                    ‑6,2    ‑999999,99

 

2.6.3.       LE Lieferantdatei.

 

  

NR NAME                  FORMAT   LAYOUT             INDEX

 1 LIEFERANTENNR           3      xxx               SCHLÜSSEL 1

 2 NAME                   24      xxxxxxxxxxxxxxxxxxxxxxxx

 3 STRASSE                24      xxxxxxxxxxxxxxxxxxxxxxxx

 4 ORT                    24      xxxxxxxxxxxxxxxxxxxxxxxx

 5 VALUTAKODE              2,     99

 6 SALDO                  ‑8,2    ‑99,999,999,99

 

2.6.5.       KU Valutadatei.

 

NR NAME                  FORMAT   LAYOUT             INDEX

 1 VALUTAKODE              2,     99                 SCHLÜSSEL 1

 2 VALUTANAME              4      xxxx

 3 KURS                    4,4    9999,9999

 

2.6.7.       GR Varengruppendatei.

 

NR NAME                  FORMAT   LAYOUT             INDEX

 1 GRUPPENNR.               2,     99                SCHLÜSSEL 1

 2 GRUPPENNAME             16      xxxxxxxxxxxxxxxx

 3 KALKULATIONSFAKTOR      4,4    9999,9999

 


2.6.9.       Dateiinhalte

 

 

Figur 2  VA Artikeldatei.

 

DATUM:80.01.29      * ARTIKELLISTE *      PR.80.01.29   SEITE:   1

 

NR   BEZEICHNUNG            VERKAUF   EINKAUF    DATUM LIEF ALT GR

 

0101 SCHOKOLADESTANGEN         2,00      1,50  1.01.87 271  270  0

0102 GROSSE FRASEMASCHINE  20000,00  10000,00  1.01.85 100    0  9

0110 AUTOBUSSE            100000,00  60000,00 15.12.86 123  100  2

1001 GELD.GROSSE ZETTEL     1000,00    500,00 31.12.86 205  102  0

1005 STANZMASCHINE          2000,00   1500,00  1.06.86 100    0  1

2001 KREDITKARTE              20,00     10,00  1.01.87 205  102  9

2002 ID‑KARTE                 25,00     10,00 30.07.86 205  102  9

 

 

 

 

 

Figur 3  LE Lieferantendatei

 

DATUM:80.01.29  * LIEFERANTENLISTE *  PR.80.01.29   SEITE:   1

 

LIEFERANTNR NAME                     VALUTAKODE          SALDO

 

100         HUMBER LTD.                       0           0,00

102         AX & AX LTD.                      0      25.000,00

105         WEBB'S SUPPLIERS LTD.             0         500,00

111         TRAWSOM LTD.                      0       1.000,00

123         BRAUN GMBH                        1           0,00

205         SCHIERMACHER GMBH                 1      20.000,00

260         CLORID LTD.                       0       2.000,00

270         OHIO INC.                         2         200,00

271         DANDY INC.                        2           0,00

 

 

 

 

 

Figur 4  KU Kundendatei

 

 

DATUM:80.01.29  * KURSLISTE *  PR.80.01.29   SEITE:   1

 

VALUTAKODE VALUTANAME      KURS

 

         0 UKP           1,0000

         1 DEM           2,7990

         2 USD           1,5160

 

 

 

 

 

Figur 5  GR Artikelgruppendatei

 

DATUM:80.01.29  * VARENGRUPPENLISTE *  PR.80.01.29   SEITE:   1

 

GRUPPENNR GRUPPENNAME      KALKULATIONSFAKTOR

 

        0 STOCK                        1,0000

        1 AUX.                         2,0000

        2 SPECIAL                      1,2345

        9 N/STOCK                      3,0000

 

 

 


2.7.         Bedienung generell.

 

   Tastet man im Startmenü des Listgenerators nur <CR> (Carriage Return), gelangt man in das Hauptmenü des Systems (z.B. TAMOS Menü) zurück.

 

   Jede einzelne Funktion im Listgenerators wird mit der Eingabe END oder mit dem Drücken der Taste <CR> beendet.

 

   Eine Funktion innerhalb des Listgenerators kann durch Drücken der Taste <ESC> abgebrochen werden. Bereits erfolgte Veränderungen werden storniert. Eine bestimmte Funktion kann direkt durch Eingabe der zugehörigen Auswahlnummer angewählt werden, z.B. 4.28, wobei 4 die Funktion und 28 die Liste angibt.

 

   Verwendet man mehrere Dateien gleichzeitig, kann man deren Felder durch Drücken der Tastes <?> bzw. <HILFE> sehen.

            

 

Figur 6  Tastaturbelegung Listgenerator.

 
                                                      

    

_    L4 _     L3 _    L2 _     L1 _       _       

                                                       

                                                       

_    R4 _     R3 _    R2 _     R1 _   S   _ EIN/AUS

                  EINGABE SCHLÜßEL                   

                                                     

BS      Y      N                                   

                                                     

                                                     

  C      7      8      9                             

                                                     

   @  

                                                     

         4      5      6             ­               

                                                     

                                                     

         1      2      3          SPR               

                                                     

  CR  

                                                       

          0              ,                        END 

                                                       

                                                                      

 


2.9.         Betriebssystem.

 

   Der Listgenerator kann unter den Betriebssystemen NIROS 3.2 bis 6.0 eingesetzt werden. Bei Freigabe einer neuen Version wird der Listgenerator laufend daran angepasst werden.

 

   Der Listgenerator ist in reinem BASIC geschrieben, und verwendet keine speziellen Assemblerroutinen oder ähnliches. Entsprechend werden reine BASIC Programme generiert, so dass ein Programmierer mit den generierten Programmen weiterarbeiten kann.

 

   Der Listgenerator erfordert eine Partitiongrösse von nur 16 Kb. Grössere Bereiche können jedoch definiert werden, so dass mit umfangreicheren Listen gearbeitete werden kann. Es werden 15 eröffnete Datendateien gefordert (SYSMOD).

 

2.11.         Plattenkapazität.

 

   Der Listgenerator kann normal auf 2.500 Sektoren installiert werden.

 

   Der Platzbedarf kann wie folgt berechnet werden:

 

   1. Listgenerator Programme:                    1000 Sektoren

   2. Je weiterem Arbeitsplatz: x * 75

      z.B. 0 * 75                                    0 Sektoren

   3. Je Datei: x * 20, z.B. 10 * 20               200 Sektoren

   4. Listdatei je Liste: x * 4, z.B. 44 * 4       176 Sektoren

   5. Textdatei je Liste: x * 4, z.B. 44 * 4       176 Sektoren

   6. Programm je Liste: x * 16, z.B. 44 * 16      704 Sektoren

   7. Sortierdatei je 1000 Sätze: x * 150,

      z.B. 1 * 150                                 150 Sektoren

                                                   ‑‑‑‑‑‑‑‑‑‑‑‑

                                                  2406 Sektoren

 

 

   Im Falle von Kapazitätsproblemen auf der Platte kann der Punkt 6, Programme je Liste, ausgelassen werden und die Installation kann ganz ohne Sortierdatei vorgenommen werden. Dadurch kann  der Platzbedarf in obigem Beispiel auf 1552 Sektoren reduziert werden.

 

2.13.         DATAMASTER.

 

   DATAMASTER ist mehrals in diesem Handbuch erwähnt. Es handelt sich hierbei um ein System, dass für die Definition und Pflege von Dateien eingesetzt werden kann. Der Anwender definiert im Dialog die einzelnen Felder einer Datei, wonach anschliessend der DATAMASTER die komplette Datei aufbaut. Die Dateien können mit Hilfe dieses Systems laufend erweitert bzw. deren Struktur geändert werden.

 

   Die vom DATAMASTER erstellten Dateien können vom Anwender über den Listgenerator ausgewertet und behandelt werden.

 

2.15.         Systeme.

 

   Ein System ist die Installationsbeschreibung eines Listgenerators, die u.a. definiert, auf welcher Platteneinheit der Listgenerator gespeichert ist.[1]

 

   Es kann mit bis zu hundert verschiedene Systeme auf einer Anlage gearbeitet werden.

 

   Über die Parameter eines Systems kann bei der Installation der Listgenerator in ein Anwenderprogramm integriert werden.

 

   Jedes System kann, sofern man verschiedene Anwendungen laufend hat, unterschiedliche Dateidefinitionen enthalten. Ein System kann bis zu 88 Listen enthalten. Übersteigt die benötigte Anzahl Listen diesen Wert, können weitere Systeme installiert werden.

 


3.           Definition einer Liste.

 

4.1.         Allgemein.

 

   Bei der Definition einer Liste/Anfrage über die Funktion 1 gibt man die Datei an, auf der die Liste/Anfrage aufbauen soll, und teilt der Liste einen Namen und Nummer zu. Weiterhin definiert man die einzelnen Felder, die in die Liste eingehen sollen. Um diesen Vorgang zu erleichtern, werden dem Anwender sätliche Felder der entsprechenden Datei angezeigt.

 

   Das Definieren der einzelnen Felder ist sehr einfach, da man nur die jeweilige Feldnummer anzugeben braucht. Der Listgenerator sorgt selbst für die korrekte Platzierung innerhalb einer Zeile, d.h. numerische Felder rechtsbündig und alphanumerische Felder linksbündig. Ferner werden automatisch die jeweiligen Feldbezeichnungen eingesetzt.

 

   Nach Auswahl der einzelnen Felder kann man direkt die Funktion 9 aufrufen und die Liste starten. Er wird jetzt ein entsprechendes BASIC Programm auf Basis der eingebenen Felder generiert. Die gewünschte Liste/Anfrage wird anschliessend auf dem Drucker bzw. Bildschirm ausgegeben. Wie Sie sehen, dauert es nur einige Minuten, bevor Sie ihr erstes eigenes BASIC Programm geschrieben haben.

 

   Gleichzeitig hat der Listgenerator Zwischen und Endsummen gebildet, und das Programm ist so optimiert, als es von einem geübten Programmieren kaum besser erreicht werden kann. Wie Sie sehen, haben Sie in diesen paar Minuten ein nicht ganz einfaches Programm erstellt.

 

   Die Definitionen innerhalb einer Liste können natürlich auch sehr viel komplexer sein, z.B. können Sie selber die Positionen innerhalb einer Zeile bestimmen, können frei Feldbezeichnungen wählen oder Felder anderer Dateien in die Liste miteinbeziehen. Während man die einzelnen Zeilen einer Liste/Anfrage aufbaut, kann man am Bildschirm den Aufbau der Liste im einzelnen verfolgen.

 

   Bei der Definition einer Liste/Anfrage brauchen Sie sich zuerst nur um die Feldauswahl und deren Platzierung innerhalb der Liste zu kümmern (Layout der Liste). Ist der Aufbau der Liste hiermit festgelegt, können Sie anschliessend die Anhängigkeiten innerhalb der Liste festlegen, d.h.

 

   Sortierungen, Rechenregeln, besondere Zwischensummen u.s.w. Der Listgenerator ist so aufgebaut, dass die einzelnen Abhängigkeiten innerhalb der Liste geändert werden können, ohne sich um das einmal festgelegte Layout bekümmern zu brauchen.

 

   Speziell im Zusammenhang mit Berechnungen werden auf dem Bildschirm 20 freie Felder gezeigt, denen man einen Namen und ein Format (Anzahl Ziffern) zuteilen kann. Startet man eine Liste unmittelbar nach deren Definition, werden diese Felder mit dem Inhalt 0 (Null) ausgeschrieben. Erst nach Definition der entsprechenden Rechenregeln bekommen diese FeldereinenWert.

 

4.3.         Funktion 1.

 

   Wählt man die Funktion 1, DEFINITION EINER LISTE, erhält man eine Übersicht über die bereits definierten Listen/Anfragen auf dem Bildschirm.

 

 

Figur 7  Übersicht über bereits bestehende Listen/Anfragen.

 

DMS.RAPGEN                                           1.....NEU LISTE DEFINIEREN

  1 PREISLISTE

  2 LAGERWERTLISTE

  3 DECKUNGSBEITRAG

  4 PREISBERECHNUNG

  5 ETIKETTEN FÜR LIEFERANTEN

  6 SALDOLISTE

  7 WARENLISTE

  8 WARENGRUPPENLISTE

  9 LIEFERANTENLISTE

 10 KURSLISTE

 11 ARTIKEL PR.LIEFERANTEN

 

 

 

 

 

 

 

 

LISTE NUMMER ? CR=FREIE LISTENR. ?

 

 


4.4.1.       Nummer der Liste/Anfrage.

 

   Bittet der Listgenerator um die Nummer für eine neue Liste, drückt man normalerweise hier nur <CR>, da das Programm selbst die nächste freie Nummer einsetzen wird. Man kann hier jedoch eine Nummer eingeben, falls dieses vom Anwender gewünscht ist (z.B. für Gruppierungen von Listen o.ä.).

 

   Normalerweise können die Nummern 1 bis 66 gewählt werden. Ist der Platz auf den Platten Ihres Systems beschränkt, müssen die Listen/Anfragen grösser einer bestimmten Nummer jedesmal neu generiert werden. D.h. dass in einem solchen Falle Listen mit einer kleinen Nummer unmittelbar gestartet werden können, wohingegen das Programm für eine Liste mit einer Nummer über diesem Grenzwert erst generiert werden muss.

 

4.4.3.       Datei.

 

   Nach Bestimmung der Listen/Anfragennummer müssen die Datei(en) angegeben werden, auf der (denen) die Liste/Anfrage aufgebaut werden soll.

 

 

Figur 8  Dateien.

 

DMS.RAPGEN     1                                     1....NEU LISTE DEFINIEREN

GR.... VARENGRUPPENDATEI

KU.... VALUTADATEI

LE.... LIEFERANTENDATEI

VA.... ARTIKELDATEI

 

 

 

 

 

 

 

 

 

DATEINR.?

 

 

 

 

 

   Jede bestehende Datei wird mit zwei Buchstaben (Kennung) und einem Text, der den Inhalt der Datei beschreibt, angezeigt. Man wählt eine Datei durch der Angabe der entsprechenden Kennung aus.

 

   Die hier gewählte Datei wird als Hauptdatei bezeichnet, d.h. diese Datei bildet die Grundlage für die jeweilige Liste/Anfrage. Hiervon können Zugriffe auf andere Dateien definiert werden.

 

   Für DATAMASTER Dateien kann man hier durch Eingabe von <,W> angeben, ob in die Datei zurückgeschrieben werden soll, d.h. man kann die Felder der Datei im über den Listgenerator verändern (Beispiel: Heraufsetzen des Mahnkodes um 1). Da solche Operationen nicht ohne Risiko sind, werden diese Dateien durch ein Password geschützt.

 

   In besonderen Fallen können bei der Installation eines Systems verschiedene Varianten der gleichen Dateien definiert werden. Diese werden dann durch Angabe der Dateikennung und der Variantennummer bestimmt, z.B. ZZ,1 oder XX,A. Dateien, deren Varianten durch Buchstaben definiert werden, werden Password geschützt.

 

4.4.5.       Datei Password.

 

  Bei der Installation können einzelne Dateien durch ein Password geschützt werden (z.B. Personaldateien). Soll eine solche Datei dann für eine Liste/Anfrage herangezogen werden, kann dies nur nach Eingabe des korrekten Passwords erfolgen. Das Password selbst kann durch den Anwender definiert werden.


4.5.         Stammdaten einer Liste/Anfrage.

 

   Mit Hilfe dieser Funktion werden eine Reihe von Daten eingegeben, die der Datei während ihrer Lebenszeit zugeordnet bleiben.

 

 

Figur 9  Stammdaten einer Datei.

 

DMS.RAPGEN     1                                     1....NEU LISTE DEFINIEREN

GR.... VARENGRUPPENDATEI

KU.... VALUTADATEI

LE.... LIEFERANTENDATEI

VA.... ARTIKELDATEI

 

 

 

 

 

 

 

 

 

DATEINR.? VA......ARTIKELDATEI

 

LISTENNAME (FÜR PROGRAMWAHL) ?       PREISLISTEN

 

ANZAHL ZeileN PRO SEITE (CR=51)  ?   51

 

ÜBERSCHRIFT (K=KEINE,CR=WIE NAME) ?  PREISLISTEN

 

SOLL NULLEN AUSGESCHRIEBEN WERDEN (J/N) ? J       ANWENDERKURZNAME ? XXX

 

 

 

 

 

4.6.1.       Name der Liste/Anfrage.

 

   Der Name der Liste/Anfrage wird mit maximal 25 Zeichen eingegeben. Diese Eingabe darf nicht Übergangen werden. Der hier eingegebene Name wird in jeder Übersicht angegeben, und sollte so gewählt werden, dass man die entsprechende Liste/Anfrage leicht identifizieren kann.

 

   Obwohl der Name bis zu 25 Zeichen enthalten kann, sollte man darauf achten, dass eventuell dieser Name in einer Übersicht abgekürzt werden kann. Ein Name kann durch Kopieren in eine andere Datei geändert werden.

 

4.6.3.       Anzahl Zeilen per Seite.

 

   Der Listgenerator schlägt eine Standardzeitenlänge vor. (Wird bei der Installation definiert). Quittiert man diesen Wert, wird die Standardseitenlänge übernommen.

 

   Der Anwender kann jedoch auch eine frei gewählte Länge angeben, z.B. 72 Zeilen für das Format A4. Wir verweisen hier auf die Funktion 6 'Schreiben von Briefen'.

 

   Normalerweise wird der Seitenvorschub 3 Zeilen vor Seitenende vorgenommen. Dieser Wert kann vom Anwender ebenfalls geändert werden, indem man die freien Zeilen am Seitenende nach dem Komma angibt, z.B. 51,5. D.h. man definiert die Seitenlänge mit 51 Zeilen und den Seitenvorschub nach Zeile 46.

 

4.6.5.       Überschriften.

 

   Drückt man hier nur <CR>, wird der Name der Liste/Anfrage als Überschrift eingesetzt. Natürlich kann hier auch vom Anwender ein beliebiger Text eingegeben werden. Die Überschrift wird automatisch in die Mitte der ersten Zeile gesetzt. Die Länge der Überschrift ist abhängig von dem gewählten Seitenformat. Die Überschrift darf die Länge einer Zeile nicht überschreiten.

 

   Gibt man hier <N> ein, werden Überschrift, Seitennummer und Feldbezeichnungen unterdrÜckt.

 

4.6.7.       Ausgabe von Nullen bei Leerfeldern (J/N).

 

   Normalerweise bestätigt man hier durch Eingabe von <J>. Die Ausgabe von Nullen (bei Leerfeldern) kann durch Eingabe von <N> unterdrückt werden.


4.6.9.       Drucker.

 

   Dieser Punkt ist nur aktuell, wenn bei Installation die Möglichkeit mehrerer Drucker, definiert wurde. In diesem Falle kann hier der Drucker bestimmt werden, auf dem die Liste/Anfrage ausgedruckt werden soll.

 

   Normalerweise wird man in diesem Zusammenhang die Druckerzuteilung durch TAMOS benutzen. Beachten Sie bitte, dass die Seitenlänge durch den gewählten Drucomsnker begrenzt werden kann.

 

4.6.11.       Anwendername/Password Schutz.

 

   Es besteht die Möglichkeit, die Liste/Anfrage durch Eingabe eines Anwendernamens mit einem Password zu schützen. Dieses Password muss dann bei allen Änderungen der Definitionen mitangegeben werden.

 

   Normalerweise quittiert man hier nur durch <CR>. Es erfolgt dann keine Password Schutz.

 

   Umschliesst man die Eingabe des Anwendernamens (Password) durch <Ctrl><E>, z.B. ETESTE, erfolgt die Eingabe auf dem Bildschirm 'blind', d.h. die Eingabe wird auf dem Bildschirm nicht sichtbar. In diesem Falle wird auch die Ausgabe einer Liste/Anfrage durch das Password geschützt.

 

   Der Anwendername kann durch Kopieren geändert werden, wobei man den alten Namen zuerst eingeben muss. Sollte man den Anwendernamen (Password) vergessen haben, wenden Sie sich bitte an die Person, die ihr System installiert hat.

 

4.7.         TAMOS Programmwahl.

 

   Wurde der Listgenerator mit Integration zum TAMOS Menüsystem installiert, erhält man nach Eingabe des Anwendernamens folgendes Schirmbild:

 

 

Figur 10 TAMOS Programmwahl.

 

DMS.RAPGEN   1 PREISLISTE                       1.....NEU LISTE DEFINIEREN

 

* TAMOS SELEKTOR *   RAPPORT NR: 1 PREISLISTE

 

 1 SYSTEM BEDIENUNG    1 TÄGLICHE PROCEDUREN 1 ANFRAGE PORTE       0

 2                     2 HILFSPROGRAMME      2 ANFRAGE ARKIVFIL    0

 3                     3 PLATTENSTEUERUNG    3 ANFRAGE LOGFIL      0

 4                     4                     4 AUSGABE LOGFIL      0

 5                     5                     5 ÄNDERN UHRZEIT      0

 6                     6                     6 DRÜCKERZUTEILUNG    0

 7                     7                     7 ANFRAGE SPOOLFIL    0

 8                     8                     8 SPOOLER ZUTEILUNG   0

 9                     9                     9 PREISLISTE          D

10                    10                    10

11                    11                    11

12                    12                    12

13                    13                    13

14                    14                    14

15                    15                    15

NR.? 1                NR.? 2                NR.? 9

 

DIESE PROGRAMMNR. WIRD ANGEWANDT VON: PREISLISTEN

 

ERSTATTE DEN ALTEN RAPPORT (J/N) ?

 

 

 

   Man kann jetzt die Ebene (1‑3) eingeben, in die die Liste/Anfrage eingesetzt werden soll. Drückt man nur <CR>, wird die Liste/Anfrage nicht in die Programmwahl eingefügt.

 

   Befindet sich bereits eine Eintragung in der gewünschten Position, wird gefragt, ob man die bestehende Liste/Anfrage mit der neuen erstatten will. Es ist nicht möglich, andere Programme zu überschreiben.


4.9.         Felder einer Liste/Anfrage.

 

   Nach Eingabe der Stammdaten gibt der Listgenerator eine Übersicht über sämtliche Felder der gewählten Datei, einschliesslich 20 freier Felder, die für Rechenoperationen freigehalten sind. Diese 20 Felder sind mit FREI gekennzeichnet.

 

 

Figur 11 Felder einer Liste/Anfrage.

 

DMS.RAPGEN     1 PREISLISTEN                         1......NEU LISTE DEFINIEREN

  1 ARTIKELNR               19 @FREI

  2 BEZEICHNUNG             20 @FREI

  3 VERKAUFSPREIS           21 @FREI

  4 EINKAUFSPREIS           22 @FREI

  5 LETZT.EINKAUFSDATUM     23 @FREI

  6 LIEFERANTENNR           24 @FREI

  7 GRUPPENNR               25 @FREI

  8 BESTAND                 26 @FREI

  9 ALT.LIEFERANTENNR       27 @FREI

 10 FREI                    28 @FREI

 11 @FREI                   29 @FREI

 12 @FREI                   30 @FREI

 13 @FREI

 14 @FREI

 15 @FREI

 16 @FREI

 17 @FREI

 18 @FREI

1...,....10...,....20...,....30...,....40...,­...50...,....60...,....70...,....8

+xx , ‑xx , Pxx =POSITION , Hxx =ÜBERSCHRIFT , Nxx =KEIN ÜBER, D=LÖSCHEN, T=TEXT

ARTIKELNR NAME                 VERKAUFSPREIS

AAAA      AAAAAAAAAAAAAAAAAAAA     ######.##

ZEILE NR.  1 FELDNR. ?

 

 

 

 

 

   Am unteren Ende des Schirmbildes wird eine kurze Anleitung gegeben. In den folgenden drei Zeilen werden die Felder gezeigt, wie sie nacheinander aufgebaut werden. Die Eingabe erfolgt in der letzten Bildschirmzeile:

 

           ZEILEN NR.1:    FELD NR:

 

   Der Aufbau einer Liste/Anfrage erfolgt ganz einfach durch Angabe der gewünschten Felder. Die gewählten Felder werden in eine Zeile nebeneinander plaziert. Der Abstand zwischen den einzelnen Feldern beträgt 1 Position. Die Feld Überschriften werden entsprechend der Felddefinition (num/alphanum) links bzw. rechtsbundig gesetzt. Die gewählten Felder werden auf dem Bildschirm durch Blinken angezeigt, so dass man jederzeit eine Übersicht hat, welche Felder man für die Liste/Anfrage ausgewählt hat. Gleichzeitig kann man den Aufbau der Zeile unten auf dem Bildschirm mitverfolgen.

 

   Sind die Felder für eine Liste/Anfrage bestimmt, beendet man den Vorgang mit Eingabe von END oder <CR>. Der Listgenerator speichert die Definitionen und die Ausgabe der Liste kann gestartet werden. Eine fertige Liste kann folgendermassen aussehen:

 

 

Figur 12 Ausdruck einer fertigen Liste.

 

DATUM:14.01.87  * PREISLISTE *  PR.14.01.87  SEITE:   1

 

ARTIKELNR NAME              VERKAUFSPREIS GRUPPENNR

0101      SCHOKOLADESTANGEN          2,00        0

0102      GROSSE FRÄSEMASCHINE   20000,00        9

0110      AUTOBUSSE             100000,00        2

1001      GELD,GROSSE ZETTEL      1000,00        0

1005      STANZMASCHINE           2000,00        1

2001      KREDITKARTE               20,00        9

2002      ID‑KARTE                  25,00        9

 

SUMME                           123047,00

 

 

 

   Während des Aufbaus der einzelnen Felder können eine Reihe von eingebauten Spezialfunktionen für das Editieren der Liste benutzt werden.

 

4.10.1.       +xx rücke xx Positionen nach vorne.

 

   Über diese Funktion kann der Abstand mit Hilfe der Tasten ‑> geändert bzw. bestimmt werden. Die Positionszeile zeigt die Position des nächsten Feldes an.


4.10.3.       ‑xx rücke xx Positionen zurück.

 

   Über diese Funktion kann der Abstand zwischen den Feldern verringert werden (Vorgehensweise entspricht 2.5.1).

 

4.10.5.       Pxxx rücke auf Position xxx.

 

   Hiermit bewegt man sich auf eine bestimmte Position innerhalb einer Zeile.

 

4.10.7.       Hxx Feldnr. xx mit manueller Überschrift.

 

   Gibt man nur die Feldnummer an, wird automatisch die Feldbezeichnung als Überschrift verwendet. Tastet man ein <H> vor der Feldnummer ein, kann man die Überschrift manuell eingeben. Die Überschrift kann hierbei nur einzeilig sein. Später kann man Über die Funktion 7 'ÄNDERN EINER LISTE' mehrere Zeilen einfügen.

 

4.10.9.       D Lösche letztes Feld.

 

   Das zuletzt angegebene Feld kann durch Eingabe von <D> gelöscht werden.

 

4.10.11.       T Einfügen von Text.

 

   Gibt man z.B. TSALDO ein, wird der Text SALDO zwischen zwei Feldern in einer Zeile eingefügt.

 

4.10.13.       Nxx Feldnr. xx ohne Überschrift.

 

   Gibt man N vor einer Feldnummer an, wird die Feldüberschrift ausgelassen.

 

4.10.15.       N Lösche alle Überschriften einer Zeile.

 

   Wird N alleine eingegeben, werden sämtliche Überschriften innerhalb einer Zeile unterdrückt.

 

4.10.17.       H@xx Feldnr. xx mit geänderte Feldüberschrift.

 

   Gleiche Wirkung wir Nxx, jedoch wird die Überschrift entsprechend in der Datei gespeichert. Hierdurch wird die Feldbezeichnung in der Datei geändert.

 

4.10.19.      KK#xx Felder anderer Dateien.

 

   Durch Angabe eines Dateikurznamens vor der Feldnummer kann man Felder anderer Dateien in seine Liste einsetzen. Dies setzt voraus, dass man ein Rechenfeld für READ definiert. Wir verweisen hier auf den Abschnitt VERARBEITUNG MEHRERER DATEIEN.

 

4.10.21.

2.5.11.      ? Übersicht über andere Dateien.

 

   Mit Hilfe der Taste <?> bzw. <HILFE> kann man alle anderen Dateien und deren einzelne Felder sehen (siehe auch Abschnitt MEHRERE DATEIEN).

 

4.10.23.      ZEILE Listentyp 'KONTOAUSZUG'.

 

   Mit Hilfe dieses Kommandos, welches als erstes in einer neuen Zeile angegeben werden muss, teilt man dem Listgenerator mit, dass die bereits definierten Zeilen als Kopfzeilen ausgegeben werden sollen. Die Zeilen, die anschliessend definiert werden, werden dann wie einzelne Buchungszeilen ausgegeben. Diese Funktion wird über das Kommando READH gesteuert.[2]


4.10.25.

2.5.13.      <CR> Beende Zeile.

 

   Tastet man nur <CR>, bittet das System um Bestätigung:

 

           ZEILE OK ? (J/N)

 

   Man kann hier also eine ganze Zeile bestätigen bzw. annulieren. Bei Bestätigung wird dann die Zeile auf dem Bildschirm um eine Zeile nach ober verschoben, und erscheint in dem Format, wie sie später ausgegeben wird. Eine neue Zeile kann jetzt eingegeben werden. Man kann beliebig viele Zeilen innerhalb eines Datensatzes definieren, doch maximal Anzahl Zeilen per Seite minus 3 Zeilen. Adressetiketten sollten als BRIEF behandelt werden.

 

  Jeder Zeile wird eine Überschrift zugeordnet. Dies kann dazu führen, dass die Überschriften mehr Platz einnehmen als gewünscht. Man kann jetzt über das Kommando N Überschriften in bestimmten Zeilen unterdrücken.

 

4.10.27.      Leerzeilen (doppelter Zeilenabstand).

 

   Leerzeilen in einer Liste werden dadurch definiert, dass man eine neue Zeile unmittelbar, d.h. ohne Eingabe von Feldnummern, bestätigt. Hierdurch können Listen mit doppeltem Zeilenabstand aufgebaut werden.

 

4.11.         Leerfelder.

 

   Neben den Feldern der gewählten Datei werden 20 Leerfelder auf dem Bildschirm gezeigt ( FREI). Diese Felder dienen dazu, berechnete Felder, also Felder, die nicht unmittelbar einer Dang

tei zu entnehmen sind, auszugeben.

 

4.12.1.       Feldname.

 

   Wählt man ein solches Leerfeld, wird man erstes gebeten, einen Feldnamen einzugeben. Der Feldname wird als Feldüberschrift in der Liste benutzt.

 

4.12.3.       Feldformat.

 

   Nach Eingabe des Feldnamens muss das Format definiert werden. Der Listgenerator definiert die ersten 10 Felder standardmässig als ‑9,2 (neunstellig plus 2 Decimalstellen, mit Vorzeichen), und die Nächsten 10 Felder als ‑5 (fünf stellig mit Vorzeichen). Dieses vorgeschlagene Format kann jederzeit abgeändert werden (Abschnitt 2.6.3).

 

4.12.5.       Definition des Feldformates.

 

   1. xx,    xx = Anzahl Ziffern ohne Vorzeichen.

 

   2. xx,y   xx = Anzahl Ziffern vor Komma. y = Anzahl Decimalstellen, ohne Vorzeichen.

 

   3. ‑xx,   wie 1, jedoch mit Vorzeichen.

 

   4. ‑xx,y  wie 2, jedoch mit Vorzeichen.

 

   5. ,xx,   wie 1, mit Kommatrennung per 1000 z.B.999,999,999. ,6,  Datumfeld mit Kommatrennung (99,99,99).

 

   6. ,xx,y  wie 2, mit Kommatrennung per 1000 z.B.999,999,99.

 

   7. xx     Anzahl Zeichen in einem Textfeld.

 

4.12.7.       Änderung des Feldformates.

 

   Feldformate von Leerfeldern können nur über die Funktion 7, Änderung einer Liste, geändert werden. Das Feldformat kann nur für Leerfelder geändert werden. Formatänderungen normaler Dateifelder können in diesem Zusammenhang nicht vorgenommen werden.

 

   Textfelder können nicht geändert werden. Hat man ein solches Feld falsch definiert, muss man dieses Feld überspringen und ein neues Feld (Leerfeld) definieren (siehe auch Abschnitt 2.6.3).


4.12.9.       Rechengenauigkeit.

 

   Unabhängig vom gewählten Format wird immer mit gleitendem Komma und der maximalen Rechengenauigkeit des Systems (14 Nachkommastellen) gerechnet. Dies kann zu Problemen bei Summenbildungen führen. Hierzu verweisen wir auf den Abschnitt 4.10).

 

4.12.11.       Automatischer Feldüberlauf (overflow).

 

   Ist das Ergebnis einer Berechnung grösser als das entsprechende Feld, wird dies im BASIC normalerweise mit * angezeigt. Das Ergebnis kann nicht erkannt werden.

 

   Der  Listgenerator umgeht dieses Problem, da ein Rechenfeld automatisch links erweitert wird, wenn ein Überlauf entsteht. Diese Möglichkeit wird nur durch den freien Platz in der jeweiligen Zeile begrenzt. Entsteht die Situation, dass dennoch *** anstelle des Ergebnisses angezeigt werden, braucht man nur dafür zu sorgen, dass linksbündig mehr freier Platz zur Verfügung gestellt wird. Das Feldformat braucht nicht geändert werden. Dies gilt auch für die Felder einer Datei.

 

4.13.         Automatische Summenbildung.

 

   Bei der definition einer Liste bildet der Listgenerator selbstständig Summen für die Felder, die für Summenbildungen geeignet erscheinen. Es kann hierbei jedoch passieren, dass 'Äpfel und Birnen' zusammengelegt werden. In einem solchen Falle muss man über die Funktion 3 SORTIEREN UND SUMMENBILDUNG selbst definieren, welche Summen bzw. Zwischensummen gebildet werden sollen.

 

   Der Listgenerator bildet automatisch Summen nach folgenden Kriterien:

 

           1. Numerische Felder.

 

           2. > 4 Ziffern, oder

 

           3. definiert als 4 Worte Variable (maximale Genauigkeit)

 

           4. kein Datumfeld (,6,)

 

           5. kein spezieller Prüfkode (1‑9) für z.B. Schlüsselfelder u.ä.

 

4.15.         Listenformat (Höhe / Breite).

 

   Man kann maximal 80 Zeilen per Seite definieren (72 Zeilen für A4 Format). Innerhalb dieser Grenze können beliebig viele Zeilen definiert werden (jedoch max. Anzahl Zeilen per Seite minus 3). Bitte beachten Sie, dass normalerweise eine 'Zeile' aus Überschrift und Daten besteht, d.h. es werden zwei Zeilen im Ausdruck belegt.

 

   Wird eine Liste auf dem Bildschirm ausgegeben, werden immer 24 Zeilen angezeigt, unabhängig der definierten Seitenlänge (Seitenwechsel über <CR>).

 

   Die Breite einer Liste kann bis zu 177 Stellen betragen, doch ist hier die Breite des Druckers zu berücksichtigen (normalerweise 132 Schreibstellen). A4 Format hat 80 Schreibstellen und entspricht der Anzahl Stellen auf einem Bildschirm.

 

   Definiert man eine Liste > 80 Schreibstellen, werden auf dem Bildschirm immer die letzten 80 Positionen in der Formatzeile angezeigt. Bei einer fertigen Liste > 80 Stellen werden auf dem Bildschirm 2 Zeilen per definierter Listenzeile angezeigt. Da dies die Übersichtlichkeit beeinträchtigen kann, empfehlen wir, dass Listen, die auf dem Bildschirm ausgegeben werden sollen, mit einer Breite von < 81 Stellen definiert werden.

 

   Bei nicht optimierten Systemen werden im Falle, dass die Liste breiter als 80 Stellen ist, die Position > 80 abgeschnitten.


5.           SELEKTIEREN.

 

Mit Hilfe dieser Funktion können bestimmte Datensätze innerhalb einer Datei ausgewählt werden.

 

 

Figur 13 Lieferantenliste, mit Saldo > 500 DM.

 

DATUM:14.01.87 * LIEFERANTENLISTE * PR.14.01.87 SEITE:   1

 

NR      NAME                     VALUTAKODE          SALDO

102     AX & AX LTD.                      0      25.000,00

111     TRAWSOM LTD.                      0       1.000,00

205     SCHIERMACHER GMBH                 1      20.000,00

260     CLORID LTD.                       0       2.000,00

 

 

 

 

6.1.         Normale Anwendung.

 

   Wählt man die Funktion 2, DEFINITION DER SELEKTIONSKRITERIEN, erhält man auf dem Bildschirm eine Übersicht über alle Felder der betreffenden Datei. Die Auswahl der einzelnen Felder erfolgt durch Angabe der Feldnummer.

 

 

Figur 14 Definition der Selektionskriterien.

 

DMS.RAPGEN     1 PREISLISTE                       2......SELEKTIONEN DEFINIEREN

  1 ARTIKELNR               19 @FREI

  2 BEZEICHNUNG             20 @FREI

  3 VERKAUFSPREIS           21 @FREI

  4 EINKAUFSPREIS           22 @FREI

  5 LETZT.EINKAUFSDATUM     23 @FREI

  6 LIEFERANTENNR           24 @FREI

  7 GRUPPENNR               25 @FREI

  8 BESTAND                 26 @FREI

  9 ALTERNATIV LIEFERANT    27 @FREI

 10 FREI                    28 @FREI

 11 @FREI                   29 @FREI

 12 @FREI                   30 @FREI

 13 @FREI

 14 @FREI

 15 @FREI

 16 @FREI

 17 @FREI

 18 @FREI

 

 

GRUPPENNR                   >=3                          <=15

BESTAND                     >=100

FELDNR:8                    MINIMUM:100                  MAXIMUM:

 

 

 

 

 

   Nach Eingabe der Feldnummer gibt man einen unteren und oberen Grenzwert an. Es werden jetzt nur die Datensätze berücksichtigt, die mit ihren Werten innerhalb der angegebenen Grenzen liegen. Man kann auch nur einen Minimalwert oder Maximalwert angeben.

 

   Anschliessend kann man eine weitere Feldnummer angeben, so dass die Datensatzauswahl abhängig ist von mehreren Kriterien bzw. einer Kombination daraus. Beachten Sie bitte, dass es sich hierbei um eine UND Verknüpfung handelt, d.h. beide Kriterien müssen erfüllt sein. ODER Verknüpfungen werden weiter unten behandelt.

 

   Man kann Selektionen auf Feldern, berechneten Werten und Feldern anderer Dateien durchführen.

 

   Ist man mit der Definition der Selektionskriterien fertig, tastet man END bzw. <CR>.

 

6.3.         Löschen von Selektionskriterien.

 

   Wählt man die Funktion 2 nächstes mal, werden die bestehenden Auswahlkriterien automatisch gelöscht und durch neue ersetzt. Tastet man jetzt nur <CR> ohne Definition neuer Kriterien, sind alle bestehenden Auswahlkriterien gelöscht.


6.5.         Auswahlkriterium "ungleich Null".

 

   Gibt man eine untere und obere Grenze an, muss der Wert innerhalb dieser Angaben liegen. Definiert man

 

           MINIMUM:<>0

 

   und keinen oberen Wert, werden nur die Sätze ausgewählt, die in dem entsprechenden Feld einen Wert ungleich Null haben.

 

6.7.         Selektieren auf Basis alphanumerischer Textfelder.

 

   Beachten Sie bitte, dass für alphanumerische Felder die untere bzw. obere Grenze in Anführungszeichen ("nnn") gesetzt werden muss. In älteren Versionen des Listgenerators erfolt dies automatisch durch das System.

 

6.9.         Rechenausdruck im Selektionskriterium.

 

   Feldnr., obere Grenze und untere Grenze kann durch einen Rechenausdruck ersetzt werden, z.B.

 

           FELTNR:#5+#7        MINIMUM: #15*100

 

   Hierdurch kann man auch bestimmen, dass z.B. der Wert eines Feldes grösser sein muss als der Wert eines anderen Feldes.

 

6.11.         Selektion bei Beginn der Liste.

 

   Vor Beginn des Ausdruckens einer Liste kann man angeben, welche Datensätze ausgeschrieben werden sollen.

 

           MINIMUM: #D1        MAXIMUM: #D2

 

   bewirkt, dass man bei Start einer Liste die Grenzwerte für die gewählten Felder eingeben kann. Man kann auch über Rechenregeln einen Text dazusetzen, so dass der Anwender weiss, um welche Felder es sich hierbei handelt. (Der Name eines Leerfeldes entspricht #D1TEXT).

 

6.13.         Selektion auf Teilen eines Feldes.

 

   Möchte man eine Auswahl z.B. nach den ersten drei Ziffern des Feldes Nr. 7 durchführen, gibt man #7(3,3) an (siehe auch Abschnitt, RECHEN MIT TEILEN VON FELDERN,).[3]

 

6.15.         ODER Kriterium in Verbindung mit Berechnungen.

 

   Errechnete Werte können für komplexe Selektionen benutzen werden. Man berechnet dann die Werte in einem Leerfeld, z.B.

 

           #50=0

           IF #7=3 LET #50=1

           IF #7=5 LET #50=1

           IF #9>3 LET #50=0

 

   anschliessend wird das Auswahlkriterium definiert

 

           FELTNR: 50       MINIMUM: 1

 

   Hierdurch selektiert man alle Felder, deren Wert in Feld 7 gleich 3 oder 5 ist, jedoch nur, wenn der Wert in Feld 9 kleiner 3 ist.

 


6.17.         QUICK Selektion.

 

   Diese Funktion kann nur in Verbindung mit Dateien, die über den DATAMASTER erstellt wurden, angewendet werden. Sie kann nicht in Verbindung mit STAR oder NYRUP Dateien benutzt werden, jedoch auch im Zusammenhang mit COMET bzw. DMS eigenen Installationen.

 

   Normalerweise werden  vor dem Selektieren sämtliche Berechnungen durchgeführt, d.h. alle Felder werden erst gelesen und die notwendigen Berechnungen vorgenommen. Über die QUICK Funktion gibt man ein bestimmtes Feld an, welches vor allen anderen als erstes eingelesen wird. Berechnungen u.s.w. werden vorerst nicht vorgenommen. Dieses Feld dient nur dann der Selektierung. Dies erfolgt nicht über das normale READ Statement, sondern über eine spezielle Leseroutine des Listgenerators. Das setzt jedoch voraus, dass das betreffende Feld numerisch und ungepackt ist, und dass bei Installation dem Listgenerator mitgeteilt wurde, wo innerhalb des Satzes (Bytenr.) dieses Feld liegt.

 

   Die QUICK Funktion hat also nur eine Bedeutung bezüglich der Geschwindigkeit. Grosse Listaufgaben mit einfacher Selektion werden hierdurch bis zu 20 mal schneller abgewickelt. Beachten Sie bitte in diesem Zusammenhang die Funktion, GEWICHTETE SUMMEN , die in einem späteren Abschnitt behandelt wird.

 

   Man kann natürlich keinerlei Berechnungen im Zusammenhang mit der QUICK Funktion durchführen.

 

  Die QUICK Funktion wird dadurch aktiviert, dass man bei der Eingabe der Feldnummer QUICK eingibt. Der Listgenerator antwortet mit QUICK SELECTION AKTIVIERT. Anschliessend definiert man auf normale Art und Weise das Auswahlkriterium für ein einfaches numerisches Feld. Man kann maximal 2 QUICK Kriterien per Liste definieren.


7.           Rechenfunktionen.

 

8.1.         Struktur der Rechenfunktionen.

 

   Rechenfunktionen werden zur Berechnung von Feldern, die in einer Liste/Anfrage ausgegeben werden sollen, bzw. zur Selektierung von Datensätzen benutzt.

 

   Durch das Definieren von Rechenregeln schreibt der Anwender im eigentlichen Sinne BASIC Zeilen. Hierdurch erreicht man, dass man über aufgrund der Syntax der BASIC Sprache seine Regeln fast so schreibt, wie man es bei Rechenaufgaben gewohnt ist, z.B. A+B=C. Darüberhinaus kann die mehr komplexen Funktionen im BASIC verwendet werden, wie z.B. Potenzierung, Wurzelberechnungen oder Sinusfunktionen. Der Listgenerator wird laufend mit den Möglichkeiten erweitert, die eine eventuelle neue Betriebssystemversion zulässt.

 

   Natürlich verwendet man nicht nur BASIC. Der Listgenerator erlaubt weit mehr Funktionen. Man kann z.B. mit Feldern einer anderen Datei rechen, indem man einfach vor der Feldnummer die entsprechenden Dateikennung (Dateikurzname) mitangibt. Der Anwender braucht sich nicht um die jeweiligen Formate oder Adressen dieser Felder zu bekümmern. Dies wird ihm vom Listgenerator abgenommen.

 

   Weiterhin sind in dem Listgenerator Funktionen wie Auf/Abrunden, Datumsbehandlung, z.B. Berechnung von Arbeitstagen zwischen zwei angegebenen Tagen, Prüfziffernberechnungen verschiedenster Art u.s.w. integriert.

 

  Berechnete Felder können sowohl zum Selektieren und Sortieren, als auch für weitere Berechnungen oder gedruckten Listen herangezogen werden. Dies ist eine der Stärken des DMS Listgenerators. Man kann z.B. eine Warenliste aufbauen, die nach Lieferanten sortiert, nur die Waren ausschreibt, die in fremder Währung bezogen werden.

 

8.3.         Anwendung des Berechnungsmoduls.

 

   Hat man die Funktion 4, RECHENFUNKTION , gewählt, erscheint folgendes Schirmbild:

 

 

Figur 15 Berechnungen.

 

DMS.RAPGEN     2 LAGERWERTLISTE                4.....KALKULATIONEN DEFINIEREN

  1 ARTIKELNR.              19 @FREI

  2 NAME                    20 @FREI

  3 VERKAUFSPREIS           21 @FREI

  4 EINKAUFSPREIS           22 @FREI

  5 LETZTES KAUFSDATUM      23 @FREI

  6 LIEFRANTENNR            24 @FREI

  7 GRUPPENNR.              25 @FREI

  8 BESTAND                 26 @FREI

  9 ALT.LIEFERANTNR.        27 @FREI

 10 FREIFELD                28 @FREI

 11 @FREI                   29 @FREI

 12 @FREI                   30 @FREI

 13 @FREI

 14 @FREI

 15 @FREI

 16 @FREI

 17 @FREI

 18 @FREI

 

 

BERECHNUNGEN EINGEBEN WIE Z.B: #60=#21+#22 , PROCENT VIE Z.B #61=#62%#63

#DD=DATUM, #PD=PRO DATUM, #D1=DATEN, #DA1=ALPHA DATEN, WANN=KALK.TOTAL/SORT

KALKULATION ?

 

 

 

 

 

   Bei der Definition einer Liste über die Funktion 1 hat man z.B. angegeben, dass eines Leerfelder, welches als numerisches Feld mit einem Namen definiert wurde, in der Liste ausgeschrieben werden soll.

 

   Man kann jetzt die gewünschte Rechenregel eingeben, z.B.

 

           #50=#21*#22

 

   D.h. Feld 50 beinhaltet das Ergebnis aus der Multiplikation von Feld 21 und Feld 22. Bestätigt man diese Eingabe, übersetzt der Listgenerator die eingegebene Format in Klartext und ersetzt die Feldnummern mit den entsprechenden Feldnamen. Man wird nocheinmal gebeten, diese Eingabe zu bestätigen.


 

Figur 16 Eingabe einer Rechenregel.

 

DMS.RAPGEN     2 ARTIKELWERTLISTE              4.....KALKULATIONEN DEFINIEREN

  1 ARTIKELNR.              19 @FREI

  2 BEZEICHNUNG             20 @FREI

  3 VERKAUFSPREIS           21 @FREI

  4 EINKAUFSPREIS           22 @FREI

  5 LETZTES KAUFDATUM       23 @FREI

  6 LIEFERANTENNR           24 @FREI

  7 GRUPPENNR.              25 @FREI

  8 BESTAND                 26 @FREI

  9 ALT.LIEFERANTNR.        27 @FREI

 10 FREIFELD                28 @FREI

 11 LAGERWERT               29 @FREI

 12 @FREI                   30 @FREI

 13 @FREI

 14 @FREI

 15 @FREI

 16 @FREI

 17 @FREI

 18 @FREI

 

BERECHNUNGEN EINGEBEN WIE Z.B: #60=#21+#22 , PROCENT VIE Z.B #61=#62%#63

#DD=DATUM, #PD=PRO DATUM, #D1=DATEN, #DA1=ALPHA DATEN, WANN=KALK.TOTAL/SORT

LAGERWERT=BESTAND*EINKAUFSPREIS

KALKULATION: #11=#8*#4

                                                                 OK (J/N) ?

 

 

 

 

   Nach Bestätigung der eingegebenen Zeile wird das entsprechende Feld hervorgehoben dargestellt, und man kann mit der nächsten Eingabe fortsetzen. Man hat somit immer eine Übersicht über die bereits benutzen Felder.

 

8.5.         Ändern einer Berechnung.

 

   Wählt man die Rechenfunktion für eine Liste, für die bereits die jeweiligen Rechenregeln definiert sind, werden auf dem Bildschirm die berechneten Felder mit den Rechenregeln einzeln angezeigt. Man kann jetzt den Inhalt dieser Felder entweder bestätigen oder verändern.

 

 

Figur 17 Änderung einer Berechnung.

 

DMS.RAPGEN     2 LAGERWERTLISTE                  4.....KALKULATIONEN DEFINIEREN

  1 ARTIKELNR.              19 @FREI

  2 NAME                    20 @FREI

  3 VERKAUFSPREIS           21 @FREI

  4 EINKAUFSPREIS           22 @FREI

  5 LETZTES KAUFDATUM       23 @FREI

  6 LIEFERANTENNR           24 @FREI

  7 GRUPPENNR               25 @FREI

  8 BESTAND                 26 @FREI

  9 ALT.LIEFERANTNR.        27 @FREI

 10 FREIFELD                28 @FREI

 11 LAGERWERT               29 @FREI

 12 @FREI                   30 @FREI

 13 @FREI

 14 @FREI

 15 @FREI

 16 @FREI

 17 @FREI

 18 @FREI

 

BERECHNUNGEN EINGEBEN WIE Z.B: #60=#21+#22 , PROCENT VIE Z.B #61=#62%#63

#DD=DATUM, #PD=PRO DATUM, #D1=DATEN, #DA1=ALPHA DATEN, WANN=KALK.TOTAL/SORT

LAGERWERT=BESTAND*EINKAUFSPREIS

KALKULATION: #11=#8*#4

                                                                 OK (J/N/I) ?

 

 

 

 

   Für jedes Feld wird um folgende Eingabe/Bestätigung gebeten: OK ? (J/N/I/xx)

 

            J = Ja, der Inhalt des Feldes wird bestätigt.

            N = Nein, der Inhalt des Feldes wird gelöscht.

            I = Insert, die Zeile wird gelöscht, und man kann eine neue Zeile eingeben.

           xx = Anzahl Zeilen, die als OK bestätigt werden.

 

   Hat man die bestehenden Zeilen abgearbeitet, können weitere Zeilen eingegeben werden. Tastet man hier <ESC>, dann beachten Sie bitte, dass alle Änderungen annuliert werden, d.h. die einzelnen Felder behalten ihren ursprünglichen Inhalt.


8.7.         Operant / Operator.

 

   Da die eingebenen Rechenregeln (Zeilen) in BASIC übersetzt werden, können alle BASIC Funktionen verwendet werden. Man kann somit recht komplexe Rechenregeln aufbauen. Folgende Operatoren stehen zur Verfügung:

 

           + = plus

           ‑ = minus

           * = mal

           / = geteilt durch

           ­ = Potenzierung

 

   Die Berechnung erfolgt normalerweise in folgender Reihenfolge:

 

   Zuerst alle Potenzierungen, danach Multiplikationen und Division, und zuletzt Addition und Subtraktion.

 

   Diese Reihenfolge kann durch Benutzung von Klammern () verändert werden.

 

   Als Operanten werden normalerweise die Felder benutzt, indem man ein Nummernzeichen vor der eigentlichen Feldnummer angibt, z.B. #7 = Feld nr. 7. Will man ein Feld einer an deren Datei benutzen, gibt man vor dem Nummernzeichen den Dateikurznamen der jeweiligen Datei an, z.B. KU#7 = Feld Nr. 7 in der Datei KU.

 

  Als Operant kann natürlich auch eine Konstante eingesetzt werden, z.B. 100. Beachten Sie bitte, dass das Dezimalkomma immer als Punkt (.) geschrieben werden muss, z.B. 10.47.

 

   Für das Resultat einer definierten Berechnungen benutzt man normalerweise immer ein Leerfeld.

 

8.9.         Prozentberechnungen und Divisionen.

 

   Eine Division ist in sofern etwas besonders, da man in BASIC unter keinen Umständen mit 0 dividieren darf. Man muss daher bei jeder Division erst prüfen, dass der Divisor ungleich 0 ist, es sei denn, man dividiert mit einer Konstanten.

 

   Da die Division typisch bei Prozentberechnungen verwendet wird, ist der Listgenerator mit einem extra Operator, nämlich %, ausgerüstet.

 

   Soll das Feld 50 das Ergebnis der Berechnung 'Feisld 21 in Prozent von Feld 22' beinhalten, wird folgende Rechenregel aufgebaut:

 

           #50=#21%#22

 

   Diese für den Anwender sehr einfache Zeile wird vom System in folgende zwei Zeilen umgewandelt:

 

           #50=0

           IF #22<>0 LET #50=#21*100/#22

 

   d.h. erst wird das Feld 50 gelöscht, anschliessend wird die Prozentrechnung durchgeführt, sofern das Feld 22 ungleich Null ist.

 

   Will man selbst andere Divisionen dieser Art durchführen, muss man sich absichern, dass der Divisor ungleich Null ist, da man sonst den BASIC Fehler 16 in der entsprechenden Zeile erhält.

 

   Man sollte beachten, dass das System wesentlich schneller eine Multiplikation als eine Division ausführen kann. Wird empfehlen deshalb, statt

 

           #50=#21/4

 

   folgenderweise zu rechnen:

 

           #50=#21*0.25

 

   Der % Operator darf nicht in Verbindung mit den Funktionen Aufrunden oder Abrunden verwendet werden. In diesem Falle muss die Berechnung über zwei Zeilen erfolgen.


8.11.         Rechnen mit Teilen von Feldern.

 

   Ab und zu kann es notwendig sein, mit Teilen von Feldern zu rechnen. Der Listgenerator bietet diese Möglichkeit an.

 

           #7(3,4) bedeutet: 3. und 4. Zeichen/Ziffer in Feld Nr. 7

 

           KU#15(5,8) ist das Zeichen/Ziffer 5 bis 8 im Feld 15 der Datei KU.

 

   Man kann also eine Berechnung von dem Wert eines Teilfeldes abhängig machen, z.B.

 

           IF #7(3,3)=5 LET .....

 

   d.h. wenn die dritte Ziffer im Feld 7 = 5 ist, dann......

 

   Es ist auch möglich, einzelne Ziffern direkt in eine Berechnung miteingehen zu lassen:

 

           #50=#21*#7(3,3)+#21

 

   Bei alphanumerischen Feldern kann man ein oder mehrere Zeichen auf bestimmte Positionen innerhalb des Feldes einsetzen, z.B.

 

           #15(3,4)="AB"

 

   Es wird die Zeichenfolge AB in Feld 15, Position 3 und 4, eingesetzt.

 

   Bitte beachten Sie, dass bei numerischen Feldern nur Vorkommastellen als Teilfelder für eine Berechnung herangezogen werden können. Der Grund hierfür liegt darin, dass das System die Ziffernauswahl über 10er Potenzen durchführt.

 

8.13.         Alphanumerische Textfelder.

 

   Folgende Regeln gelten speziell für alphanumerische Textfelder:

 

   1.) Es kann nicht mit alphanumerischen Textfeldern gerechnet werden. Doch kann man ein Leerfeld gleich einem Textfeld setzen (ohne Veränderungen), und dann mit diesem Leerfeld Berechnungen anstellen.

 

   2.) Textkonstanten müssen immer zwischen Anführungszeichen ( "....." ) angegeben werden.

 

   3.) Man kann in ein alphanumerisches Textfeld einen Text direkt einsetzen:

        #15(3,7)="ABCDE"

 

   4.) Setzt man einen Text direkt in ein Feld ein, muss darauf geachtet werden, dass der Text mindestens die gleiche Länge hat wie die dafür angegebene Anzahl Positionen, da sonst der nachfolgende Text entsprechend nach links verschoben wird. Deswegen empfehlen wir, in einem solchen Falle immer eine Anzahl von Leerstellen nach dem Text mit anzugeben, z.B.

         #15(2,5)="ABCD     "

Dieses gilt besonders beim Zurückschreiben von Texten (siehe Abschnitt ‑ZURÜCKSCHREIBEN VON FELDERN‑). Anstelle von einzelnen Leerzeichen können Sie auch die Variable S9$ (=128 Leerzeichen) angeben, z.B.

        #15(2,5)"ABCD",S9$.

 

   5.) Man kann alphanumerische Felder miteinander durch Komma ( , ) kombinieren. Dies ist nicht möglich bei rein numerischen Feldern.

 

   Schreibt man seine Felddefinitionen aus, kann man leicht erkennen, welche Felder als alphanumerische, und welche als numerische Felder definiert sind. Bei alphanumerischen Feldern werden A's ausgegeben, und bei numerischen Feldern # (Nummerzeichen) oder ‑.


8.15.         Spezialfelder.

 

   Wie weiter oben angeführt, können Felder in Verbindung mit Berechnungen folgendermassen angegeben werden:

 

           #7         Feld Nr. 7.[4]

           KU#15    Feld Nr. 15 in der Datei KU.[5]

 

   Neben  diesen 'normalen' Feldern gibt es Reihe von speziallen Feldern, die im folgenden beschrieben werden.

 

8.16.1.       #DD Tagesdatum.

 

   Das Tagesdatum wird unmittelbar nach Start des Programmes eingegeben.[6]

 

8.16.3.       #PD Per Datum.

 

   Dieses Datum wird als zweiter Wert unmittelbar nach dem Tagesdatum eingegeben.[7]

 

8.16.5.       #Dx Parameter.

 

   Bis zu 7 verschiedene Parameter können hierüber vor Start des Listenausdruckes eingegeben werden.[8] Diese Daten können z.B. für die Umrechnung von Währungen, als konstante Grenzwerte u.ä. verwendet werden. Es können durch Definition von Leerfeldern diesen Parametern auch Namen zugeordnet werden, indem man zum Beispiel eine 'Berechnung' wie folgt definiert:

 

            #50=#D1          FELD 50: NAME: #D1TAGESKURZ

 

8.16.7.       #DAx alphanum. Parameter.

 

   Diese Felder entsprechen denen unter Pkt. 4.8.3, jedoch handelt es sich hierbei um alphanumerische Felder. Man kann max. 80 Zeichen eingeben.[9]

 

8.16.9.       #PP Seitennummer.

 

   Über dieses Feld hat man Zugang zur Zeitennummer (für evt. Berechnungen.[10]

 

8.16.11.       #OK Status nach Lesen einer anderen Datei.

 

   Nach Lesen eines Feldes in einer anderen Datei (READ (KU)), kann man den Status abfragen und dadurch evt. weitere Schritte steuern.[11]

 

           IF #OK=0 LET #7=1    (Lesevorgang fehlerfrei)

           IF #OK>0 READ (LE)   (letzter Lesevorgang fehlerhaft)

 

8.16.13.       #SC Bildschirmnummer.

 

   Hierüber können Berechnungen von dem Bildschirm der das Programm gestartet hat, abhängig gemacht werden.[12]


8.16.15.       #NIVEAU Nr. der Summenebene.

 

   Hier ist es möglich, Berechnungen von der Ebene der Summenbildung, in der man sich z.Zt. befindet, abhängig zu machen, doch nur, wenn in der Funktion 3 angegeben wurde, dass die Summen vor Beginn des Ausdruckes errechnet werden sollen.

 

   Eine normale Zeile hat entspricht der Ebene 0, die erste Summe der Ebene 1 u.s.w.

 

   Dieses Feld wird normalerweise nur in sehr komplexen Listen verwendet.[13]

 

8.16.17.       #GRUPPE Gruppennummer Summe.

 

   Dieses Feld wird normalerweise nur in Verbindung mit berechneten Summen benutzt, wo jeder Summe ein Text zugeordnet werden soll, z.B.

 

           IF  #GRUPPE=1 LET #50="TEXT1"

           IF  #GRUPPE=1 LET #50="TEXT2"

 

   Gewöhnlich benutzt man hierfür das Feld, über das die Summenbildung gesteuert wird.

 

8.16.19.      Arbeitsfelder.

 

   Wie gesehen, enthält der Listgenerator eine Reihe von Arbeitsfeldern, die man verwenden kann, z.B. zum Aufruf besonderer Routinen.

 

   Im Listgenerator sind eine Reihe von  Funktionen eingebaut, die in den meisten Fällen, wo ansonsten solche Arbeitsfelder benutzt werden müssen, dem Anwender die manchmal doch komplizierte Arbeit abnehmen können. Hier kann z.B. das Rechnen mit Teilen von Feldern genannt:

 

           #7(3,4)                anstelle von

           T2$=#7 USING "######" und #50=T2$(3,4)

 

   In bestimmten Fällen kann es jedoch von Vorteil sein, solche Arbeitsfelder zu verwenden, z.B. um einen speziellen Schlüssel in T2$ aufzubauen, oder um anschliessend die Datei mit READ (KU),T2$ zu lesen.

 

   Der Listgenerator hat folgende Arbeitsfelder:

 

           T2$........256 Zeichen Text

           T9$........128 Zeichen Text

           R$..........32 Zeichen Text (für Schlüssel)

           S9$........128 Leerzeichen (blanks) (darf nicht verändert werden)

           T3...........4 Worte langes num. Arbeitsfeld

           T3(1)........4 Worte langes num. Arbeitsfeld

 

8.17.

4.9.          REM Anmerkungen.

 

   Durch Einfügen von REM Zeilen in eine Berechnung kann man in Klartext die jeweiligen Rechenregeln angeben. Dies ist wichtig für eventuell spätere Änderungen oder Erweiterungen in einer Liste.

 

   Beispiel: REM Berechnung der Fälligkeit.

 

   Anmerkung: BASIC benutzt nur Kennzeichnung von Kommentaren das Zeichen /*. Diese Funktion kann im Listgenerator nicht verwendet werden, da das System selbst diese Möglichkeit benutzt, um die von Anwender eingegebenen Rechenregeln (Quelle) in BASIC zu konvertieren.


8.19.        Spezielle Funktionen.

 

   Im Listgenerator sind eine Reihe von speziellen Funktionen enthalten, wie z.B. Aufrunden, Abrunden, Datumsberechnung u.s.w. Alle Datumsroutinen berücksichtigen natürlich die Schaltjahre.

 

8.20.1.

4.10.1.      FNR Aufrunden AUF zwei Dezimalstellen.

 

           FNR (123.456)=123.45

 

   Grundsätzlich sollte man alle Ergebnisse einer Multiplikation bzw. Division aufrunden, da ansonsten das Ergebnis die maximale Anzahl Nachkommestellen erhält. Hierdurch können Rundungsdifferenzen entstehen. Anstelle von

 

           #50=#20*#21/100       sollte man schreiben

           #50=FNR(#20*#21/100)

 

   Das % Zeichen kann hier nicht verwendet werden. Es muss deshalb heissen

 

           #50=#21%#22

           #50=FNR(#50)

 

8.20.3.

4.10.2.      FNH  Abrunden auf zwei Dezimalstellen.

 

   Gleiche Vorgehenweise wie unter 4.10.1, jedoch wird auf ganze Zahlen abgerundet.

 

8.20.5.

page \* arabic304.10.3.      FND  Umstellen des Datums.

 

           FND(TTMMJJ)=JJMMTT

 

   Mit Hilfe dieser Funktion stellt man die Datumstellen von TTMMJJ auf JJMMDD um. Dies ist wichtig, wenn man nach dem Datum sortieren oder selektieren will, da das System das Datum als normale Zahl behandelt.

 

   860101 ist grösser als 861231, jedoch ist

   10186      kleiner als 311286

 

8.20.7.

4.10.4.      FNA Anzahl Tage zwischen Jahr 1900 und TTMMJJ.

 

   Dieser Wert alleine kann zu nichts benutzt werden. Rechnet man aber den Unterschied zwischen zwei Daten, z.B. in #20 und #21

 

           #50=FNA(#20)‑FNA(#21)

 

   erhält man die Anzahl Tage zwischen diesen Daten. Dies kann z.B. für die Berechnung von ZC insen u.s.w. benutzt werden.

 

   Beachten Sie bitte, dass die Daten in der Form TTMMJJ vorhanden sein müssen. Ist dies nicht der Fall, müssen sie in der Berechnung umgedreht werden, z.B.

 

           #50=FNA(FND(#20))‑FNA(FND(#21))

 

8.20.9.

date \@ "MMMM d, yyyy"januar 10, 20084.10.5.      FNB Umrechnen der Tage ab Jahr 1900 in Datum.

 

   Diese Funktion alleine ergibt auch keinen Sinn, kann aber nützlich sein, um zu einem Ausgangsdatum eine bestimmte Anzahl Tage zu legen, z.B.

 

           #50 = FNB(FNA(#20)+10)

 

   Man erhält dann in Feld 50 das Datum aus Feld 20 plus 10 Tage.


8.20.11.

4.10.6.      FNU Umrechnen eines Datums in den Wochentag.

 

   Das Ergebnis dieser Berechnung ist 0 für Sonnabend, 1 für Sonntag .... und 6 für Freitag.

 

8.20.13.

4.10.7.      FNV Umrechnen eines Datums in Kalenderwoche.

 

   Mit Hilfe dieser Funktion wird ein Datum in die entsprechende Kalenderwoche umgerechnet, z.B.

 

           FNV(010486)=8618, also Woche 18 in 1986

 

   Hierüber können Listen in Kalenderwochen sortiert werden.

 

   Die Berechnung erfolgt nach der Regel, dass der erste Donnerstag eines Jahres die erste Kalenderwoche bestimmt.

 

8.20.15.

4.10.8.      Speichern der Spezialfunktionen.

 

   Die im Listgenerator integrierten Spezialfunktionen sind in der Datei DMS.RAPGEN.S6A gespeichert, und werden bei Erstellen einer Liste in das entsprechende Programm übernommen. Man kann diese Datei mit eigenen Funktionen erweitern, doch muss man beachten, dass bei der Lieferung einer neuen Version des Listgenerators diese Funktionen nicht mit enthalten sind.

 

8.21.

4.11.        BASIC Funktionen.

 

   Im Listgenerator sind eine Reihe nutzbringender BASIC Funktionen integriert. Die wichtigsten werden im folgenden beschrieben. Im übrigen verweisen wir auf entsprechende BASIC Handbücher.

 

8.22.1.      ABS Absolutwert einer Zahl.

 

           ABS (#7) bedeutet Inhalt Feld 7 ohne Vorzeichen.

 

8.22.3.      SQR Quadratwurzel.

 

           SQR (#7) gibt die Quadratwurzel des Wertes in Feld 7.

 

8.22.5.      FRA Nachkommestellen eines Feldes.

 

           FRA (123,45) ergibt 0.45.

 

8.22.7.      INT Vorkommestellen eines Feldes.

 

           INT (123,45) ergibt 123.

 

8.22.9.      SGN Vorzeichen eines Feldes.

 

           SGN (#7) ergibt das Vorzeichen des Feldes 7.

 

8.22.11.      NOT Logische Negation.

 

           NOT (#7) gibt 0, sofern der Feldinhalt ungleich 0 ist, und 1, wenn der Feldinhalt gleich 0 ist.

 

8.22.13.      LEN Länge eines Textes (string).

 

           LEN(T2$) gibt die Länge der Textfolge (string) T2$ an.


8.22.15.      IF Bedingung.

 

   Mit Hilfe einer vorangestellten Bedingung kann man seine nachfolgenden Berechnungen steuern, z.B. wird ein Wert nur berechnet, wenn ein bestimmter Kode gleich 10 ist.

 

   Man sollte möglichst immer vor einer solchen Operation das Resultatsfeld löschen, da, falls die Bedingung nicht erfüllt ist, das Resultatsfeld den Inhalt der vorherigen Berechnung beibehält. Dies kann zu falschen Summenbildungen u.s.w. führen.

 

   Beispiel:

 

           #50=0

           IF #7=2 LET #50=#21%#22

 

   Beachten Sie bitte, dass der Ausdruck LET in diesem Falle nicht weggelesen werden darf.

 

   Man kann auch mehrere Bedingungen aneinander reihen:

 

           IF #7>1 IF #7<5 LET #50=#21%#22

 

   In diesem Beispiel müssen beide Bedingungen erfüllt sein, bevor eine Rechenoperation ausgeführt wird. Es handelt sich hierbei um eine UND Verknüpfung. Will man dagegen eine ODER Verknüpfung definieren, muss man schreiben:

 

           IF #7>2 LET #50=1

           IF #7=5 LET #50=1

 

   Eine solche Bedingung kann auch im Zusammenhang mit dem Lesen anderer Dateien benutzt werden:

 

           IF #7=2 READ(KU)

 

   Hier wird die Datei KU nur gelesen, wenn der Inhalt des Feldes 7 den Wert 2 hat.

 

8.22.17.      Verknüpfungsoperatoren.

 

   Bei Selektionen und bei bedingten Operationen (IF) können folgende Operatoren verwendet werden:

 

           =   gleich

           >   grösser als

           <   kleiner als

           >=  grösser oder gleich

           <=  kleiner oder gleich

           <>  ungleich von

 

   BASIC besitzt keine logischen Operatoren wie UND/ODER.

 

   Man kann direkt den Wert eines Feldes abfragen:

 

           IF #7 LET #50=5

 

   Hier also, wenn Feld 7 ungleich 0, dann .......

 

   oder    IF NOT #7 LET #50=10      wenn Feld 7 gleich 0, dann ......


8.22.19.     WANN soll eine Rechenoperation ausgeführt werden.

 

   Dieses  Kommando wird benutzt, wenn mehrere Möglichkeiten der Berechnung bestehen, z.B. mehrmaliger Durchlauf eines Programmen bzw. Programmteiles. Als Beispiel sei hier folgendes genannt: Man hat definiert, dass in einem zweiten Durchlauf gewichtete Summen gebildet werden sollen, werden diese Berechnungen sowohl während des Sortierens (erster lauf) angestellt.

 

   Man gibt in der Berechnungszeile an:

 

           WANN               man wird anschliessend gefragt

           RECHNE IM LAUF:    0=Beide, 1=Erster, 2=Zweiter

           RECHNE SUMME:      0=Immer, 1=Keine,  2=Nur Summe

 

   Hierdurch kann man also steuern, dass, bis zum nächsten WANN, nur unter bestimmten Umständen Berechnungen angestellt werden, z.B. dass Summen für gewichtete Summen nur nicht in fremde Währungen umgerechnet werden.

 

  Eine andere typische Anwendung dieses Kommandos ist, dass während eines Sortierlaufes keine Zugriffe auf andere Dateien erfolgen sollen, da man hierdurch Durchlaufzeiten sparen kann.

 

8.22.21.

4.11.11.     ZUERST, ZULETZT, NORMAL und NACH.

 

   Durch Eingabe des Kommandos ZUERST erreicht man, dass der Listgenerator Rechenzeilen aufbaut, die vor Lesen des ersten Datensatzen aus der Datei ausgeführt werden.[14]

 

   Gibt man ZULETZT an, werden  die entsprechenden Berechnungen nach Behandlung sämtlicher Datensätze und Errechnen der Summen ausgeführt.[15]

 

   Bei Angabe von NORMAL kehrt man in den normalen Rechenzustand zurück, d.h. dass die Rechenzeilen unmittelbar nach Einlesen eines jeden Satzes, doch vor einem Sortieren, Selektieren oder Summenbilden, durchgeführt werden.[16]

 

  Mit dem Kommando NACH kann man Berechnungen definieren, die nach dem Selektieren, d.h. nur für die Sätze, die dem Selektionskriterium entsprechen, ausgeführt werden sollen.[17]

 

   Diese vier Kommandos werden normalerweise nur in sehr komplexen Listen benutzt. Hierbei kann das Kommando ZUERST zur Dimensionierung eigener Variablen benutzt werden. Das Kommando NACH kann mit Vorteil dazu verwendet werden, die Bearbeitungszeit für Listdurchläufe erheblich zu reduzieren.


8.22.23.     LOAD Kommando.

 

   Neben den genannten BASIC Funktionen beinhaltet der Listgenerator eine Reihe von speziellen Unterprogrammen, die durch Angabe in einer Rechenzeile angesprochen werden können, z.B. LOAD CHECK mit einer Reihe von Parametern und einer nachfolgenden Zeile mit GOSUB‑Kommandos.

 

  Bei einem solchen Kommando wird die Textdatei DMS.RAPS.xxxx geladen, wodurch man Zugang zu den jeweiligen Unterprogrammen erhält. In den folgenden Abschnitten werden die einzelnen Routinen, die z.Zt. implementiert sind, beschrieben.

 

8.22.24.1.

4.11.12.1.   OCR Prüfziffer für Postüberweisungen (Giro).

 

           1. LOAD CHECK

           2. T2$=#1 USING "###############"

           3. GOSUB 4200

           4. #50=T2$

 

   Diese Zeilen bewirken folgendes:

 

   1. Die Routine für die Berechnung der Prüfziffern wird aktiviert.

 

   2. Der Parameter T2$ wird so definiert, dass der Feld 1 ein numerisches Feld mit der Länge 15 ist (z.B. Kundennummer).

 

   3. Die Prüfziffer Routine wird aufgerufen.

 

   4. Das Ergebnis in Feld T2$ wird in das Feld 50 übertragen und kann anschliessend z.B. auf einer Überweisung ausgedruckt werden.

 

   Die Routine liest also den Parameter T2$, ersetzt alle Leerstellen mit Null und ergänzt den Wert mit der errechneten Prüfziffer (Modulus 10 mit Wichtung 2121 usw.).

 

8.22.24.3.

4.11.12.2.   CHEX Modulus 11 Prüfung.

 

          1. LOAD CHEX

          2. T2$=#1 USING "#########"

          3. T9$="090507020506090701"

          4. GOSUB 4200

          5. #50=T2$

 

   Diese Zeilen bedeuten:

 

   1. Die Routine für die Modulus 11 Berechnung wird aktiviert.

 

   2. Die Parameter für T2$ werden entsprechend dem Feld 1 gesetzt (z.B. Kundennummer).

 

   3. Im Feld T9$ werden die Parameter entsprechend der Wichtung für die Prüfzifferberechnung gesetzt, nämlich: 9 * 1.Ziffer +5 * 2.Ziffer + ..... 1*9 Ziffer

 

   4. Die Prüfzifferroutine wird aufgerufen.

 

   5. Das Ergebnis wird aus Feld T2$ in das Feld übertragen.

 

   Beachten Sie bitte, dass die Modulus 10 und Modulus 11 Routine nicht gleichzeitig in der gleichen Liste benutzt werden dürfen, da diese  Routinen die gleichen Zeilennummern in Programm verwenden.

 

   Die Modulus 11 Prüfziffer wird in der Regel von Banken und Sparkassen verwendet.


8.22.24.5.

page \* arabic514.11.12.3.   ARB Berechnung von Arbeitstagen.

 

           1. LOAD ARB

           2. T3=#PD

           3. T3(1)=#20

           4. GOSUB 4220

           5. #50=T3

 

   Diese Zeilen bedeuten:

 

   1. Die Routine für die Berechnung der Arbeitstage wird aktiviert.

 

   2. Der Parameter T3 wird entsprechend dem eingebenen Tagesdatum aufgebaut.

 

   3. Der Parameter T3(1) entspricht dem Feld 20, welches ein Datum in der Form TTMMJJ enthält (Annahme).

 

   4. Die Berechnungsroutine wird aufgerufen.

 

   5. Das Ergebnis wird aus Feld T3 in das numerisches Feld 50 übertragen.

 

   Die Routine berechnet zuerst die Anzahl Tage zwischen den beiden angebenen Daten (in T3 und in T3(1)). Anschliessend werden die Sonnabende und Sonntage abgezogen. Danach wird in einem internen Kalender nachgeschlagen. Dieser Kalender enthält die variablen ganzen und halben Feiertage, die nicht auf einen Sonnabend oder Sonntag fallen. Die Anzahl dieser Feiertage innerhalb des angegebenen Intervalles werden abgezogen.

 

   Der Interne Kalender kann den Erfordernissen in der verschiedenen Ländern/Firmen angepasst werden (Datei DMS.RAPS.ARB). Beachten Sie bitte, dass eine von DMS gelieferte neue Version des Listgenerators diese Änderungen nicht enthält.

 

8.22.24.7.

4.11.12.4.   NAME Auswahl Vor/Nachname.

 

   Sofern eine Datei mit normalen Namensfeldern, d.h. Vorname gefolgt von Nachname, definiert ist, kann dies dann Probleme geben, wenn man eine Liste nach Namen sortieren will, da man hierfür in der Regel den Nachnamen benutzen will. Dieses Problem kann durch folgende Routine gelöscht werden:

 

          1. LOAD NAME

          2. T2$=#2

          3. GOSUB 4220

          4. #50=T2$

 

   1. Die Namenroutine wird aktiviert.

 

   2. Der Parameter T2$ wird gleich dem Feld 2 (Name) gesetzt.

 

   3. Das Unterprogramm wird aufgerufen.

 

   4. Das Ergebnis wird aus T2$ in das Feld 50 überführt. Es kan jetzt nach Feld 50 sortiert werden.

 

   Die Routine konvertiert "Vorname Nachname" in "Nachname, Vorname" und übergibt das Ergebnis in T2$.

 

  In dieser Konvertierung werden die am meisten benutzen Abkürzungen, wie Fr., Hr., Frl., AG, KG, GmbH, ignoriert. Ebenso werden vorangestellte Leerstellen übergangen.

 

  Darüberhinaus werden folgende weitere Variablen bereitgestellt:

 

           T2$(101) = Vorname Nachname

           T2$(201) = Vorname

           T2$(301) = Nachname


8.22.25.

date \@ "MMMM d, yyyy"januar 10, 20084.11.13.     ¬ Berechnungen mit festen Zeilennummern.

 

   Diese Funktion wird in der Regel nur in Zusammenhang mit sehr komplexen Aufgaben benutzt, und erfordert, dass der Anwender einen sehr genauen Überblick über das generierte Listprogramm hat.

 

  Der Listgenerator bildet normalerweise für die Berechnungen Unterprogramme in den Zeilen 5200 bis 5299. Mit Hilfe der Funktion ¬xxxx kann der Anwender eine Rechenzeile an eine bestimmte Stelle einfügen und eine bereits bestehende Kommandozeile überschreiben.

 

  Diese Funktion gibt auch die Möglichkeit, eigene Berechnungen an den Anfang des generierten Programmes zu setzen, z.B. DIM Variable in den Zeilen 1000 bis 1099.

 

8.22.26.1.   Festhalten des Index.

 

   ¬1000 R1(0,2)=2

   Hierdurch wird der Index auf 2 gesetzt, unabhängig davon, was in START VON angegeben wurde.

 

8.22.26.3.   Festhalten der niedrigsten Summenebene.

 

   ¬1001 X0(15)=1

   Die niedrigste Summenebene wird auf 1 gesetzt, d.h. es werden keine Spezifikationen der Liste ausgegeben, gleichgültig, was der Anwender am Anfang gewählt hat.

 

8.22.26.5.   Festhalten von Start/Stop.

 

   ¬1002 R1$="4711"

   ¬1003 R2$="4712"

   ¬1004 R3$=R1$

   Diese drei Zeilen bewirken, dass das Programm immer in Intervall Zeilennr. 4711 bis 4712 abläuft.

 

8.22.27.     Schreiben in eine Datei.

 

   In der Regel ist es für den Anwender nicht möglich, mit dem Listgenerator in eine Datei zu schreiben, da das Risiko, die bestehende Installation zu zerstören, zu gross ist.

 

   Die Ausname bilden jedoch die Dateien, die der Anwender mit Hilfe des DMS Dateipflegeprogramms DATAMASTER selbst eingerichtet hat. Hier wird ein Zurückschreiben zugelassen (Password geschützt).

 

 Es gilt generell, dass, wenn der Programmierer bei der Installation zusammen mit dem READ Kommando ein entsprechendes WRITE Kommando eingefügt hat, diese auch ausgeführt werden. Man sollte hier sehr vorsichtig sein, und man wird normalerweise nicht allen Felder ein WRITE Kommando zuordnen. Z.B. wird man in der Regel nicht zulassen, dass das Feld 'Saldo' überschrieben werden kann. Es kann jedoch sehr sinnwoll sein, den Mahnkode beim Ausschreiben einer Mahnliste um 1 zu erhöhen.

 

   Das Zurückschreiben eines Feldes erfolgt dadurch, dass man anstelle mit einem Freifeld mit dem 'richtigen' Feld innerhalb eines Dateisatzes rechnet. Z.B. bewirkt #7=#7+1, dass der Mahnkode in Feld 7 für die Sätze, die ausgegeben werden, um 1 erhöht wird.

 

  Es gibt keine Möglichkeit, Indexfelder durch Zurückschreiben zu verändern. Führt man eine Rechenoperationen auf einem Indexfeld durch, wird der Inhalt in dem entsprechenden Datensatz inkonsistent, und der DATAMASTER weist einen jeden Versuch ab, solche Schlüsselfelder zu ändern oder zu löschen.

 

   Es ist z.Zt. nicht möglich, fremde Dateien über den Listgenerator aufzubauen. Man hat also nur die Möglichkeit mit den Dateien zu arbeiten, die bei der Installation definiert sind. Ein Zurückschreiben kann nur in die Hauptdatei erfolgen.

 

  Die Möglichkeit des Zurückschreibens in eine Datei, die mit dem DATAMASTER aufgebaut wurde, muss bei der Definition der Liste/Anfrage festgelegt werden. Dies erfolgt, indem man nach dem Dateikurznamen ein W angibt, z.B. KU,W. Hierdurch wird eine andere Textdatei für das READ Kommando benutzt. Gleichzeitig wird die Liste/Anfrage mit einem Password geschützt.


9.           Mehrere Dateien.

 

10.1.         Generell.

 

   Einer Liste ist grundsätzlich immer eine Hauptdatei zugeordnet. In den meisten Fällen ist dies auch ausreichend. Aus dieser Datei können einzelne Felder durch Angabe einer Feldnr. gedruckt, berechnet, summiert, sortiert und selektiert werden.

 

   Ein Feld wird z.B. als #7 angegeben. Da der Listgenerator weiss, dass es sich hierbei um ein Feld der zugehörigen Hauptdatei handelt, sind weitere Angaben überflüssig. Will man jedoch Felder fremder Dateien ansprechen, muss die Feldnummer mit dem Dateikurznamen der fremden Datei ergänzt werden, z.B. KU#7, also Feld 7 in der Datei KU.

 

   Felder fremder Dateien können immer auch dann angegeben werden, wo Felder der eigenen Hauptdatei zugelassen sind, d.h. man kann u.a. nach Feldern einer fremden Datei sortieren oder Felder einer fremden Datei mit in eine Berechnung einfliessen lassen.

 

   Die Verbindung zu fremden Dateien erfolgt dadurch, dass der Anwender READ(xx) notwendig ist. Dies erleichtert die einzelnen Definitionen einer Liste erheblich.

 

  Man kann über eine fremde Datei eine weitere fremde Datei u.s.w. lesen. Bis zu 9 Dateien können in einer Liste so miteinander verknüpft werden.

 

10.3.         'Hilfe' Taste.

 

   In der Regel wird dem Anwender auf dem Bildschirm eine Übersicht über die Felder der Hauptdatei gegeben. Beim Arbeiten mit mehreren Dateien werden auch die Felder der fremden Dateien dem Anwender in der Übersicht angezeigt. Hierbei entsteht das Problem, dass oft nicht alle Felder gleichzeitig angezeigt werden können (Bildschirmgrösse). Der Anwender kann natürlich ausgedruckte Listen der verschiedenen Dateidefinitionen bereithalten. Dies ist sicherlich sehr unhandlich. Der Listgenerator bietet hier eine wesentlich bessere Lösung über die 'Hilfe' Taste (oder <?>) an.

 

   Drückt man eine dieser Tasten, erhält man eine Übersicht über die verschiedenen Dateien. Durch Angabe eines Dateikurznamens werden dann die einzelnen Felder dieser Datei angezeigt. Hierdurch wird gesischert, dass der Anwender jederzeit eine Übersicht über die implementierten Dateien und deren Felder hat. Oft handelt es sich hierbei um tausende von verschiedenen Feldern.

 

 

Figur 18 Dateiübersicht, 'Hilfe'‑Funktion.

 

DMS.RAPGEN   19 AUSGEHENDE LIEFERANTEN          4....KALKULATIONEN DEFINIEREN

GR VARENGRUPPENDATEI

KU VALUTADATEI

LE LIEFERANTDATEI

VA ARTIKELDATEI

 

 

 

 

 

 

 

 

 

#DD=DATUM, #PD=PRO DATUM, #D1=DATEN, #DA1=ALPHA DATEN, WANN=KALK.TOTAL/SORT

LETZTER KAUF=0

START (VA.02)

NEXT (VA.02)

KALKULATION ?

                                               BITTE DATEINAME ODER cr.

 

 


 

Figur 19 'Hilfe' für eine einzelne Datei.

 

DMS.RAPGEN   19 AUSGEHENDE LIEFERANTEN           4....KALKULATIONEN DEFINIEREN

 1 ARTIKELNR.

 2 BEZEICHNUNG

 3 VERKAUFSPREIS

 4 EINKAUFSPREIS

 5 LETZT.EINKAUFSDATUM

 6 LIEFERANTENNR

 7 GRUPPENNR

 8 BESTAND

 9 ALT.LIEFERANTNR

10 FREIFELD

 

 

 

 

 

 

 

 

#DD=DATUM, #PD=PRO DATUM, #D1=DATEN, #DA1=ALPHA DATEN, WANN=KALK.TOTAL/SORT

LETZTER KAUF=0

START (VA.02)

NEXT (VA.02)

KALKULATION ?

VA  ARTIKELDATEI             8/CH.VAKA#        BITTE DATEINAME ODER cr.

 

 

 

 

 

Figur 20 Erweiterte 'Hilfe' durch Angabe von VA01.

 

DMS.RAPGEN   19 AUSGEHENDE LIEFERANTEN          4....KALKULATIONEN DEFINIEREN

 1 ARTIKELNR.                              9 ALT.LIEFERANTNR

   SUCHBEGRIFF 1                             REFERENCE ZU DER LIEFERANTDATEI

   MUSS EINDEUTIG SEIN                    10 FREIFELD

 2 BEZEICHNUNG

 3 VERKAUFSPREIS

   RICHTUNGSWEISENDER VERKAUFSPREIS, IN DKR.

 4 EINKAUFSPREIS

   EINKAUFSPREIS IN DER WÄHRUNG DES LIEF.

 5 LETZT.EINKAUFSDATUM

   WIRD BEIM LAGERZUGANG AJOURGEFÜHRT.

 6 LIEFERANTENNR

   SUCHBEGRIFF 2

   REFERENCE ZUR LE,LIEFERANTDATEI

 7 GRUPPENNR

   REFERENCE ZUR GR,ARTIKELGRUPPENDATEI

   D.H.ARTIKELGRUPPENNAME UND PREISFAKTOR

 8 BESTAND

   AKTUELLER LAGERBESTAND FÜR DIESEN ARTIKEL

#DD=DATUM, #PD=PRO DATUM, #D1=DATEN, #DA1=ALPHA DATEN, WANN=KALK.TOTAL/SORT

LETZTER KAUF=0

START (VA.02)

NEXT (VA.02)

KALKULATION ?

VA  ARTIKELDATEI             8/CH.VAKA#        BITTE DATEINAME ODER cr.

 

 

 

 

   Man erhält weitere Hilfe, wenn man im Anschluss an der Dateikurznamen eine Feldnummer, z.B. VA01, angibt. Hierdurch

 

   Diese Funktion kann sehr nützlich sein für Systeme mit vielen Feldern. Man kann hierüber praktisch die gesamte Dokumentation in Form von Hilfstexten anlegen, was allerdings bei der Installation extra Arbeitsaufwand bedeutet. Dies sollte in jedem Falle vor Installation abgesprochen sein.

 

10.5.         READ in Berechnungen.

 

   Benutzt man Felder einer fremden Datei, muss definiert werden, wie diese Datei zu lesen ist.

 

   Der Anwender muss in Verbindung mit Berechnungen den entsprechenden READ Befehl so definieren, dass der Listgenerator weiss, um welche Datei es sich handelt, z.B. READ(KU9), um die Kundendatei zu lesen.

 

10.7.         Verknüpfungen zwischen Dateien.

 

  Im Verbindung mit einem solchen READ Kommendo ist es notwendig, dass dem Listgenerator mitgeteilt wird, wie der Schlüssel dieser Datei aufzubauen ist. Z.B. kann das Feld 15 in der Hauptdatei eine Kundennummer enthalten, die zum Lesen der fremden Datei KU benutzt werden soll. Es gibt verschiedene Möglichkeiten, dem Listgenerator dies mitzuteilen:


   1) Bei Installation wurden die Abhängigkeiten festgelegt. Der Anwender gibt dann nur den Dateikurznamen an.

 

   2) Der Anwender muss nach dem Dateikurznamen die entsprechende Feldnummer mitangeben, z.B. READ(KU),#7.

 

   3) Handelt es sich um sehr komplizierte Schlüssel, können Komma und Nummernzeichen weggelassen werden. Man gibt dann nur READ(KU)15 an und erhält hierdurch die gleichen Möglichkeiten wie im Definitionsprogramm des DATAMASTER. Wir verweisen hier auf einen späteren Abschnitt.

 

10.9.         Lesen einer dritten Datei.

 

   Hat man eine fremde Datei mit dem READ Befehl gelesen, können alle Felder dieser Datei ebenso wie die Felder der Hauptdatei benutzt und bearbeitet werden. Da das READ Kommando eigentlich als Rechenoperation verstanden werden muss, kann man auf der Basic von diesen Daten auch eine weitere Datei ansprechen, z.B. READ(xx),KU #7. Man liest hier die Datei xx mit dem Schlüssel in Feld 7 der Datei KU.

 

10.11.         Dateien mit mehreren Indices.

 

   Hat eine Datei mehrere Indices, kann der Index 2 angesprochen werden, indem man READ(KU,02), #15 angibt.

 

   Der Programmierer kann also bestimmen, welcher Index für eine Dateiverknüpfung verwendet werden soll.

 

10.13.         Verschiedene Sätze der gleichen Datei.

 

   Man kann in die Situation kommen, dass verschiedene Sätze der gleichen Datei gleichzeitig bearbeitet werden sollen. Hier kann die Gross und Kleinschreibung bei der Angabe des Dateikurznamens verwendet werden, z.B. KU#1 und ku#1. In beiden Fällen wird die gleiche Datei angesprochen. Man kann hierüber also 4 verschiedene Sätze ansprechen, nämlich in Datei KU, Ku, kU und ku. Im Listgenerator werden diese Notationsformen als 'verschiedene' Dateien interpretiert.

 

10.15.         Maximale Anzahl Dateien.

 

   Der Listgenerator kann maximal mit 9 Dateien gleichzeitig arbeiten, d.h. Hauptdatei und 8 fremde Dateien.

 

10.17.         Bedingstes Lesen fremder Dateien.

 

   Verknüpft man das READ Kommando mit einer Berechnung, kann das Lesen fremder Dateien über die IF Funktion bedingt gemacht werden, z.B. IF #7 = 3 READ(KU), #15.

 

10.19.        Lesen NACH einer Selektion.

 

   Über das Kommando NACH kann das Lesen einer fremden Datei nach dem Selektieren erfolgen. Hierdurch kann die Verarbeitungsgeschwindigkeit erhöht werden. Dies setzt voraus, dass keine Felder dieser Datei für die Selektion benutzt werden.

 

10.21.

5.11.        Summierung von Einzelposten.

 

   Man kann in einem Durchlauf Einzelposten summieren.

 

   Mit Hilfe des Kommandos START(xx), NEXT(xx) und REPEAT(xx) können Intervall und Rechenoperation definiert werden. Dieser Vorgang wird wiederholt, bis alle Sätze in dem angegebenen Intervall gelesen wird.

 

10.23.        'Kontoauszug'.

 

   Im Listgenerator sind spezielle Funktionen für den Listentyp 'Kontoauszug' enthalten. Hier werden zuerst Stammdaten, und anschliessend eine Reihe von Buchungszeilen ausgegeben.

 

  Mit Hilfe des Kommandos ZEILE in der Buchungsdatei erreicht man, dass das Kommando READH(KU) bei Wechsel des Kundens zuerst die Kundenstammdaten ausdruckt.


10.25.

5.13.        Relative Dateien und Dateiverweise.

 

   Die bisher behandelten Beispiele beziehen sich alle auf sog. Indexdateien. Relative Dateien können natürlich auch verarbeitet werden. Dazu benutzt man die Kommandos READR und READX.

 

   Diese Funktionen können auch bei Dateistrukturen verwendet werden, wo eine Datei einen Verweis (Zeiger) in Form einer Satznummer auf eine andere Datei enthält, entweder direkt oder relativ (bezogen auf Dateianfang).

 

10.27.        Besondere Schlüsselstrukturen.

 

   Mit Hilfe von Arbeitsfeldern, z.B. T2$, können besondere Schlüsselstrukturen verarbeitet werden. Man kann über Assembler CALLS Bit Manipulationen vornehmen, und anschliessend das Kommando READ(xx),T2$ absetzen.

 

10.29.        READ(KU), Saldenliste mit Währungsumrechnung.

 

   Es soll eine Saldenliste mit folgendem Aussehen aufgebaut werden:

 

 

Figur 21 Saldenliste mit Währungsumrechnung.

 

DATUM:14.01.87     * SALDENLISTE *    PR.14.01.87  SEITE:   1

 

LIEFNR. NAME                             SALDO       SALDO DKR

100     HUMBER LTD.                       0,00 DKK        0,00

102     AX & AX LTD.                 25.000,00 DKK   25.000,00

105     WEBB'S SUPPLIERS LTD.           500,00 DKK      500,00

111     TRAWSOM LTD.                  1.000,00 DKK    1.000,00

123     BRAUN GMBH                        0,00 LUF        0,00

205     SCHIERMACHER GMBH            20.000,00 LUF    3.700,00

260     CLORID LTD.                   2.000,00 DKK    2.000,00

270     OHIO INC.                       200,00 US$    1.540,00

271     DANDY INC.                        0,00 UD$        0,00

 

GRANDE TOTAL                                         33.740,00

 

 

 

   Die Lieferantendatei LE wird als Hauptdatei definiert. Mit Hilfe der Funktion 1 wird die Währung (KU#2) nach dem Saldofeld positioniert. Für die Berechnung wird die Kursdatei gelesen und der Saldo wie folgt berechnet:

 

         READ(KU)5

         #7=FNR(#6*KU#3/100)

 

   READ(KU)5, ohne Komma oder Leerstelle, gibt an, dass die Kursdatei mit dem Feld 5 der Hauptdatei als Schlüssel gelesen werden soll.

 

10.31.        Preiskalkulation mit Hilfe mehrerer Dateien.

 

   Aufbauend auf die Warendatei (Hauptdatei) kann folgende Preiskalkulation vorgenommen werden:

 

 

Figur 22 Preiskalkulation.

 

DATUM:14.01.87        * PREISBERECHNUNG *            PR.14.01.87  SEITE 1

 

NR   NAME               EINKAUFSPREIS        DKR GR PREISFAKT. NEUER VERK.PR

0101 SCHOKOLADENSTANGEN     1,50 US$       11,55  0     1,0000        11,55

0102 GR.FRÄSEMASCHINE   10000,00 DKK    10000,00  9     3,0000     30000,00

0110 AUTOBUSSE          60000,00 LUF    11100,00  2     1,2345     13702,55

1001 GELD,GR.ZETTEL       500,00 LUF       92,50  0     1,0000        92,50

1005 STANZMASCHINE       1500,00 DKK     1500,00  1     2,0000      3000,00

2001 KREDITKARTE           10,00 LUF        1,85  9     3,0000         5,55

2002 ID‑KARTE              10,00 LUF        1,85  9     3,0000         5,55

 

 

 

   Folgende Berechnungen müssen durchgeführt werden:

 

           1.  READ (LE)

           2.  READ (KU)

           3.  READ (GR)

           4.  #11=FNR(#4*KU#3/100)

           5.  #12=FNR(#11*GR#3)


   In diesem Beispiel werden alle Dateien benutzt.

 

           1. Die Lieferantendatei wird über die Warendatei gelesen. Lieferant und Währungskode ist jetzt bekannt.

 

           2. Die Kundendatei wird gelesen.

 

           3. Aufgrund der Warengruppe in der Warendatei wird die Warengruppendatei gelesen.

 

           4. Der Einkaufspreis in DM kann berechnet werden.

 

           5. Der Verkaufspreis in DM wird berechnet. (Einkaufspreis in DM * Preisfaktor für Warengruppe)

 

   Wurde der Listgenerator mit der Möglichkeit des Zurückschreibens installiert, könnte jetzt der neue Verkaufspreis zurückgeschrieben werden:

 

           #3=#11    Verkaufspreis = neuer Verkaufspreis

 

10.33.        Preiskalkulation (ohne automatische Verknüpfung).

 

   Im vorhergehenden Beispiel wurde vorausgesetzt, dass bei der Installation die entsprechenden Dateiverknüpfungen definiert wurden.

 

   Ist dies nicht der Fall, wird die Aufgabe etwas komplizierter:

 

           1.  READ (LE),#6

           2.  #13=LE#5

           3.  READ (KU)13

           4.  READ (GR)7

 

   Hier wird der Vorteil deutlich, wenn bei der Installation die Dateiverknüpfungen bereits definiert werden.

 

10.35.        Mehrfachlesen der gleichen Datei.

 

   Definiert man eine Warenliste, in der sowohl der Hauptlieferant als auch der Nebenlieferant ausgedruckt werden soll, muss die gleiche Datei zweimal gelesen werden.

 

 

Figur 23 Mehrfachlesen einer Datei.

 

DATUM:14.01.87    * ALTERNATIVE LIEFERANTEN *        PR.14.01.87  SEITE 1

 

NR   NAME              LIEF NAME                   ALT NAME

0101 SCHOKOLADESTANGEN  271 DANDY INC.             270 OHIO INC

0102 GR.FRÄSEMASCHINE   100 HUNMBER LTD.

0110 AUTOBUSSE          123 BRAUN GMBH             100 HUMBER LTD.

1001 GELD,GR.ZETTEL     205 SCHIERMACHER GMBH      102 AX & AX LTD.

1005 STANZMASCHINE      100 HUMBER LTD.

2001 KREDITKARTE        205 SCHIERMACHER GMBH      102 AX & AX LTD.

2002 ID‑KARTE           205 SCHIERMACHER GMBH      102 AX & AX LTD.

 

 

 

   Dies kann mit folgenden Berechnungen geschehen:

 

           1. READ (LE)6

           2. READ (le)9

 

   Die Datei für den Nebenlieferanten wird als mit 'le' gekennzeichnet.

 

   Das erste Lesen wird mit Feld 6 (Hauptlieferantennr.) als Schlüssel, das zweite Lesen mit Feld 9 (Nebenlieferantennr.) als Schlüssel vorgenommen. Es ist hier ohne Bedeutung, ob Feld 9 numerisch oder Feld 6 alphanumerisch ist, da die Schlüsselroutine des Listgenerators verwendet wird.

 

   Bei der Definition der Liste wird zuerst der Name LE#2, und anschliessend der Name le#9 gedruckt.

 

   Das gleiche Ergebnis kann dadurch erreicht werden, dass man zwei Freifelder, z.B. #11 und #12, definiert mit 24 Zeichen, ausschreibt, nachdem man folgende Berechnungen durchgeführt hat:


           1.  READ (LE)6

           2.  #11=LE#2

           3.  READ (LE)9

           4.  #12=LE#2

 

   Hier wird zuerst der Hauptlieferant gelesen, und der Name in das Feld 11 übertragen. Anschliessend erfolgt das gleiche für den Nebenlieferanten (Feld 12). In diesem Beispiel benutzt man eine von neuen möglichen Dateien.

 

10.37.        READ in Verbindung mit Summenbildungen.

 

   Das Beispiel in Abschnitt 'Gruppensummen' kann mit dem Ausschreiben des Namens für jede Warengruppe erweitert werden.

 

 

Figur 24 Beispiel für Gruppensummen.

 

 

DATO:14.01.87         * DECKUNGSGRAD *              PR.14.01.87  SEITE 1

 

NR   NAME              GR VERKAUFSP KAUFSPREIS      DB     DG  BESTAND   WERT

0101 SCHOKOLADESTANGEN  0      2,00     1,50      0,50  33,33  100      150,00

0102 GR.FRÄSEMASCHINE   9  20000,00 10000,00  10000,00 100,00    0        0,00

0110 AUTOBUSSE          2 100000,00 60000,00  40000,00  66,67    1    60000,00 

1001 GELD,GR.ZETTEL     0   1000,00   500,00    500,00 100,00  100    50000,00

1005 STANZMASCHINE      1   2000,00  1500,00    500,00  33,33   10    15000,00

2001 KREDITKARTE        9     20,00    10,00     10,00 100,00   10      100,00

2002 ID‑KARTE           9     25,00    10,00     15,00 150,00  200     2000,00

 

    2 GRUPPE   0                                        99.80         50150,00

    1 GRUPPE   1                                        33.33         15000,00

    1 GRUPPE   2                                        66,67         60000,00

    3 GRUPPE   9                                       100,05          2100,00

 

GRANDE TOTAL                                            70,85        127250,00

 

 

 

 

   Hierzu müssen zusätzlich folgende Zeilen definiert werden:

 

           1.  WANN                      BEIDE    NUR SUMME

           2.  READ (GR)7

           3.  #2=GR#2,S9$

           4.  IF #NIVEAU=1 LET #2=S9$

 

   Desweiteren muss man bei der Definition der Felder, die summiert werden sollen, ‑2 angeben, d.h. Ausdruck des Feldes 2 (Warenname) in der Summenzeile. Natürlich müssen berechnete Summen definiert sein.

 

10.39.        START/NEXT/REPEAT Summe von Einzelposten.

 

   Möchte man eine Liste definieren, in der nur die Summen der Einzelposten, nicht aber die Einzelposten selbst, ausgedruckt werden sollen, kann man dies über die Kommandos START/NEXT/REPEAT erreichen.

 

 

Figur 25 Lagerwert START/NEXT/OM.

 

DATUM:14.01.87  * LIEFERANTEN‑WERT *  PR.14.01.87  SEITE:   1

 

LIEFNR. NAME                        LAGERWERT

100     HUMBER LTD.                  15000,00

102     AX & AX LTD.                     0,00

105     WEBB'S SUPPLIERS LTD.            0,00

111     TRAWSOM LTD.                     0,00

123     BRAUN GMBH                   60000,00

205     SCHIERMACHER GMBH            52100,00

260     CLORID LTD.                      0,00

270     OHIO INC.                        0,00

271     DANDY INC.                     150,00

 

GRANDE TOTAL                        127250,00

 

 


 

Figur 26 Definitionen für Summierung des Lagerwertes.

 

DMS.RAPGEN        RAPPORT NR.15   LIEFERANTEN‑WERT       JAN 14, 1987 13:34:03

 

DRUCKER:$LPT   STARTPOSITION:001   ANZAHL ZEILEN PRO SEITE: 51

 

DATEI   : 1 LE    LIEFERANTENDATEI           8/CH.LEKA#

DATEI   : 2 VA    ARTIKELDATEI               8/CH.VAKA#

 

  1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

1:DATUM:#DD  * LIEFERANTEN‑WERT *   PR.#PD          SEITE:#PP

2:

3:LIEFNR. NAME                   LAGERWERT

4:

5:#1      #2                  #7

  1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

 

SELEKTIONEN:

 

KALKULATIONEN:

   #7=0                         LAGERWERT =0

   START (VA.02),#1             START (VA.02),LIEF.NR.

   NEXT (VA.02)                 NEXT (VA.02)

   #7=#7+VA#8*VA#4              LAGERWERT=LAGERWERT+BESTABD*EINKAUFSPREIS

   REPEAT (VA)                  REPEAT (VA)

 

SUMMENNIVEAU

 

WELCHE FELDER SOLLEN SUMMIERT WERDEN:

    #11   LAGERWERT

 

 

 

 

   In diesem Beispiel wird die Lieferantendatei und per Lieferant die Summe der Einzellagerwerte ausgeschrieben. Es wird das Freifeld 7 für den Lagerwert verwendet.

 

   Folgende Berechnungen müssen angestellt werden:

 

   1. #7=0                  Löschen des Summenfeldes.

 

   2. START (VA.02),#1      Beginn des Summierens der Sätze der Warendatei. VA.02 gibt an, dass die Datei nach Index                              2 (Lieferantennr.) gelesen werden soll. In Verbindung mit START wird angegeben, welches Feld als                              Schlüssel benutzt werden soll (wie im READ Kommando), in diesem Falle Feld 1, Lieferantennr.

 

   3. NEXT (VA.02)          Ein Satz der Warendatei wird gelesen.

 

   4. #7=#7+VA#8*VA#4       Summierung des Lagerwertes.

 

   5. REPEAT (VA)           Zurück auf NEXT, bis alle Sätze der Warendatei gelesen sind.

 

   Beachten Sie bitte, dass der Aufbau des Schlüssels in Verbindung mit dem START Kommando gegeben wird, und bei NEXT und REPEAT dies nicht notwendig ist. Die Index Nummer muss sowohl bei START als auch bei NEXT angegeben werden ( falls man nicht mit Index 1 arbeitet).

 

10.40.1.      Bedingte Summierung mit START/NEXT/REPEAT.

 

   Die Summierung des Lagerwertes kann natürlich auch bedingt gemacht werden, z.B.:

 

          IF VA#7=1 LET #7=#7+VA#8*VA#4

 

   Hiermit kann man den Lagerwert aufteilen, z.B. in Gruppe 1 und alle anderen Gruppen. Vergessen Sie nicht, die Felder 7 und 8 vorher zu löschen.


10.40.3.      Mehrere Schleifen mit START/NEXT/REPEAT.

 

   Man kann in einer Schleife weitere gleichartige Schleifen aufbauen. Wird der Lagerwert in einer selbstständigen Datei gespeichert (z.B. aufgeteilt nach Lagerorten), kann die Summierung wie folgt erfolgen:

 

           1.  #7=0

           2.  START (VA.02),#1

           3.  NEXT (VA.02)

           4.  START (LA),VA#1

           5.  NEXT (LA)

           6.  #7=#7+LA#8*VA#4

           7.  REPEAT (LA)

           8.  REPEAT (VA)

 

   In gleicher Weise kann ein READ Kommando für fremde Dateien in eine solche Schleife eingefügt werden, z.B. um den Preisfaktor einer Warengruppe zu lesen.

 

10.40.5.      Selektieren in Verbindung mit START/NEXT/REPEAT.

 

   Selektionen in einer Schleife können typisch verwendet werden, wenn man z.B. eine Liste aufbauen will, die alle Lieferanten anzeigt, bei denen man innerhalb  einer bestimmten Periode nicht gekauft hat.

 

Figur 27 Lieferanten, nicht aktiv seit 30.06.86.

 

DATUM:14.01.87  * AUSGEHENDE LIEFERANTEN * PR.30.06.86  SEITE:   1

 

LIEFNR. NAME

100     HUMBER LTD.

102     AX & AX LTD.

105     WEBB'S SUPPLIERS LTD.

111     TRAWSOM LTD.

260     CLORID LTD.

270     OHIO INC.

 

 

   Das Freifeld 7 soll das Selektieren steuern. Es sollen nur Sätze ausgeschrieben werden, wenn Feld 7 gleich Null ist.

 

   Folgende Berechnungen werden vorgenommen:

           1.  #7=0

           2.  START (VA.02),#1

           3.  NEXT (VA.02)

           4.  IF FND (VA#5) > FND (#PD) LET #7=1

           5.  REPEAT (VA)

 

   Das Feld 7 wird gleich 1 gesetzt, wenn das letzte Einkaufsdatum grösser als das am Anfang eingegebene Datum ist (Beachten Sie FND).

 

10.41.        READH/ZEILE.

 

   Wünscht man eine Liste, in der alle Waren eines Lieferanten ausgedruckt werden sollen, wird die Warendatei (Hauptdatei) als Einzelpostendatei definiert.

 

Figur 28 Waren per Lieferant, READH und LINIE.

 

DATUM:14.01.87             * ARTIKEL PR.LIEFERANT *       PR.14.01.87  SEITE 1

 

NR  NAME            ARTIKELNR NAME               BESTAND   EINK.PREIS     WERT

100 HUMBER LTD.

                         0102 GR.FRÄSEMASCHINE          0  10000,00        0,00

                         1005 STANZMASCHINE            10   1500,00    15000,00

 

123 BRAUN GMBH

                         0110 AUTOBUSSE                 1  60000,00    60000,00

 

205 SCHIERMACHER GMBH

                         1001 GELD,GR.ZETTEL          100    500,00    50000,00

                         2001 KREDITKARTE              10     10,00      100,00

                         2002 ID‑KARTE                200     10,00     2000,00

 

271 DANDY INC.

                         0101 SCHOKOLADESTANGEN       100      1,50      150,00

 

GRANDE TOTAL                                          421  72021,50   127250,00

 


   In der ersten Zeile der Liste werden die Felder LE#1 und LE#2 (lieferantennr. und name) ausgeschrieben. Diese Zeile wird mit <CR> quittiert.

 

   Vor Definition der nächsten Zeile muss das Kommando ZEILE gegeben werden. Hiermit teil man dem Listgenerator mit, dass die bereits definierte Zeile nur ausgeschrieben werden soll, wenn der Lieferant wechselt. Die nachfolgenden Zeilen sollen jedoch jedesmal gedruckt werden.

 

   Die Warenzeile wird definiert.

 

   Als Berechnung muss die Verknüpfung zwischen den Dateien angegeben werden:

 

           READH (LE),#3

 

   Dieses Kommando hat die gleiche Wirkung wie ein normales READ. Darüberhinaus bewirkt READH, dass, wenn der Lieferant wechselt, die zuerst definierte Zeile, also Lieferantennr. und name, wieder gedruckt wird.

 

   Um eine vernünftige Liste zu erhalten, sollte die Warendatei nach Lieferantennr. sortiert sein. Dies kann man durch Angabe des Index 2 erreichen. Benutzt man dagegen die Warengruppe zur Steuerung, muss die Warendatei umsortiert werden, da Warengruppe nicht als Index im System definiert wurde.

 

10.42.1.      Selektieren in Verbindung mit READH/ZEILE.

 

   Definiert man eine Liste so, dass nur Waren der Warengruppe ungleich 0 gedruckt werden sollen, sieht die Liste so aus:

 

 

Figur 29 Selektieren nach Warengruppe > 0.

 

DATUM:14.01.87             * ARTIKEL PR.LIEFERANT *       PR.14.01.87 SEITE 1

 

NR  NAME

                    ARTIKELNR NAME               BESTAND   EINK.PREIS     WERT

100 HUMBER LTD.

                         0102 GR.FRÄSEMASCHINE          0  10000,00        0,00

                         1005 STANZMASCHINE            10   1500,00    15000,00

 

123 BRAUN GMBH

                         0110 AUTOBUSSE                 1  60000,00    60000,00

 

205 SCHIERMACHER GMBH

                         2001 KREDITKARTE              10     10,00      100,00

                         2002 ID‑KARTE                200     10,00     2000,00

 

271 DANDY INC.

 

GRANDE TOTAL                                          221  71520,00    77100,00

 

 

 

 

   Beachten Sie bitte, dass der Lieferant 271 ohne Warenzeile ausgedruckt. Dies geschieht, da dem Lieferanten Waren der Gruppe 0 zugeordnet sind und diese beim Selektieren wegfallen.

 

  Um solche Fälle zu umgehen, muss also die Zeile mit Lieferantennr. und name auch gesteuert werden. Dazu folgende Berechnung:

 

           IF #7<>0 READH (LE),#6

 

   Hierdurch erreicht man, dass die Lieferantendatei nur gelesen wird, wenn die WarengruLAHppe ungleich Null ist. Das Selektieren wird hier also mit dem Lesen einer Datei kombiniert.

 

   Eine andere Art 'Null Lieferanten' zu überspringen ist, die jeweiligen Berechnungen als NACH Berechnungen zu definieren, die also nur für die Waren durchgeführt werden, die dem Selektionskriterium entsprechen.

 

           1. NACH

           2. READH (LE),#6


10.42.3.      Summen in Verbindung mit READH/ZEILE.

 

 

Figur 30 Summen mit READH/LINIE.

 

 

DATUM:14.01.87             * ARTIKEL PR.LIEFERANT *       PR.14.01.87  SEITE 1

 

NR  NAME

                    ARTIKELNR NAME               BESTAND   EINK.PREIS     WERT

100 HUMBER LTD.

                         0102 GR.FRÄSEMASCHINE          0  10000,00        0,00

                         1005 STANZMASCHINE            10   1500,00    15000,00

 

TOTAL 100                                                              15000,00

 

 

123 BRAUN GMBH

                         0110 AUTOBUSSE                 1  60000,00    60000,00

 

TOTAL 123                                                              60000,00

 

 

205 SCHIERMACHER GMBH

                         2001 KREDITKARTE              10     10,00      100,00

                         2002 ID‑KARTE                200     10,00     2000,00

 

TOTAL 205                                                               2100,00

 

GRANDE TOTAL                                                           77100,00

 

 

 

 

   Wünscht man Summen der Lagerwerte per Lieferant, kann dies dadurch erreicht werden, dass man eine Zwischensummenebene definiert, wenn die ersten drei Ziffern im Index 2 wechseln.

 

10.43.        Schlüsselroutine des Listgenerators.

 

   Ein Dateischlüssel ist immer als alphanumerisches Feld mit der Länge 30 definiert.

 

   Der Programmierer hat bei der Installation beschrieben, wie sich der Dateischlüssel auf den Feldern der Datei aufbaut. Da diese Felder oft numerische Felder sind, muss eine Konvertierung in das vorgeschriebene Format erfolgen. Diese Konvertierung nimmt die Schlüsselroutine des Listgenerators vor.

 

   Um Platz auf der Platte zu sparen, kann es sein, dass der Programmierer Werte gepackt hat. Weiterhin kann es sich um Teilfelder oder Textfelder handeln.

 

   Es kann also ein ziemlich komplizierter Vorgang sein, die verschiedenen Dateischlüssel so aufzubereiten, dass das System damit ordentlich arbeiten kann. Dies erfordert eine sehr genaue Dokumentation der einzelnen Schlüssel.

 

   In diesem Zusammenhang muss sehr genau darauf geachtet werden, ob numerische Werte mit vorangestellten Nullen bearbeitet werden sollen.

 

   Die Schlüsselroutine des Listgenerators wird dadurch aktiviert, dass man unmittelbar nach READ(xx) die Schlüsseldefinition ohne Leerstelle oder Komma angibt. Die Feldnummer wird ohne Nummerzeichen, Textkonstanten zwischen " " angegeben. Mit Hilfe eines Buchstabens können Spezialfunktionen, wie Packen, Datumskonvertierung und Zero (unterdrücken von vorangestellten Nullen), spezifiziert werden. Teilfelder werden normal angegeben.

 

   Ein Schlüssel beinhaltet immer eine gerade Anzahl Zeichen, d.h. dass eine fünfstellige Kundennummer aus sechs Stellen erweitert wird. Das extra Zeichen kann eine Null oder Leerstelle sein. Mit der Space Funktion kann ein Schlüssel mit Leerstellen ausgefüllt werden.

 

   Im folgenden wird die volle Syntax für die Schlüsseldefinition an Hand von einigen Beispielen beschrieben.


10.44.1.      Felder.

 

   Felder werden als Nummer ohne Nummernzeichen angegeben:

 

            10           = Feldnummer 10

            10(5,6)      = Feld 10, Zeichen 5 und 6

            R            = Satznummer direkt

            N            = Satznummer relativ

            "XX"         = Textkonstante

 

10.44.3.      Funktionen.

 

   Funktionen werden als Buchstabe unmittelbar nach dem Feld angegeben:

 

            D            = Datumkonvertierung (TTMMJJ ‑‑> JJMMTT)

            P            = Packen

            Z            = Nullunterdrückung

            S            = Ausfüllen mit Leerstellen

 

10.44.5.      Zusammenstellung von Feldern und Funktionen.

 

   Mehrere Felder werden durch Komma getrennt.

 

   Die P Funktion kann für jedes Feld, die S Funktion nur für das zuletzt angegebene Feld benutzt werden.

 

10.44.7.      Schlüsselaufbau, Beispiele.

 

            1.  1           = Feld 1

            2.  1,2         = Feld 1 und 2

            3.  1,2,P       = wie oben, ganzer Schlüssel gepackt

            4.  1P,2        = Feld 1 gepackt, anschliessend Feld 2

            5.  1(3,4),2    = Feld 1, Stelle 3 und 4, Feld 2

            6.  "01",1      = 01 gefolgt von Feld 1

            7.  1,S         = Feld 1, aufgefüllt mit Leerstellen

            8.  2,NP,S      = Feld #2, relative Satznr. gepackt, Leerstellen

 

   Die beiden letzten Schlüssel werden normalerweise vom DATAMASTER benutzt, der erste zur Definition eines eindeutigen Schlüssels, der zweite für Felder, in denen mehrmals der gleiche Wert aufreten kann.


11.           Sortieren und Summenbildung.

 

   Sortieren und Bilden von Summen wird mit der gleichen Funktion durchgeführt, da Zwischensummenebenen abhängig sind von der Sortierung einer Liste/Anfrage.

 

   Eine Zwischensumme wird immer dann gebildet, wenn sich ein Zeichen im Sortierbegriff ändert.

 

12.1.         Sortieren.

 

   Wird die Funktion 3 gewählt, fragt das System, ob die Liste sortiert werden soll. Antwortet man hier mit J (ja), setzt man mit der Definition des Sortierbegriffes fort. Hat man N (nein) geantwortet, wird gefragt, ob gewichtete Summen gewünscht werden (siehe Abschnitt 6.3).

 

 

Figur 31 Aufbau eines Sortierbegriffes.

 

DMS.RAPGEN     2 LAGERWERTLISTE         3......SORTIERUNG UND SUMMIERUNGEN

  1 ARTIKELNR.              19 @FREI

  2 BEZEICHNUNG             20 @FREI

  3 VERKAUFSPREIS           21 @FREI

  4 EINKAUFSPREIS           22 @FREI

  5 LETZT.EINKAUFSDATUM     23 @FREI

  6 LIEFERANTENNR           24 @FREI

  7 GRUPPENNR               25 @FREI

  8 BESTAND                 26 @FREI

  9 ALT.LIEFERANTNR         27 @FREI

 10 FREIFELD                28 @FREI

 11 LAGERWERT               29 @FREI

 12 @FREI                   30 @FREI

 13 @FREI

 14 @FREI

 15 @FREI

 16 @FREI

 17 @FREI

 18 @FREI

NB:VOR AUSDRUCK DAUERT ES ETWAS BIS DIE DATEO GELESEN IST.

 

 

GRUPPENNR                     ##

SORTIERUNG:   FELDNR. ? 7     VON KARAKTER:1              BIS KARAKTER:2

SUMME NIVEAU (J/N) ? J SUMME NAME ? GRUPPEN               SEITENWECHSEL (J/N):N

 

 

 

 

   Man definiert eine Sortierbegriff, indem man

 

           FELDNR.:              VON ZCHN:              BIS ZCHN:

 

   angibt. Man kann also selbst das Feld, und innerhalb des Feldes die Zeichen, nach denen sortiert werden soll, bestimmen. Dieser Vorgang wird wiederholt, bis man END (oder <CR>) eingibt. Dadurch kann man mehrere Felder bzw. Teilfelder im einem Sortierbegriff kombinieren. Der Aufbau des Sortierbegriffes wird auf dem Bildschirm angezeigt.

 

   Drückt man bei VON ZCHN bzw. BIS ZCHN nur <CR>, wird das ganze Feld berücksichtigt.

 

12.2.1.       Zwischensummen.

 

   Für jedes Feld wird weiterhin gefragt:

 

           SUMME (J/N)                und bei J (ja)

           NAME:

           Seitenwechsel (J/N):

 

   Gibt man ein J bei SUMME (J/N) ein, wird eine Zwischensumme ausgegeben, wenn der bisher definierte Teil des Sortierbegriffes sich ändert. Der Name, z.B. Warengruppe, wird der Zwischensumme vorangestellt. Hat man einen Seitenwechsel angegeben, erfolgt nach der Zwischensumme ein Seitenwechsel.


 

Figur 32 Liste mit Zwischensummen, sortiert nach Warengruppen.

 

DATUM:14.01.87         * LAGERWERTLISTE  *          PR.14.01.87    SEITE:   1

 

NR.    NAME                 GRUPPENNR EINK.PR.   BESTAND  LAGERWERT  LIEF.NR.

0101   SCHOKOLADENSTANGEN          0      1,50        100     150,00 271

1001   GELD, GROSSE ZETTEL         0    500,00        100   50000,00 205

 

INSG.GRUPPEN 0                                              50150,00

 

1005   STANZMASCHINE               1   1500,00         10   15000,00 100

 

INSG.GRUPPEN 1                                              15000,00

 

0110   AUTOBUSSE                   2  60000,00          1   60000,00 123

 

INSG.GRUPPEN 2                                              60000,00

 

0102   GR.FRÄSEMASCHINE            9  10000,00          0       0,00 100

2001   KREDITKARTE                 9     10,00         10     100,00 205

2002   ID‑KARTE                    9     10,00        200    2000,00 205

 

INSG.GRUPPEN 9                                               2100,00

 

GRANDE TOTAL                                               127250,00

 

 

 

 

 

 

12.2.3.       Sortierprinzip.

 

   Der Listgenerator liest, bevor die Ausgabe einer Liste beginnt, die Datei im ersten Durchlauf, und baut dabei eine Sortierdatei (DMSORTWORK) auf. Während dieses Durchlaufs werden sowohl Berechnungen als auch Selektionen vorgenommen.

 

   Es ist also möglich, nach berechneten Feldern bzw. Feldern fremder Dateien zu sortieren, z.B. kann eine Warenübersicht nach dem Lieferantennamen sortiert werden.

 

   Es werden nur die Sätze in die Sortierdatei geschrieben, die den Selektionskriterien entsprechen. Dadurch wird Platz und Zeit gewonnen.

 

   Vor Ausschreiben einer Liste wird der Anwender darauf aufmerksam gemacht, dass das Sortieren eine gewissen Zeit dauern kann, und man nicht unruhig werden soll, wenn die Ausgabe der Liste nicht unmittelbar beginnt. Selbst wenn nur zwei Sätze sortiert werden müssen, muss die 'alte' Sortierdatei erst vollständig gelöscht werden. Bei 10000 Sätzen kann dies einige Minuten daueren.

 

   Es ist möglich, die gleiche Sortierung einer Liste zu verwenden, indem man SORT beim Starten der nächsten sortierten Liste angibt (siehe Abschnitt 'Starten einer Liste').

 

   Mit Hilfe des Kommandos WANN kann mann steuern, ob die Berechnungen vor, während oder nach dem Sortieren vorgenommen werden sollen (siehe Abschnitt 6.3). Man kann auch das Lesen fremder Dateien bei Sortieren unterdrücken, falls dies zum Sortieren nicht notwendig ist. Auch dadurch wird Zeit gewonnen. Während der Ausgabe einer sortierten Liste wird die sortierdatei blockiert, d.h. man kann nicht von anderen Arbeitsplätzen gleDi d ichzeitig sortierte Listen ausschreiben, es sein denn, man arbeitet mit verschiedenen selbstständigen Listgenerator Installationen. Weiterhin kann während der Ausgabe einer sortierten Liste kein neuer Sortierbegriff definiert werden.

 

12.2.5.       Sortierdatei DMSORTWORK.

 

   Der Listgenerator baut zum Sortieren die Indexdatei DMSORTWORK auf. Diese Datei nimmt die Sortierbegriffe und die entsprechenden Satzverweise auf.

 

   Die Datei DMSORTWORK wird bei der Installation des Listgenerators mit der maximalen Anzahl Sätze definiert. Bei wesentlichen Dateiweiterungen sollte man DMSORTWORK neu dimensionieren.

 

   DMSORTWORK beansprucht ca. 100 Sektoren per 1000 Datensätze, da diese als reine Indexdatei, also ohne Datensätze, angelegt wird.

 

   Auf Systemen mit begrenztem Plattenspeicherplatz kann die Sortierdatei weggelassen werden. Sortierte Listen sind dann jedoch nicht mehr möglich.


   Handelt es sich um Dateien, in denen aus Platzgründen der Sortierbegriff (Index) nicht Teil des Datensatzes ist, beansprucht die Sortierdatei 150 Sektoren per 1000 Sätze (etwa 50% mehr).

 

  Der Schlüssel der Sortierdatei kann eine maximale Länge von 30 Zeichen haben, wobei 3 Zeichen vom Listgenerator verwendet werden (6 Ziffern gepackt), d.h. der Sortierbegriff kann bis zu 27 Zeichen lang sein. Wird diese Länge überschritten, erhält der Anwender eine entsprechende Fehlermitteilung.

 

  Der Listgenerator nutzt also nicht die Sortierfunktion des Betriebssystems. Dies hat den Vorteil, dass nach berechneten Feldern und Feldern fremder Dateien sortiert werden kann, und dass der Listgenerator dadurch in diesem Punkt nicht abhängig von dem Betriebssystem bzw. dessen Version ist.

 

12.2.7.       Sortieren in absteigender Ordnung.

 

  In der Regel wird immer aufsteigend sortiert. Um eine absteigend sortierte Liste zu erhalten, bedient man sich eines Tricks: Man subtrahiert in einem Freifeld den Sortierbegriff von einer genügend grossen Zahl, und sortiert anschliessend nach dem Ergebnis in diesem Freifeld. Enthält das Feld 24 den ursprünglichen Sortierbegriff, dann berechnet man also

 

           #50=10000000‑#24

 

   und sortiert dann nach Feld 50. Beachten Sie bitte, dass das Freifeld gross genug definiert wird, da beim Sortieren ein Feld nicht erweitert werden kann.

 

12.2.9.       Sekundäre Sortierfolge.

 

   Sortiert man z.B. eine Lieferantenliste nach dem Währungskode, erscheinen die Lieferanten mit gleichem Kode in der Reihenfolge, wie sie gelesen wurden, also in der Regel in Lieferantennummernfolge. Sortiert man jedoch die Liste mit Angabe eines Namenindex bei START VON, werden die Lieferanten mit gleichem Währungskode in alphabetischer Reihenfolge ausgegeben.

 

12.2.11.       Mehrfach Sortierungen (NEU).

 

   Eine besondere Form des Sortierens kann vorgenommen werden, wenn man in einem Satz mehrere Felder mit gleicher Bedeutung hat, und der Satz mehrals in der gleichen Liste auftreten soll, z.B. Warenliste, sortiert nach Haupt und Nebenlieferanten. Man definiert zuerst das eine Feld in gewöhnlicher Weise, einschliesslich eventueller Zwischensummenebenen. Anschliessend gibt man statt END unter der Feldnr. NEU ein. Der Listgenerator antwortet mit SORTKEY NEU, und man kann jetzt eine Sortierung nach einem anderen Feld definieren. Hier können keine Zwischensummen definiert werden.

 

 

Figur 33 Sortieren nach Haupt‑ und Nebenlieferant.

 

DATUM:14.01.87          * ARTIKEL PR. LIEFERENT *       PR.14.01.87  SEITE 1

 

NR.    ARTIKELNAME        LIEF.NR. ALT.LIEFERANT KAUFSPREIS LETZT.KAUFSDAT.

0102   GR.FRÄSEMACHINE     100                  0  10000,00         1.01.85

1005   STANZEMASCHINE      100                  0   1500,00         1.08.86

0102   GR.FRÄSEMASCHINE    100                  0  10000,00         1.01.85

0110   AUTOBUSSE           123                100  60000,00        15.12.86

1005   STANZEMASCHINE      100                  0   1500,00         1.06.86

1001   GELD,GR.ZETTEL      205                102    500,00        31.12.86

2001   KREDITKARTE         205                102     10,00         1.01.87

2002   ID‑KARTE            205                102     10,00        30.07.86

0110   AUTOBUSSE           123                100  60000,00        15.12.86

1001   GELD,GR.ZETTEL      205                102    500,00        31.12.86

2001   KREDITKARTE         205                102     10,00         1.01.87

2002   ID‑KARTE            205                102     10,00        30.07.86

0101   SCHOKOLADESTANGEN   271                270      1,50         1.01.87

0101   SCHOKOLADESTANGEN   271                270      1,50         1.01.87

 

 

 


12.3.         Zwischensummen ohne Sortieren.

 

   Selbst wenn kein Sortieren vorgenommen werden soll, ist es dennoch möglich, Zwischensummenebenen zu definieren.

 

 

Figur 34 Definition von Zwischensummenebenen.

 

DMS.RAPGEN     2 LAGERWERTLISTE         3......SORTIERUNG UND SUMMIERUNGEN

  1 ARTIKELNR.              19 @FREI

  2 BEZEICHNUNG             20 @FREI

  3 VERKAUFSPREIS           21 @FREI

  4 EINKAUFSPREIS           22 @FREI

  5 LETZT.EINKAUFSDATUM     23 @FREI

  6 LIEFERANTENNR           24 @FREI

  7 GRUPPENNR               25 @FREI

  8 BESTAND                 26 @FREI

  9 ALT.LIEFERANTNR         27 @FREI

 10 FREIFELD                28 @FREI

 11 LAGERWERT               29 @FREI

 12 @FREI                   30 @FREI

 13 @FREI

 14 @FREI

 15 @FREI

 16 @FREI

 17 @FREI

 18 @FREI

 

 

ARTIKELNR                     AAAA

SUMMEN‑NIVEAU:FELDNR. ? 7     VON KARAKTER:1              BIS KARAKTER:2

SUMME NIVEAU (J/N) ? J SUMME NAME ? ARTIKELGR.            SEITENWECHSEL (J/N):N

 

 

 

 

   Man kann hier also eine Zwischensumme in Abhängigkeit des normalen Dateischlüssels definieren, z.B. die ersten zwei Stellen der Warennummer. Dies setzt natürlich voraus, dass der Anwender den Aufbau des Dateischlüssels kennt, da sonst Bildungen von Zwischensummen sinnlos werden können.

 

 

Figur 35 Ausdruck mit Zwischensummen (sortiert).

 

DATUM:14.01.87          * LAGERWERTLISTE *           PR.14.01.87  SEITE:   1

 

ART.NR.NAME                GRUPPENNR. KAUFSPR.   BESTAND  LAGERWERT  LIEF.NR.

0101   SCHOKOLADESTANGEN           0      1,50        100     150,00 271

0102   GR.FRÄSEMASCHINE            9  10000,00          0       0,00 100

0110   AUTOBUSSE                   2  60000,00          1   60000,00 123

 

ARTIKELGR. 01                                               60150,00

 

1001   GELD, GR.ZETTEL             0    500,00        100   50000,00 205

1005   STANZMASCHINE               1   1500,00         10   15000,00 100

 

ARTIKELGR. 02                                               65000,00

 

2001   KREDITKARTE                 9     10,00         10     100,00 205

2002   ID‑KARTE                    9     10,00        200    2000,00 205

 

ARTIKELGR. 03                                                2100,00

 

 

GRANDE TOTAL                                               127250,00

 

 

 

 

 

Figur 36 Ausdruck mit Zwischensummen (nicht sortiert).

 

DATUM:14.01.87          * LAGERWERTLISTE *           PR.14.01.87  SEITE:   1

 

ART.NR. NAME               GRUPPENNR. KAUFSPR. BESTAND    LAGERWERT  LIEF.NR

 

ARTIKELGR. 01                                               60150,00

ARTIKELGR. 02                                               65000,00

ARTIKELGR. 20                                                2100,00

 

GRANDE TOTAL                                               127250,00

 

 

 

 

   Bei Dateien mit gepackten Schlüsseln muss die Anzahl der Zeichen im ungepackten Format angegeben werden.[18]


12.5.         Gewichtete Summen.

 

12.6.1.       Generell.

 

   Eine gewichtete Summe ist eine Zahl, die ins Verhältnis zur Gesamtsumme gesetzt wird, z.B. Kundensaldo im Verhältnis zur Summen aller (Kunden) Salden.

 

12.6.3.       Erster Durchlauf.

 

   Um gewichtete Summen bilden zu können, muss der Listgenerator vor Ausgabe der Liste die gesamte Datei lesen, um für den zweiten Durchlauf die Gesamtsumme zur Verfügung zu Haben.

 

   Ein solcher erster Durchlauf wird entweder durch Angabe eines Sortierbegriffes (Aufbau der Sortierdatei) oder durch Angabe von gewichteten Summen festgelegt.

 

12.6.5.       Summenbildung.

 

   Die Gesamtsumme wird mit Hilfe eines Freifeldes im ersten Durchlauf gebildet. Mit dem WANN Kommando kann angegeben werden, ob der Rechenvorgang im ersten, zweiten oder beiden Durchläufen erfolgen soll.

 

           WANN:            erster Durchlauf

           #50=#50+#24

 

12.6.7.       Berechnung von gewichteten Summen.

 

   Ein Freifeld (z.B. #50) beinhaltet die Summe aller Salden (z.B. #24). Die Berechnung der gewichteten Summe erfolgt im zweiten Durchlauf:

 

           WANN:            zweiter Durchlauf

           #51=#24%#50

 

   Man benutzt also ein Freifeld (#51) für das Ergebnis der Berechnung (#24 in Prozent von #50). Das Feld 51 enthält anschliessend den gewichteten Wert. Dieser Wert kann in der Liste ausgegeben oder als Selektionsbegriff benutzt werden, z.B. um nur Kunden auszuwählen, deren Saldo < 5% von Gesamtsaldo (aller Kunden) ist.

 

 

Figur 37 Ausdruck mit gewichteten Summen und ZwischensumSCmen.

 

DATUM:14.01.87      * GEWICHTETE LAGERWERTLISTE *    PR.14.01.87  SEITE:  1

 

ART.NR NAME               KAUFSPREIS    BESTAND  LAGERWERT     GEWICHTET

0101   SCHOKOLADESTANGEN        1,50        100     150,00          0,12

0102   GR.FRÄSEMACHINE      10000,00          0       0,00          0,00

0110   AUTOBUSSE            60000,00          1   60000,00         47,15

 

ARTIKELGR. 01                                     60150,00         47,27

 

1001   GELD, GR.ZETTEL        500,00        100   50000,00         39,29

1005   STANZMASCHINE         1500,00         10   15000,00         11,79

 

ARTIKELGR. 02                                     65000,00         51,08

 

2001   KREDITKARTE             10,00         10     100,00          0,08

2002   ID‑KARTE                10,00        200    2000,00          1,57

 

ARTIKELGR. 20                                      2100,00          1,65

 

GRANDE TOTAL                                     127250,00        100,00

 


 

Figur 38 Definition einer gewichteten Summe.

 

DMS.RAPGEN        RAPPORT NR.12  GEWICHTETER LAGERWERT   JAN 14, 1987 11:34:03

 

DRUCKER:$LPT   STARTPOSITION:001   ANZAHL ZEILEN PRO SEITE: 51

 

DATEI:  1 VA      ARTIKELDATEI               8/CH.VAKA#

 

 

  1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,....

1:DATUM:#DD          * GEWICHTETER LAGERWERT *       PR.#PD          SEITE:#PP

2:

3:ART.NR NAME                KAUFSPREIS   BESTAND     LAGERWERT     GEWICHTET

4:

5:#1     #2                   #4           #8      #11               #12

  1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,....

 

SELEKTIONEN:

 

KALKULATIONEN:

   #11=#8*#4                    LAGERWERT=BESTAND*KAUFSPREIS

   #12=#11%#13                  GEWICHTET=LAGERWERT % TOTALWERT

   #12=FNR(#12)                 GEWICHTET=FNR (GEWICHTET)

                                WANN 10   NUR ERSTES PASS   IMMER

   #13=#13+#11                  TOTALWERT=TOTALWERT+LAGERWERT

 

EIN DURCHLAUF DER DATEI IST ERFORDERLICH AUF GRUND GEWIEGTE SUMMEN !

SUMMENIVEAU

 

 SOLL DIE LISTE SORTIERT WERDEN (J/N) ? N

 

 GEWICHTE SUMMEN (ZWEI DURCHLAUFE SIND ERFORDERLICH J/N) ? J

 

 SUMMEN‑NIVEAU:FELDNR. ? 1(1,2)  ARTIKELNR    SUMME NIVEAU (J/N) ? J

                                              SUMME NAME: ARTIKELGR.

                                              SEITENWECHSEL (J/N) ? N

 SOLLEN SUMMEN VOR DER AUSDRUCK KALKULIERT WERDEN (J/N) ? N

 

 WELCHE FELDER SOLLEN SUMMIERT WERDEN:

    #11   LAGERWERT

    #12   GEWICHTET

 SOLLEN SUMMEN IN MEHRERE GRUPPEN GETEILT WERDEN (J/N) ? N

 

 

 

 

12.6.9.       Gewichtete Summen und Selektieren.

 

   Beachten Sie bitte, dass eine gewichtete Summe sich immer auf die Gesamtsumme aller Sätze bezieht, ohne Rücksicht darauf, ob ein Satz das Selektionskriterium erfüllt, oder nicht erfüllt. Das Selektieren bezieht sich hier nur auf das Ausdrucken eines Satzes. Wünscht man, dass die gewichteten Summen sich z.B. nur auf die Summen der Salden der Kundengruppe 2 beziehen, muss dies über die IF Funktion erfolgen:

 

           WANN:                 erster Durchlauf

           IF #7=2 LET #50=#50+#24

 

   Es wird hier also nur dann der Saldo für die Gesamtsumme herangezogen, wenn der Inhalt des Feldes 7 gleich 2 ist.

 

12.6.11.       Gewichtete Summen und QUICK Funktion.

 

   Benutzt man die QUICK Funktion, werden nur die Sätze für die Bildung von gewichteten Summen herangezogen, die das Selektionskriterium erfüllen. Im ersten Durchlauf wird nur Selektiert, also keine Berechnungen angestellt.


12.7.         Behandlung einer Liste, Übersicht.

 

   Bevor Sie die nächsten Abschnitte lesen, geben wir Ihnen zum besseren Verständning eine Übersicht über die Struktur des Listgenerators:

 

Figur 39 Struktur des Listgenerators.

 

                         

                                 START       

                         

                                   

                         

                             ZUERST Berech. 

                         

®

                        

                         Find nächst.Record

                        

                                   ¬

                         Ja                                     

                               TOTAL ?                            

                                                                

                                                              ¯                      

                      Ja                

                    ENDE ?               Berech.Summen                

                                       

                                                 Nein              Ja             

Ja                      

¬  Mehere Pass ?         Lese Record                      Felder=Summen    

                        

                                                                                  

                        

   ZULETZT Berech.   NORMAL Berechn.                      NORMAL Berech.   

                        

                                                                                  

       

          ENDE           Selektionen     Print Summen    Print Summen     

       

                                                                                   

                    Nein                 

¬        OK ?               Addier Next/Nullst.          

                                         

                                                                                    

                                           

                            NACH Berechn.  

                        

                                  

              Sortierung Nein

                Erster Pass ?  

                                         

                                  Gewichtete Summen          

                                                                       

                               

   Einsetze Sortkey                               Ausdruck Zeile   

                               

                                                             

                                                                             

 

 

12.8.1.       Berechnete Summen

   In der Regel beantwortet man die Frage:

 

           BERECHNEN DER SUMMEN VOR AUSDRUCK DER LISTE (J/N)

 

   mit N (nein), da dies nur für Berechnungen von Prozentsummen u.ä. notwendig ist.

 

12.8.2.       Generell.

 

   Eine Berechnung wird in der Regel für jeden gelesenen Satz durchgeführt, also für jede Zeile in einer Liste. Summen werden durch Addition der Felder gebildet, die man für die Summenbildung angegeben hat. Dies ist für die Mehrzahl der Listen ausreichend.

 

   Beinhalten Berechnungen jedoch Prozentzahlen, z.B. Verdienstspanne per Ware, würde eine Summe dieser Werte sinnlos sein. Man kann jedoch auch hier vernünftige Werte erhalten, wenn man bestimmt, dass dieser Rechenvorgang vor Ausdruck der Liste erfolgen soll.

 

   Bei berechneten Summen verwendet man in der Regel auch die WANN Funktion, da man hierüber den Zeitpunkt der Berechnung steuern kann. Für mehr komplexe Listen können die Sonderfelder NIVEAU und GRUPPE in Verbindung mit Berechnungen in verschiedenen Summenebenen benutzt werden.


12.8.3.       Grundregel für berechnete Summen.

 

   Für die Bildung von berechneten Summen müssen alle Felder, die in solche Berechnung eingehen, als Summenfelder definiert sein.

 

   Berechnet man z.B. #51 = #24 % #50, müssen die Felder 25, 50 und 51 als Summenfelder bestimmt sein, auch, wenn diese nicht alle ausgedruckt werden sollen. Dadurch sichert der Listgenerator, dass alle notwendigen Summen für die Berechnung vorhanden sind.

 

12.8.5.       Anwendung des WANN Kommandos.

 

   Mit Hilfe des WANN Kommandos kann gesteuert werden, welche Berechnungen wann ausgeführt werden sollen.

 

           0 = Zeilen und Summen

           1 = nur Zeilen

           2 = nur Summen

 

   Hiermit kann man bestimmen, dass z.B. Währungsumrechnungen nur für Zeilen, und Prozentberechnungen für Zeilen und Summen durchgeführt werden.

 

   Im folgenden wird eine Liste aufgebaut, in der der Lagerwert als 'Bestand * Einkaufspreis' und die Verdienstspanne als Prozentwert berechnet wird.

 

12.8.7.       Beispiel für berechnete Summen.

 

 

Figur 40 Liste ohne berechnete Summe, falsche Verdienstspanne.

 

DATUM:14.01.87         * DECKUNGSGRAD *              PR.14.01.87  SEITE:  1

 

NR   NAME              GR VERKAUFSP KAUFSPREIS      DB     DG  BESTAND   WERT

0101 SCHOKOLADESTANGEN  0      2,00     1,50      0,50  33,33  100      150,00

0102 GR.FRÄSEMACHINE    9  20000,00 10000,00  10000,00 100,00    0        0,00

0110 AUTOBUSSE          2 100000,00 60000,00  40000,00  66,67    1    60000,00

1001 GELD,GR.ZETTEL     0   1000,00   500,00    500,00 100,00  100    50000,00

1005 STANZMASCHINE      1   2000,00  1500,00    500,00  33,33   10    15000,00

2001 KREDITKARTE        9     20,00    10,00     10,00 100,00   10      100,00

2002 ID‑KARTE           9     25,00    10,00     15,00 150,00  200     2000,00

 

GRANDE TOTAL                                           583,33        127250,00

 

 

 

 

 

Figur 41 Liste mit berechnete Summe, falscher Lagerwert.

 

DATUM:14.01.87         * DECKUNGSGRAD *              PR.14.01.87  SEITE:  1

 

NR   NAME              GR VERKAUFSP KAUFSPREIS      DB     DG  BESTAND    WERT

0101 SCHOKOLADESTANGEN  0      2,00     1,50      0,50  33,33  100       150,00

0102 GR.FRÄSEMASCHINE   9  20000,00 10000,00  10000,00 100,00    0         0,00

0110 AUTOBUSSE          2 100000,00 60000,00  40000,00  66,67    1     60000,00

1001 GELD,GR.ZETTEL     0   1000,00   500,00    500,00 100,00  100     50000,00

1005 STANZMASCHINE      1   2000,00  1500,00    500,00  33,33   10     15000,00

2001 KREDITKARTE        9     20,00    10,00     10,00 100,00   10       100,00

2002 ID‑KARTE           9     25,00    10,00     15,00 150,00  200      2000,00

 

GRANDE TOTAL              123047,00 72021,50  51025,50  70,85  421  30321051,50

 

 

 

 

 

Figur 42 Liste mit berechneter Summe und WANN‑Funktion.

 

DATUM:14.01.87         * DECKUNGSGRAD *              PR.14.01.87  SEITE:  1

 

NR   NAME              GR VERKAUFSP KAUFSPRIS       DB     DG  BESTAND    WERT

0101 SCHOKOLADESTANGEN  0      2,00     1,50      0,50  33,33  100       150,00

0102 GR.FRÄSEMASCHINE   9  20000,00 10000,00  10000,00 100,00    0         0,00

0110 AUTOBUSSE          2 100000,00 60000,00  40000,00  66,67    1     60000,00

1001 GELD,GR.ZETTEL     0   1000,00   500,00    500,00 100,00  100     50000,00

1005 STANZMASCHINE      1   2000,00  1500,00    500,00  33,33   10     15000,00

2001 KREDITKARTE        9     20,00    10,00     10,00 100,00   10       100,00

2002 ID‑KARTE           9     25,00    10,00     15,00 150,00  200      2000,00

 

GRANDE TOTAL                                            70,85         127250,00

 

 


 

Figur 43 Definitionen für berechnete Summen.

 

DMS.RAPGEN        RAPPORT NR.3    DECKUNGSGRAD           JAN 14,  1987 11:37:05

 

DRUCKER:$LPT   STARTPOSITION:001   ANZAHL ZEILEN PR.SEITE : 51

 

DATEI: 1 VA       ARTIKELDATEI               8/CH.VAKA#

 

 

  1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

1:DATUM:#DD              * DECKUNGSGRAD *             PR.#PD

2:

3:NR   NAME               GR VERKAUFSP KAUFSPREIS     DB    DG    BEST  WERT

4:

5:#1   #2                 #7 #3       #4       #11     #12    #8     #13

  1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

 

SELEKTIONEN:

 

KALKULATIONEN:

                                WANN 1   BEIDE PASS   KEINE SUMMEN

   #11=#3‑#4                    DB=VERKAUFSPR.‑KAUFSPREIS

   #13=#8*#4                    LAGERWERT=BESTAND*KAUFSPREIS

   #14=#4                       KAUFSPREIS=KAUFSPRIS

   #15=#11                      DB=DB

                                WANN 0   BEIDE PASS    IMMER

   #12=#15%#14                  DG=DB%KAUFSPREIS

   #12=FNR(#12)                 DG=FNR(DG)

 

SUMMENNIVEAU

 

 SOLL DIE LISTE SORTIERT WERDEN (J/N) ? N

 

 GEWICHTETE SUMMEN (ZWEI DURCHLAUFE SIND ERFORDERLICH (J/N) ? N

 

 SOLLEN SUMMEN VOR AUSDRUCK KALKULIERT WERDEN (J/N) ? J

 

 WELCHE FELDER SOLLEM SUMMIERT WERDEN:

    #12   DG

    #13   LAGERWERT

    #14   KAUFSPREIS

    #15   DB

 

 SOLLEN SUMMEN IN MEHRERE GRUPPEN GETEILT WERDEN (J/N) ? N

 

 

 

 

   Beachten Sie bitte die Verwendung der Freifelder 14 und 15.

 

   In der Liste werden die Felder 4 und 11 ausgedruckt, wünscht aber keine Summenbildung. Stattdessen werden die Felder 14 und 15 für die Summenbildung benutzt. Diese Felder werden nicht gedrückt.

 

12.8.9.       Struktur für berechnete Summen.

 

   In der Regel bildet der Listgenerator die Summen für die gewählten Felder in einer dafür bereitsgestellten Gruppe von selbstständigen Feldern (mit einer Länge von 4 Worten), die dann direkt ausgedruckt werden können.

 

   Werden jedoch berechnete Summen definiert, werden für die Berechnung die entsprechenden Felder in der Datei auf die Länge von 4 Worten umdefiniert. Nach Abschluss der Liste werden diese Felder in ihr urspüngliches Format zurückverwandelt. Eine Liste mit berechneten Summen erfordert also mehr Platz als eine Liste ohne berechnete Summen.

 

   Bei berechneten Summen sollte man Felder fremder Dateien vor der Berechnung in Freifelder überführen, da für fremde Dateien keine Formatanpassungen erfolgen. Rechnet man direkt mit diesen Feldern, kann dies zu erheblichen Rundungsdifferenzen führen.

 

12.9.         Felder für Bildung einer Summe.

 

   Es werden die Feldnummern der Felder angegeben, die summiert werden sollen. Das entsprechende Feld wird am Bildschirm hervorgehoben angezeigt. Ein Feld kann nur einmal für eine Summenbildung herangezogen werden. Wählt man ein alphanumerisches Textfeld für die Summenbildung, wird eine entsprechende Fehlermeldung herausgegeben. Es können bis zu 34 Felder in einer Liste summiert werden.


 

Figur 44 Felder für die Summenbildung.

 

DMS.RAPGEN     2 LAGERWERTLISTE              3......SORTIERUNG UND SUMMIERUNGEN

  1 ARTIKELNR.              19 @FREI

  2 BEZEICHNUNG             20 @FREI

  3 VERKAUFSPREIS           21 @FREI

  4 EINKAUFSPREIS           22 @FREI

  5 LETZT.EINKAUFSDATUM     23 @FREI

  6 LIEFERANTENNR           24 @FREI

  7 GRUPPENNR               25 @FREI

  8 BESTAND                 26 @FREI

  9 ALT.LIEFERANTNR         27 @FREI

 10 FREIFELD                28 @FREI

 11 DB                      29 @FREI

 12 DG                      30 @FREI

 13 LAGERWERT

 14 KAUFSPREIS

 15 DB

 16 @FREI

 17 @FREI

 18 @FREI

AUTOMATISCHE ENDSUMME AUF ALLE LISTEN.

SOLLEN SUMMEN VOR AUSDRUCH KALKULIERT WERDEN (J/N) ? N

 

 

FELDER ZU SUMMIEREN:  FELDNR:14

 

 

 

 

 

   Es können auch Felder fremder Dateien angegeben werden. Für berechnete Summen müssen alle Felder, die in die Berechnung eingehen, als Summenfelder definiert sein. Ist man mit der Bestimmung der Felder fertig, gibt man END (oder <CR>) ein.

 

   Folgende Möglichkeiten bieten sich für eine mehr komplexe Steuerung von Summenbildungen:

 

12.10.1.       ‑Feldnr., Ausdruck des Feldes in der Summenzeile.

 

   Gibt man z.B. ‑7 ein, wird dieses Feld nicht summiert, sondern nur in der Summenzeile ausgedruckt, vorausgesetzt, dass dieses Feld in der Listdefinition berücksichtigt ist. Der Wert entspricht dem letzten Feldinhalt, es sei denn, dass gesonderte Berechnungen angestellt wurden.

 

   Diese Funktion wird typisch dafür verwendet, den Kundennamen in der Saldozeile oder den Namen einer Warengruppe in der Summenzeile mit auszudrucken.

 

12.10.3.       ‑ , ohne Text 'TOTAL'.

 

   Gibt man nur ' ‑ ' (minus) ein, wird der Text TOTAL in der letzten Zeile unterdrückt.

 

   Ein typisches Beispiel hierfür ist, falls in der ersten Spalte einer Liste ein Summe gelidet werden soll, und links davon der Platz für den Text TOTAL fehlt.

 

12.10.5.       2% oder 3% Genauigkeit (bei Summenbildung).

 

   Listen mit sehr vielen Summen, Zwischensummen und Ebenen können einen solchen Umfang annehmen, dass eine Verarbeitung nicht mehr möglich ist.

 

   Summen werden normalerweise mit der maximalen Genauigkeit des System, d.h. 14 signifikante Ziffern, gerechnet und in einer Matrix gespeichert, deren Grösse durch

 

   (Anz. Felder + 1) * (Anz. Ebenen + 1) * (Anz. Gruppen + 1)

 

   bestimmt wird.

 

   Um Speicherplatz zu sparen, kann durch Angabe von 2% oder 3% die Genauigkeit begrenzt werden. 2% gibt eine Genauigkeit von 10 Ziffern, und 3% von 6 Ziffern, in beiden Fällen mit fliessendem Komma, d.h. bei einem eventuellen Überlauf verliert man die Ziffer mit dem kleinsten Stellenwert.

 

   Als Alternative kann natürlich auch die sog. Partitiongrösse erweitert werden, um genügend Platz zu erhalten. Hier gilt eine Abwägung zwischen verfügbarem Speicherplatz und Verarbeitungsschwindigkeit.


12.11.         Gruppensummen.

 

   Mit Hilfe von Gruppensummen kann man am Ende einer Liste Summen, aufgeteilt nach verschiedenen Gruppen, ausgeben, z.B. 5 Kunden in Gruppe 7 mit einem Saldo von DM 9.000.

 

 

Figur 45 Gruppensummen.

 

DATO:14.01.87        * DECKUNGSGRAD *              PR.14.01.87  SEITE:  1

 

NR   NAME              GR VERKAUFSP KAUFSPREIS      DB     DG  BESTAND   WERT

0101 SCHOKOLADESTANGEN  0      2,00     1,50      0,50  33,33  100      150,00

0102 GR.FRÄSEMASCHINE   9  20000,00 10000,00  10000,00 100,00    0        0,00

0110 AUTOBUSSE          2 100000,00 60000,00  40000,00  66,67    1    60000,00

1001 GELD,GR.ZETTEL     0   1000,00   500,00    500,00 100,00  100    50000,00

1005 STANZMASCHINE      1   2000,00  1500,00    500,00  33,33   10    15000,00

2001 KREDITKARTE        9     20,00    10,00     10,00 100,00   10      100,00

2002 ID‑KARTE           9     25,00    10,00     15,00 150,00  200     2000,00

 

    2 GRUPPE   0                                        99.80         50150,00

    1 GRUPPE   1                                        33.33         15000,00

    1 GRUPPE   2                                        66,67         60000,00

    3 GRUPPE   9                                       100,05          2100,00

 

GRANDE TOTAL                                            70,85        127250,00

 

 

 

 

12.12.1.       Gruppensummen (J/N/Ebene) ?

 

   Zuerst gibt man an, ob überhaupt eine solche Summenbildung gewünscht ist. Bei N (nein) kehrt man in das ursprüngliche Menü zurück. Bei J(ja) wird mit der nächsten Frage fortgesetzt.

 

 

Figur 46 Definition von Gruppensummen.

 

DMS.RAPGEN     2 LAGERWERTLISTE         3......SORTIERUNG UND SUMMIERUNGEN

  1 ARTIKELNR.              19 @FREI

  2 BEZEICHNUNG             20 @FREI

  3 VERKAUFSPREIS           21 @FREI

  4 EINKAUFSPREIS           22 @FREI

  5 LETZT.EINKAUFSDATUM     23 @FREI

  6 LIEFERANTENNR           24 @FREI

  7 GRUPPENNR               25 @FREI

  8 BESTAND                 26 @FREI

  9 ALT.LIEFERANTNR         27 @FREI

 10 FREIFELD                28 @FREI

 11 LAGERWERT               29 @FREI

 12 @FREI                   30 @FREI

 13 @FREI

 14 @FREI

 15 @FREI

 16 @FREI

 17 @FREI

 18 @FREI

SOLLEN SUMMEN IN MEHRERE GRUPPEN GETEILT WERDEN (J/N/NIVEAU) ? J

 

 

GRUPPE FELDNR.? 7  ANZAHL CODES IN DIE GRUPPEN ? 10 GRUPPE NAME ? GRUPPE

GRUPPE FELDNR.? U6 ANZAHL CODES IN DIE GRUPPEN ? 20 GRUPPE NAME ? LIEFERANT

 

 

 

 

 

   Sofern eine Liste mit mehreren Zwischensummenebenen definiert wurde, werden die Gruppensummen in allen Ebenen gebildet und ausgedruckt. Wünscht man jedoch nur am Ende der Liste diese Gruppensummen, gibt man anstelle von J (ja) die Ebene ein, für die man Gruppensummen berechnet und gedruckt haben will.

 

           1 = erste Zwischensumme

           2 = nächste Zwischensumme

           x = Endsumme

 

   In einer Liste mit nur einer Zwischensumme gibt man also 2 an, um die Gruppensumme am Ende der Liste zu erhalten.


12.12.3.       Gruppe Feldnr.: Anzahl Kodes und Name.

 

   Man gibt hier die Nummer des Feldes an, die die Gruppierung der Summenbildung steuern soll. Das Feld muss numerisch sein und einen Kode, z.B. 0 bis 100, enthalten.

 

   Der höchste Wert dieses Feldes gibt die Anzahl der Kodes in dieser Gruppe an, z.B. 100, und bewirkt, dass der Listgenerator Platz für die Kodes 0 bis 100 reserviert. Andere Werte werden unter der Gruppe 0 'Diverse' aufgesammelt. Beachten Sie, dass es sich hierbei nicht um 100 verschiedene Werte, sondern um die Werte 0 bis 100 innerhalb eines Gruppe handelt.

 

  Die Anzahl hat natürlich Auswirkung auf die Grösse der Liste.

 

  Zum Schluss gibt man den Gruppennamen ein, der in der Summenzeile ausgedruckt wird. Es können bis zu 3 unterschiedliche Gruppierungen definiert werden. Man schliesst mit der Eingabe END (oder <CR>) ab.

 

12.12.5.       'Unbestimmte' Gruppensummen.

 

   Eine der Gruppensummen kann als 'unbestimmt' definiert werden. Dies geschieht durch Voraussetzen eines U vor die Feldnummer, z.B. U7.

 

   Der Listgenerator richtet beim Lesen der Datei eine Tabelle über die unterschiedlichen Werte in diesem Feld ein. Man gibt hier unter 'Anzahl Kodes' die Anzahl der verschiedenen Werte dieses Feldes an, nicht wie oben, den höchsten Wert des Kodes.

 

   Man kann also seine Summen z.B. nach einer 4 ziffrigen Zahl oder einem Datum steuern. Weiterhin können auch hierüber Gruppen mit alphanumerischen Kodes definiert werden, z.B. A,B,C u.s.w. Treten mehr als die angegebene Anzahl Werte auf, wird der Rest in einer Gruppe 'Diverse' zusammengefasst.

 

 

Figur 47 Mehrere Gruppensummen, die letzt 'unbestimmt'.

 

DATUM:14.01.87         * DECKUNGSGRAD *              PR.14.01.87  SEITE:  1

 

NR   NAME              GR VERKAUFSP KAUFSPREIS      DB     DG  BESTAND    WERT

0101 CHOKOLADESTÄNGER   0      2,00     1,50      0,50  33,33  100       150,00

0102 GR.FRÄSEMASCHINE   9  20000,00 10000,00  10000,00 100,00    0         0,00

0110 AUTOBUSSE          2 100000,00 60000,00  40000,00  66,67    1     60000,00

1001 GELD,GR.ZETTEL     0   1000,00   500,00    500,00 100,00  100     50000,00

1005 STANZMASCHINE      1   2000,00  1500,00    500,00  33,33   10     15000,00

2001 KREDITKARTE        9     20,00    10,00     10,00 100,00   10       100,00

2002 ID‑KARTE           9     25,00    10,00     15,00 150,00  200      2000,00

 

    2 GRUPPE   0                                        99,80          50150,00

    1 GRUPPE   1                                        33,33          15000,00

    1 GRUPPE   2                                        66,67          60000,00

    3 GRUPPE   9                                       100,05           2100,00

 

    2 LIEFERANT  100                                    91,30          15000,00

    1 LIEFERANT  123                                    66,67          60000,00

    3 LIEFERANT  105                                   100,96          52100,00

    1 LIEFERANT  271                                    33,33            150,00

 

GRANDE TOTAL                                            70,85         127250,00

 

 

 

 

12.12.7.       Teilfelder / fremde Dateien.

 

   Gruppensummen können auch durch ein Teilfeld gesteuert werden, indem man z.B. #7(3,4) angibt, also 3. und 4. Stelle im Feld 7. Weiterhin kann man Felder fremder Dateien angegeben, z.B. KU#7 oder sogar KU#7(3,4).

 

   Berechnete Freifelder können auch für die Steuerung von Gruppensummen herangezogen werden.


13.           Briefe und Korrektion einer Liste.

 

   Ein Brief ist als Liste definiert, in der eine Seite per Datensatz ausgedruckt (auf dem Bildschirm ausgegeben) wird.

 

   In einem Brief kann man genauso wie in einer jeden anderen Liste Selektionen, Sortieren und verschiedenen Berechnungen definieren, z.B. Ausschreiben an ausgewählte Kunden, oder Sortierung nach Postleitzahlen. Es können keine Summen in einem Brief definiert werden.

 

   Als Beispiele für einen Brief können genannt werden:

 

           Etiketten

           Mahnschreiben/Mitteilungen

           Überweisungsträger

           Checks

 

14.1.         Definition eines Briefes.

 

   Ein Brief wird über die Funktion 6 definiert. Man gibt hier die Stammdaten genauso an wie bei einer normalen Liste (Funktion 1). Man lässt jedoch eine Überschrift aus.

 

   Anschliessend erhält man ein Formular auf dem Bildschirm, in dem man jetzt die einzelnen Felder und Texte frei positionieren kann. Hiermit kann man z.B. Name und Adresse aus einer Datei holen und zusammen mit einem festen Text kombinieren. Da das Papier grösser sein kann als das Bildschirmformat, kann man mit dem Kommando 'Verschiebe Bildschirm' jede beliebige Position auf dem Brief erreichen. Der Bildschirm kann also als eine Art Fenster gesehen werden.

 

14.3.         Bildschirm Anfrageprogramm.

 

   Ein Brief, der auf dem Bildschirm ausgegeben werden soll, kann als Bildschirm Anfrage benutzt werden, da die festen Text des Briefes mit schwachem Licht, und die Felder einer Datei hervorgehoben angezeigt werden. Es werden immer nur die ersten 24 Zeilen eines Briefes gezeigt, gleichgültig, wie lang der Brief ist.

 

  Ist ein Satz am Bildschirm angezeigt, wird man über die Taste <CR> um nächsten Brief (Seite/Satz) gebeten. Es handelt sich also um eine Art von Blättern in der Datei. Man kann auch eine Nummer, z.B. Kundennummer, angeben. Hierdurch wird der entsprechende Satz/Brief am Bildschirm angezeigt. Diese Funktion kann also direkt als Anfrageprogramm verwendet werden.

 

   Tastet man PRINT, wird die Seite, die am Bildschirm angezeigt wird, ausgedruckt (Hardcopy). Man muss hierbei beachten, dass der gesamte Brief gedruckt wird, also eventuell mehr, als am Bildschirm gezeigt wird.

 

   Über END wird das Programm abgeschlossen.

 

14.5.         Anwendung der Funktion 6 und 7.

 

 

Figur 48 Definition eines Briefes.

 

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

                                                                               1

                                                                               2

                                                                               3

                                                                               4

                                                                               5

                                                                               6

                                                                               7

                                                                               8

                                                                               9

          xxxxxxxxxxxxxxxxxxxxxxxx                                            10

          xxxxxxxxxxxxxxxxxxxxxxxx                                            11

          xxxxxxxxxxxxxxxxxxxxxxxx                                            12

                                                 Kbh.V    D.##.##.##          13

                                                                              14

                                                                              15

      BETR.KONTONR.xxx.                                                       16

                                                                              17

                                                                              18

ZEILE,POS: 17

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

BETR.KONTONR.#1 .

 

WIR HABEN D.D. IHREN SALDO AUF IHREM KONTO ZU KR. # 6 BERECHNET.

 


   Die Schreibmarke befindet sich unten in Feld ZEILE, POS:.

 

   Die einzelnen Felder werden auf dem Bildschirm mit ihrem Feldformat angezeigt (eine Reihe xxx zeigt ein Textfeld, und # oder ‑ ein numerisches Feld an). Man kann eine Zeile, und innerhalb der Zeile eine Position, durch Eingabe der Zeilennr., Positionsnr. bestimmen. Diese Zeile, plus die vorhergehende und nachfolgende, werden jetzt am unteren Bildschirmrand angezeigt. Und zwar nicht mehr mit ihrem Format, sondern mit der entsprechenden Feldnummer.

 

   Man kann jetzt diese Zeile ändern, und in dem Augenblick, wo man <CR> tastet, wird die neue Zeile auf dem Bildschirm sichtbar (die Feldnummern werden in ihre entsprechenden Feldformate übersetzt). Möchte man eine gesamte Zeilen löschen, muss man diese mit Leerstellen ausfüllen.

 

   Die Definition werden mit END (oder <CR‑>) abgeschlossen).

 

14.7.         Änderung eines Briefes oder einer Liste.

 

   Wird die Funktion 7 gewählt, kann man in gleicher Weise wie unter 'Definition eines Briefes' die einzelnen Zeilen in einem Brief ändern.

 

   Wählt man Funktion 7 für eine Liste, die mit Funktion 1 aufgebaut wurde, kann in gleicher Weise auch die einzelnen Zeilen in einem Brief ändern.

 

   Wählt man Funktion 7 für eine Liste, die mit Funktion 1 aufgebaut wurde, kann in gleicher Weise auch die einzelnen Positionen dieser Liste ändern.

 

 

Figur 49 Änderung einer Liste.

 

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

DATUM:##,##,##  * PREISLISTE * PR.##.##.##  SEITE:####                         1

                                                                               2

ART.NR NAME                 VERK.PREIS GRUPPENNR.                              3

                                                                               4

xxxx   xxxxxxxxxxxxxxxxxxxx ######.##       ##                                 5

                                                                               6

                                                                               7

                                                                               8

                                                                               9

                                                                              10

                                                                              11

                                                                              12

                                                                              13

                                                                              14

                                                                              15

                                                                              16

                                                                              17

                                                                              18

ZEILE,POS: DRUCKER

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

DRUCKER NR.? 1       (CR=$LPT,1=$RPL4)

STARTPOSITION (CR=001) ?    ENDPOSITION (CR=080) ?

ANZAHL ZeileN PRO SEITE (CR=051) ? 72

 

 

 

 

 

   Dies ist besonders hilfreich, wenn man z.B. Überschriften o.ä. ändern bzw. Felder in einer Liste löschen will.

 

   Beachten Sie aber bitte, dass bei der Definition einer Liste die einzelnen Zeilen vom Listgenerator mit einer Identifikation festgelegt wurden. Man kann also mit der Funktion 7 keine ganzen Zeilen löschen oder hinzufügen.

 

   Über das Kommando PRINTER können auch die Druckerzuteilungen bzw. Formatdefinitionen geändert werden.

 

14.9.         Kommandos in Funktion 6 und 7.

 

   In ZEILE, POS können folgende Kommandos verwendet werden:

 

14.10.1.       Zeilennr.

 

   Durch Eingabe einer Zeilennummer wird die entsprechende Zeile ausgewählt. Diese Zeile kann jetzt geändert werden. Liegt die Zeile ausserhalb des Ausschnittes auf dem Bildschirm, wird das Bild entsprechend hoch bzw. runtergerollt.


14.10.3.       Zeilennr., Position.

 

   Wie oben, jedoch ab einer bestimmten Position.

 

14.10.5.       <CR>

 

   Der Bildschirm wird um eine Zeile nach oben verschoben.

 

14.10.7.       END oder <CR‑>.

 

   Beenden der Definitionen/Änderungen.;

 

14.10.9.       ? oder <HILFE>.

 

   Hierüber können die einzelnen Felder der Datei angezeigt werden (siehe Abschnitt 'Hilfe' Funktion).

 

14.10.11.       POS, setze Anfangsposition für Bildschirm.

 

   Hier man kann das Schirmbild auf eine bestimmte Position der Liste positioniert werden, sofern die Liste breiter als 80 Zeichen ist.

 

14.10.13.       PRINT.

 

   Das Layout der Liste/Briefes wird auf dem Drucker ausgegeben. Dies ist besonders hilfreich, wenn man für Listen bzw. Briefe vorgedruckte Formulare verwendet.

 

14.10.15.       F Seitenvorschub.

 

   Es erfolgt ein Seitenvorschub auf dem Drucker.

 

14.10.17.       PRINTER, Definition der Druckerzuteilung u.a.

 

   Mit diesem Kommando kann die Druckerzuteilung und das Seitenformat geändert werden.

 

14.10.19.      RASTER, Druckraster an/aus.

 

   Hierüber aktiviert bzw. deaktiviert man das Druckraster auf dem Bildschirm.

 

 

Figur 50 Druckraster auf dem Bildschirm.

 

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....1

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....2

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....3

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....4

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....5

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....6

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....7

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....8

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,....9

....,....!xxxxxxxxxxxxxxxxxxxxxxxx,....!....,....!....,....!....,....!....,...10

....,....!xxxxxxxxxxxxxxxxxxxxxxxx,....!....,....!....,....!....,....!....,...11

....,....!xxxxxxxxxxxxxxxxxxxxxxxx,....!....,....!....,....!....,....!....,...12

....,....!....,....!....,....!....,....!....,....Kbh.V,...D.##.##.##.!....,...13

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,...14

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,...15

....,.BETR.KONTONR.xxx..,....!....,....!....,....!....,....!....,....!....,...16

....,.WIR HABEN D.D. IHREN SALDO BERECHNET ZU KR.‑‑‑‑‑‑#.##!....,....!....,...17

....,....!....,....!....,....!....,....!....,....!....,....!....,....!....,...18

ZEILE,POS:

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

 

 

 

 

 

 


14.10.21.

7.5.11.      MODE, zeige Feldformat/nummer oder Feldname.

 

   Mit Hilfe des MODE Kommandos kann man definieren, wie die Felder auf dem Bildschirm (bzw. bei PRINT) gezeigt werden sollen, indem man folgendes eingibt:

           0 = Feldnummer wird gezeigt

           1 = Feld wird nicht gezeigt

           2 = Feldname wird gezeigt

           3 = Feldformat wird gezeigt (Standard)

 

 

Figur 51 Kommando MODE = 0.

 

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

                                                                               1

                                                                               2

                                                                               3

                                                                               4

                                                                               5

                                                                               6

                                                                               7

                                                                               8

                                                                               9

          #2                                                                  10

          #3                                                                  11

          #4                                                                  12

                                                 Kbh.V    D.#DD               13

                                                                              14

                                                                              15

      BETR.KONTONR.#1 .                                                       16

      WIR HABEN D.D. IHREN SALDO BERECHNET ZU KR.                             17

                                                                              18

ZEILE,POS:

1...;....10...;....20...;....30...;....40...;....50...;....60...;....70...;....8

 

 

 

 

14.10.23.      IL oder LI, Einfügen einer Zeile.

 

   Hiermit fügt man eine Zeile vor eine bestimmte Zeilennummer.

 

14.10.25.

7.5.13.      DL oder LD, Löschen einer Zeile.

 

   Eine bestimmte Zeile wird gelöscht. Die nachfolgende Zeilen werden um eine Zeile nach oben verschoben.

 

14.10.27.      FORMAT, Ändern des Formates für Freifelder.

 

   Benutzt man das erste mal ein Freifeld, wird man gebeten, Namen und Format einzugeben. Wünscht man jetzt später dieses Format zu ändern, kann dies über das Kommando FORMAT erfolgen.

 

           FELDNR:

           NEUES FORMAT:

 

   Die Funktion kann nur auf die 20 Freifelder angewendet werden, nicht aber auf Felder einer Datei. Ist ein Freifeld bereits als alphanumerisches Textfeld definiert, kann eine Änderung auch nicht mehr vorgenommen werden. Man muss in diesem Falle ein neues Freifeld definieren.

 

14.11.         Spezialfelder in einem Brief/Liste.

 

   Man kann neben den normalen Feldern (#xx und AB#xx) folgende spezielle Felder verwenden:

 

14.12.1.       #DD Tagesdatum.

 

   Wird beim Start einer Liste eingetastet.[19]

 

14.12.3.       #PD per Datum.

 

   Wird als zweites Datum an beim Start eingegeben.[20]


14.12.5.       #PP Seitennummer.

 

   Wird automatisch zugeteilt.[21]

 

14.12.7.       #KA Dateinummer.

 

   Kann für die Dateien angewendet werden, wo der Dateiname ein ? beinhaltet (siehe Installationshandbuch).[22]

 

14.12.9.       #SN Systemname.

 

   Kann benutzt werden, sofern mehrere Listgeneratoren installiert sind, z.B. unterschiedliche Firmen. Der Systemname wird als Feldnr. 1 bei der Installation bestimmt.[23]

 

14.12.11.       #SY Systemnr.

 

   SY gibt die Systemnummer des aktuellen Systems an.[24]

 

14.12.13.       #TI Systemzeit.

 

   Wird von der im System eingebauten Uhr übernommen.[25]

 

14.12.15.       #NO Programmnummer.

 

   Programmnummer der Liste, z.B. Liste 15 = 1015.[26]

 

14.12.17.       #SC Bildschirmnummer.

 

   Nummer des Bildschirms, der eine Liste gestartet hat.[27]

 

 

14.13.         Spezielle Zeichen.

 

   Ein Text in einer Liste darf kein Anführungszeichen (") enthalten, da dieses Zeichen im BASIC eine besondere Funktion hat.

 

   Ein Text darf nicht unmittelbar links neben eine Feldangabe gesetzt werden, da dies als eine fremde Datei für dieses Feld interpretiert werden würde (SALDO 7).

 

14.15.         Einiges zu Druckzeilen und Positionen.

 

   Eine A4 Seite hat 72 Zeilen und 80 Positionen. Vermeiden Sie es, die Position 80 zu bedrucken, da dies zu doppelten Zeilenschaltungen führen kann.

 

   Eine normale Druckerseite ist 132 Positionen breit und hat 51 Zeilen.

 

   Bei einem normalen Fensterkuvert startet die Adresse in Zeile 10, Position 10.

 

   Adresseetiketten sind in der Regel zwischen 8 und 12 Zeilen. Die Post lässt eine Kundennummer am oberen Rand normalerweise zu.


15.           Kopieren, Löschen, Dokumentation.

 

16.1.         Kopieren einer Liste.

 

   Eine Liste kann mit Hilfe der Funktion 10 in eine andere Liste kopiert werden. Hierbei gibt man an:

 

           VON LISTE

           NACH LISTE

           LISTENNAME NEU

           ANWENDERNAME NEU

 

   Die Liste wird jetzt kopiert. Das BASIC Programm wird nicht mitkopiert, da dies neu generiert wird, wenn die kopierte Liste das erste mal gestartet wird.

 

 

Figur 52 Kopieren einer Liste.

 

DMS.RAPGEN                                          10.....KOPIERUNG

  1 PREISLISTE

  2 LAGERWERTLISTE

  3 DECKUNGSGRAD

  4 PREISBERECHNUNG

  5 LABELS FÜR LIEFERANTEN

  6 SALDENLISTE

  7 ARTIKELLISTE

  8 ARTIKELGRUPPENLISTE

  9 LIEFERANTENLISTE

 10 WÄHRUNGSLISTE

 11 ARTIKEL PR.LIEFERANT

 

 

 

 

 

 

 

 

 

 

 

LISTE NUMMER ? 2     BIS LISTENR.? 12

 2==>12   NEUE NAME ?                          NEUER ANWENDERKURZNAME:YYY

 

 

 

 

16.2.1.       Kopieren einer Liste von einem System in ein anderes.

 

   Als besondere Funktion ist das Kopieren einer Liste in ein anderes System implementiert. Dies hat natürlich nur Bedeutung, wenn der Listgenerator mit mehreren Systemen installiert wurde. Weiterhin müssen die Dateien dieser Systeme identisch sein.

 

   Man muss sich in dem System befinden, von dem man kopieren will. Unter NACH LISTE gibt man 'Systemnr., Listnr.' an, z.B. 10,2 (System 10, Liste 2).

 

16.3.         Löschen einer Liste.

 

   Mit Hilfe der Funktion 5 kann eine Liste gelöscht werden. Um nicht aus Versehen eine Liste zu löschen, muss diese Funktion gesondert bestätigt werden.

 

   Die Funktion 'Löschen einer Liste' kann in besonderem Falle auch vom Programmierer mit Vorteil benutzt werden. Antwortet man nämlich mit N (nein) auf die Bestätigung, wird die Liste natürlich nicht gelöscht. Das generierte BASIC Programm wird aber gelöscht. Diese Situation kann man ausnutzen, um z.B. Verbesserungen in Standardroutinen in die Liste zu übernehmen. Beim nächsten Start dieser Liste wird das BASIC Programm mit den eingebrachten Verbesserungen neu generiert.

 

   Man muss jedoch beachten, dass READ Kommandos für fremde Dateien an die Liste bei der Eingabe der Berechnungszeile READ(xx) gebunden werden. Es wird nämlich eine Kopie dieser Zeile in der Textdatei DMT10xx angelegt. Um auch hier neue Versionen zu erhalten, muss anschliessend die Funktion 4 benutzt werden, und die einzelnen Zeilen müssen bestätigt werden. Dies geschieht am einfachsten, indem man 99 in OK (J/N/I) eingibt.


 

Figur 53 Löschen einer Datei.

 

DMS.RAPGEN                                          5....LÖSCHE EINE LISTENR

  1 PREISLISTE

  2 LAGERWERTLISTE

  3 DECKUNGSGRAD

  4 PREISBERECHNUNG

  5 LABELS FÜR LIEFERANTEN

  6 SALDENLISTE

  7 ARTIKELLISTE

  8 ARTIKELGRUPPENLISTE

  9 LIEFERANTENLISTE

 10 WÄHRUNGSLISTE

 11 ARTIKEL PR. LIEFERANT

 

 

 

 

 

 

 

 

 

 

 

LISTE NUMMER ?  5  LABELS FÜR LIEFERANTEN    LÖSCHE (J/N) ?

 

 

 

 

 

16.5.         Dokumentation der Listdefinitionen.

 

   Über die Funktion 8 kann man die Dokumentation der Listdefinitionen (für eine oder mehrere Listen) ausdrucken. Man wird um die Angabe der Listnummer gebeten. Hier kann man mehrere Nummern, getrennt durch Kommas, angeben. Man kann auch ein Intervall angeben, indem man 'Listnr.‑Listnr.' eintastet. Z.B. wird bei Eingabe von 5,10‑13,7 die Dokumentation für die Listen 5,10,11,12,13,7 ausgedruckt.

 

 

Figur 54 Ausdruck der Listdefinitionen.

 

DMS.RAPGEN                             8.....AUSDRUCK VON LISTEDEFINITIONEN

  1 PREISLISTE

  2 LAGERWERTLISTEE

  3 DECKUNGSGRAD

  4 PREISBERECHNUNG

  5 LABELS FÜR LIEFERANTEN

  6 SALDENLISTE

  7 ARTIKELLISTE

  8 ARTIKELGRUPPENLISTE

  9 LIEFERANTENLISTE

 10 WÄHRUNGSLISTE

 11 ARTIKEL PR. LIEFERANT

 

 

 

 

 

 

 

 

 

 

 

LISTE NUMMER ?  1‑2,12   FELDÜBERSICHT AUSDRUCKEN (J/N/S) ? J

 

 

 

 

 

   Hat man die Listnummer(n) eingegeben, für die man eine Dokumentation wünscht, muss die nächste Frage beantwortet werden:

 

   SOLL EINE FELDÜBERSICHT GEDRUCKT WERDEN (J/N/S/D) ?

 

      N = Übersicht wird nicht gedruckt.

 

      J = Übersicht wird gedruckt. Eine Seite per Liste.

 

      S = Wie J. Für jedes Feld werden auch die BASIC Variablen, die von Listgenerator verwendet werden, mit ausgedruckt.

 

      D = Dump, wie S. Es wird anschliessend das generierte BASIC Programm ausgedruckt.


 

Figur 55 Listedefinitionen für gewichtete Summen.

 

DMS.RAPGEN        RAPPORT NR.12  GEWICHTETER LAGERWERT   JAN 14, 1987 11:34:03

 

DRUCKER:$LPT   STARTPOSITION:001   ANZAHL ZEILEN PRO SEITE: 51

 

DATEI:  1 VA      ARTIKELDATEI               8/CH.VAKA#

 

 

  1...,....10...,....20...,....30...,....40...,....50...,....60...,....70...,.

1:DATUM:#DD          * GEWICHTETER LAGERWERT *       PR.#PD          SEITE:#PP

2:

3:ART.NR NAME                KAUFSPREIS   BESTAND     LAGERWERT     GEWICHTET

4:

5:#1     #2                   #4           #8      #11               #12

  1...,....10...,....20...,....30...,....40...,....50...,....60...,...70....,.

 

SELEKTIONEN:

 

KALKULATIONEN:

   #11=#8*#4                    LAGERWERT=BESTAND*KAUFSPREIS

   #12=#11%#13                  GEWICHTET=LAGERWERT % TOTALWERT

   #12=FNR(#12)                 GEWICHTET=FNR (GEWICHTET)

                                WANN 10   NUR ERSTES PASS   IMMER

   #13=#13+bscu#11                  TOTALWERT=TOTALWERT+LAGERWERT

 

EIN DURCHLAUF DER DATEI IST ERFORDERLICH AUF GRUND GEWIEGTE SUMMEN

SUMMENIVEAU

 

 SOLL DIE LISTE SORTIERT WERDEN (J/N) ? N

 

 GEWICHTE SUMMEN (ZWEI DURCHLAUFE SIND ERFORDERLICH J/N) ? J

 

 SUMMEN‑NIVEAU:FELDNR. ? 1(1,2)  ARTIKELNR    SUMME NIVEAU (J/N) ? J

                                              SUMME NAME: ARTIKELGR

                                              SEITENWECHSEL (J/N) ? N

 SOLLEN SUMMEN VOR DER AUSDRUCK KALKULIERT WERDEN (J/N) ? N

 

 WELCHE FELDER SOLLEN SUMMIERT WERDEN:

    #11   LAGERWERT

    #12   GEWICHTET

 SOLLEN SUMMEN IN MEHRERE GRUPPEN GETEILT WERDEN (J/N) ? N

 

 

 

Figur 56 Dokumentation einer Liste, Feldübersicht.

 

DATEI: VA     ARTIKELDATEI              8/CH.VAKA#

  1 ARTIKELNR.                 4     AAAA

  2 BEZEICHNUNG               20     AAAAAAAAAAAAAAAAAAAA

  3 VERKAUFSPREIS             6,2    ######.##

  4 EINKAUFSPREIS             6,2    ######.##

  5 LETZT.EINKAUFSDATUM       ,6,    ##,##,##

  6 LIEFERANTENNR              3     AAA

  7 GRUPPENNR                 2,     ##

  8 BESTAND                   ‑6,    ‑‑‑‑‑‑#

  9 ALT.LIEFERANTNR           3,     ###

 10 FREIFELD                  ‑6,2   ‑‑‑‑‑‑#.##

 11 LAGERWERT                 ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 12 GEWICHTET                 ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 13 TOTAL WERT                ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 14 @FREI                     ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 15 @FREI                     ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 16 @FREI                     ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 17 @FREI                     ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 18 @FREI                     ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 19 @FREI                     ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 20 @FREI                     ‑9,2   ‑‑‑‑‑‑‑‑‑#.##

 21 @FREI                     ‑6,    ‑‑‑‑‑‑#

 22 @FREI                     ‑6,    ‑‑‑‑‑‑#

 23 @FREI                     ‑6,    ‑‑‑‑‑‑#

 24 @FREI                     ‑6,    ‑‑‑‑‑‑#

 25 @FREI                     ‑6,    ‑‑‑‑‑‑#

 26 @FREI                     ‑6,    ‑‑‑‑‑‑#

 27 @FREI                     ‑6,    ‑‑‑‑‑‑#

 28 @FREI                     ‑6,    ‑‑‑‑‑‑#

 29 @FREI                     ‑6,    ‑‑‑‑‑‑#

 30 @FREI                     ‑6,    ‑‑‑‑‑‑#

 

 

 

 

   Die Dokumentation wird immer auf dem dem Bildschirm zugeordneten Drucker ausgeschrieben. Falls notwendig, kann für Feldübersichten auch ein anderer Drucker angegeben werden.

 

   N,$ORDP             bewirk Ausgabe auf Drucker $ORDP

   N;0011311080,$ORDP  setzt die entsprechenden Drucker parameter.

 

   Für Testzwecke kann die Dokumentation auch auf dem Bildschirm ausgegeben werden (Lampe 4, R4).


16.7.         Andere Funktionen.

 

   Neben den normalen Funktionen 1 ‑ 10 können eine Reihe von Funktionen für die Kommunikation mit dem Betriebssystem und den Druckern benutzt werden.

 

Figur 57 Funktionswahl des Listgenerators.

 

 

                    1 ... NEU LISTE DEFINIEREN

                    2 ... SELEKTIONEN DEFINIEREN

                    3 ... SORTIERUNG UND SUMMIERUNGEN

                    4 ... KALKULATIONEN DEFINIEREN

                    5 ... LÖSCHE EINE LISTENR

                    6 ... NEUEN BRIEF DEFINIEREN

                    7 ... ÄNDERUNG EINER LISTE/BRIEF

                    8 ... AUSDRUCK VON LISTEDEFINITIONEN

                    9 ... AUSGABE LISTE/BRIEF

                   10 ... KOPIERUNG

 

                   CODE EINGEBEN: .......

 

 

 

16.8.1.       Formularvorschub.

 

   F bewirkt 2 Seiten Vorschub auf dem dem Bilschirm zugeordneten Drucker ($LPT).

 

   F1,F2,F3,F4,F5 bewirkt einen entsprechenden Seitenvorschub auf einem der Drucker 1 ‑ 5, entsp. Definition in DMS.RAPGEN.SYS.

 

   TOFx bewirkt x Anzahl Seitenvorschub auf dem dem Bildschirm zugeordneten Drucker.

 

16.8.3.       END.

 

   END bewirkt, dass die laufende Listgenerator Session beendet wird. Man kehrt in die normale Programmwahl zurück (über Backchain in DMS.RAPGEN.SYS).

 

16.8.5.       Wechsel in ein anderes System.

 

   SYSTEM gibt eine Übersicht über die verschiedenen installierten Systeme. Man kann jetzt das System auswählen, welches man anzuwenden wünscht. Dieses Kommando ist also nur von Bedeutung, wenn mehr als ein System installiert ist, z.B. wenn man mehr als 88 verschiedene Listen benötigt.

 

   Der Listgenerator sorgt dafür, dass das gewählte System entsprechend DMS.RAPGEN.SYS von der Datei 0/CHSYSTEM in die Common Area überführt wird.

 

16.8.7.       Stop Hintergrundsliste.

 

   Über dieses Kommando kann ein Programm, das im Hintergrund (Phantomport) abläuft, gestoppt werden. Man sollte im Umgang mit diesem Kommando sehr vorsichtig sein, da man hierüber jedes Hintergrundprogramm, auch Programme, die nicht zum Listgenerator gehören, abbrechen kann.

   Für STAR Systeme ist dieses Kommando nicht zugelassen.

   STOP bricht jedes Programm ab, das auf dem Port p läuft. Dieses Kommando ist nur von Bedeutung, wo mehrere Hintergrundsprogramme auf verschiedenen Ports ablaufen.

 

   Beachten Sie bitte, dass , bevor überhaupt ein Hintergrundport benutzt werden kann, dieses gestoppt sein muss. In der Regel liegt diese Funktion in der täglichen Startprozedur des Systems. Sollte dies nicht der Fall sein, kann man also über die beschriebene Funktion ein solches Port stoppen.

 

16.8.9.       Job Warteschlange.

 

   Mit Hilfe des Kommandos Q ist es möglich, in die DMS Job Warteschlange zu wechseln, sofern diese auf dem System installiert  ist. Listen können in diese Warteschlange bei Programmstart mit dem Kommando Q eingereiht werden.

 

16.8.11.       Scope und Systemprogramme.

 

   # bewirkt eine chain zum Scope, sofern diese für das jeweilige Password vom Betriebssystem zugelassen ist.

   #xxxx bewirkt eine Verkettung (chain) zum Programm xxxx.


17.           Start einer Liste.

 

18.1.         Anwendung der Funktion 9.

 

   Bei Wahl der Funktion 9, START EINER LISTE, erhält man folgendes Schirmbild:

 

Figur 58 Start einer Liste.

 

DMS.RAPGEN     1 PREISLISTE                   9.....AUSGABE LISTE/BRIEF

 

 

    TAGES DATUM ?             060187

 

    PERIODE DATUM ?           060187

 

    START VON  ?                                    INDEX:

                                                    1:ARTIKELNR.

    ENDE  ZU   ?                                    2:LIEFERANTENNR.

 

 

 

 

 

 

 

 

 

NIEDRIGSTE SUM ‑ NIVEAU ANGEBEN ! (0‑ 1 , 0=GANZE LISTE) ? 0

ANFANG:( J=HINTERGRUND, S=BILDSCHIRM, P=BILDSCHIRMDRUCKEN, N=ANNULIERUNG) ? S

PROBEAUSDRUCK (J/N) ?

 

 

 

 

   Man gibt die Startinformation ein, und bestimmt, ob die Liste auf dem Drucker oder auf dem Bildschirm ausgegeben werden soll.

 

   Wird die Liste zum ersten mal gestartet, wird zuerst das entsprechende BASIC Programm generiert. Dies dauert ca. 30 Sekunden. Das generierte Programm wird auf der Platte gespeichert, und ist dann klar für alle weiteren Starts dieser Liste. Ändert an Listdefinitionen, wird das generierte Programm gelöscht, und beim nächsten Start neu generiert.

 

   Beim Generieren des Programmes werden eine Reihe von Überprüfungen vorgenommen, z.B. auf Einhalten der BASIC Syntax u.ä. Bei Fehlern werden vom System entsprechende Mitteilungen ausgegeben. Eventuelle Fehler müssen vor einem Neustart berichtigt werden.

 

   Wird die Liste auf dem Bildschirm gestartet, wird man gebeten, die Taste <CR> für jeden Seitenwechsel zu drücken. Bei der Ausgabe auf dem Drucker tastet man nur einmal <CR> am Ende der Liste. Wird die Liste als Hintergrundprogramm gestartet, erhält man eine Mitteilung, wenn die Liste fertig gedruckt ist, auch wenn man sich zu dem Zeitpunkt nicht mehr im Listgenerator befindet.

 

   Eine Liste kann auch gestartet werden, bevor man alle Definitionen abgeschlossen hat. Dadurch kann man Schritt für Schritt die einzelnen Definitionen prüfen und diese eventuell schon bei der Anlage der Liste korrigieren. Man sollte bei einer neu definierten Liste immer zuerst einen Testlauf auf dem Bildschirm durchführen (eventuell mit einem begrenzten Ausschnitt der Datei).

 

   Im folgenden werden die einzelnen Parameter im Detail erläutert:

 

18.2.1.       Tagesdatum.

 

   Die Felder 'Tagesdatum' und 'per Datum' werden in der Regel in der ersten Überschriftszeile gedruckt. Diese Felder werden zu nichts weiter benutzt, es sein denn, mann hat Berechnungen oder Selektionen definiert.

 

  Bestätigt man nur dieses Feld, wird das Systemdatum übernommen. Normalerweise hat das Datum das Format JJMMTT, es sein denn, dass die Installation von DMS vorgenommen wurde. Dann erscheint das Datum im Format TTMMJJ.

 

   Es wird keine Datumsprüfung vorgenommen.

 

18.2.3.       Per Datum.

 

   Wie 'Tagesdatum'.

 

   'Per Datum' wird typischer Weise für Berechnungen bzw. Selektionen verwendet.


18.2.5.       Start von, Stop bei.

 

   Hierüber kann ein Nummernintervall angegeben werden, in dem die Liste abgearbeitet werden soll, z.B. von Kundennr. bis Kundennr. Gibt man hier <CR> an, wird die gesamte Liste abgearbeitet.

 

   Man kann sich darauf beschränken, einen Teile einer Nummer  einzugeben, da der Listgenerator auf kleiner/gleich abfragt.

 

   Bei Benutzen dieser Funktion ist es notwendig, dass man einiges über den Aufbau der Schlüssel kennt, z.B. ob eine Kundennr. vorangestellte Nullen enthält, da sonst diese Funktion zu Fehlern führen kann.

 

   Im Feld 'Start von' kann man desweiteren folgende Angaben machen:

 

18.2.6.1.     x: Wahl des Index bei Start von.

 

   Handelt es sich um eine Datei mit mehreren Indices, kann hier bestimmt werden, welcher dieser Indices benutzt werden soll, z.B. 2:4711, also mit Index 2 ab Nr. 4711. 'Stop bei' wird normal eingeben.

 

   Für DATAMASTER Dateien wird rechts neben dem Feld 'Start von' eine Übersicht über die verschiedenen Indices gezeigt. Der Programmierer kann bei Installation die Möglichkeit auch für andere Dateien implementieren.

 

18.2.6.3.     SORT, gleiche Sortierung wie zuletzt.

 

   Startet man eine sortierte Liste, wird zuerst die entsprechende Sortierdatei angelegt. Wünscht man eine Liste zu starten, die nach den gleichen Kriterien sortiert sein soll wie die vorhergehende Liste, kann man SORT unter 'Start von' angeben, und der Listgenerator benutzt die bereits aufgebaute Sortierdatei.

 

   Der Anwender muss sich selbst versichern, dass die letzte Sortierung auch auf der gleichen Datei vorgenommen wurde, die jetzt gestartet werden soll.

 

18.2.7.       Weitere Angaben beim Starten einer Liste.

 

   Hat man in den Berechnungen oder Selektionen ein oder mehr Felder des Types #D1 bis #D7 oder #DA1 bis #DA7 benutzt, wird man beim Start einer Liste gebeten, die entsprechenden Werte für diese Felder einzugeben.

 

 

Figur 59 Eingaben beim Start einer Liste.

 

 

DMS.RAPGEN     1 PREISLISTE                   9.....AUSGABE LISTE/BRIEF

 

 

    TAGES DATUM ?             060187

 

    PRO DATUM ?               060187

 

    ANFANG VON ?                                    INDEX:

                                                    1:ARTIKELNR.

    ENDE   ZU ?                                     2:LIEFERANTNR.

 

    VON GRUPPE:               1

    BIS GRUPPE:               5

 

 

 

 

 

 

 

NIEDRIGSTE SUM ‑ NIVEAU ANGEBEN ! (0‑ 1 , 0=GANZE LISTE) ? 0

ANFANG:( J=HINTERGRUND, S=BILDSCHIRM, P=BILDSCHIRMDRUCKEN, N=ANNULIERUNG) ? S

PROBEAUSDRUCK (J/N) ?

 

 

 

 

 

   Diese Funktion kann besonders nützlich sein, um vor dem Start einer Liste bestimmte Grenzwerte einzugeben (z.B. für Selektierungen).


18.2.9.       Warnung beim Sortieren/gewichteten Summen.

 

   Sofern die Liste sortiert oder mit gewichteten Summen definiert ist, wird dies dem Anwender angezeigt, da es eine Zeit dauern kann, bis die eigentliche Ausschrift der Liste beginnt.

 

   Man kann keine sortierte Liste starten, wenn bereits eine Liste, die sortiert werden soll, abläuft, da in diesem Falle die Sortierdatei blockiert ist.

 

18.2.11.       Niedrigste Summenebene.

 

   In der Regel tastet man hier nur <CR>, und die gesamte Liste wird ausgedruckt.

 

   Man hat jedoch die Möglichkeit anzugeben, dass man nur Summen und/oder Zwischensummen ausgegeben haben will.

 

           1 = erste Zwischensummenebene

           2 = zweite Zwischensummenebene

           3 = ....

           4 = ....  u.s.w.

 

   Ist die Liste ohne Zwischensummenebenen definiert, wird bei Angabe der 1 die Endsumme ausgedruckt.

 

18.2.12.1.     Ünterdrücken des Ausdrucks.

 

   Speziell für Listprogramme mit Zurückschreiben bewirkt die Angabe des niedrigsten Niveaus (9), dass jeglicher Ausdruck unterdrückt wird, d.h. die Datei wird nur ajour geführt.;

 

18.2.13.       Dateinummer.

 

   Diese Frage wird normalerweise bei speziellen Installationen gestellt, z.B. Klientbuchhaltungen.

 

   Hat der Programmierer eine Datei mit einem Namen, der ein ? beinhaltet, definiert, wird der Anwender gebeten, die Dateinr. einzugeben. Dieser Wert erstattet ? im Dateinamen. Hierdurch kann die gleiche Liste auf der Basis verschiedener Dateien gefahren werden.

 

18.2.15.       Start auf Drucker/Bildschirm/Hintergrundsport.

 

   Hier gibt man, wo die Liste ausgegeben werden soll.

 

   J   = Ja, die Liste wird auf einen Hintergrundsport gestartet. Der Diesem Port zugeteilte Drucker wird benutzt.

   S   = Die Ausgabe erfolgt auf dem Bildschirm.

   P   = Die Ausgabe erfolgt auf dem dem Bildschirm zugeteilten Drucker.

   1‑3 = Wie J, doch kann der Port bestimmt werden.

   Q   = Einsetzen in die Job Warteschlange. Wir verweisen hier auf den entsprechenden Abschnitt, der die notwendigen weiteren Parameter beschreibt.

 

18.2.17.       Testprint.

 

   Antwortet man J (ja) auf die Frage 'Testprint ?', wird eine Seite der Liste auf dem Drucker ausgegeben. Dies dient dem Anwender dazu, das Druckformular richtig einzustellen. Ein Testprint kann beliebig ost wiederholt werden.

 

   Bei Systemen mit sehr wenig Speicherplatz ist ein Testprint von umfangreichen Briefen nicht möglich.

 

 

Figur 60 Beispiel von einem Testprint.

 

DATUM:##.##.##              * ARTIKELLISTE *          PR.##.##.##

 

NR   NAME               VERKAUFSPREIS EINK.PREIS  DATUM LIE.ALT GR

 

xxxx xxxxxxxxxxxxxxxxxxxxx ######.## ######.## ##,##,## xxx ### ##

 

 

 


18.3.         Generierung eines Programmes.

 

   Das erste mal, wenn eine Liste gestartet wird, wird ein entsprechendes BASIC Programm generiert. Das generierte Programm wird dann auf der Platte gespeichert, und die Liste kann beim nächsten mal direkt gestartet werden. Dieser Vorgang läuft in vier Schritten ab:

 

           Programm wird generiert

 

           Programm wird optimiert

 

           Programm wird geladen

 

           Programm wird gestartet

 

   Bei der Generierung werden die vom Anwender vorgenommen Definitionen mit den Routinen des Listgenerators vereint. Es entsteht ein BASIC Programm.

 

   Während des Optimierens werden Druckzeilen für das Layout der Liste gebildet, und alle Parametersteuerungen werden entfernt. Die Optimierungsfase kann durch Angabe eines bestemmten Parameters ausgelassen werden.

 

   Bei Laden wird das fertige Programm dem BASIC des Betriebssystem übergeben, welches jetzt die Kontrolle übernimmt. Sofern das Programm fehlerfrei ist, wird es anschliessend auf der Platte gespeichert. Wird eine Liste gestartet, wird dieses BASIC Programm aufgerufen, und die notwendigen Dateien werden über ein spezielles Modul geöffnet.

 

18.5.         Bedienung der Hintergrundsporte (Phantomports).

 

   Ein Hintergrundsport arbeitet wie ein extra Bildschirm, auf dem eine Liste gestartet werden kann.

 

   Normalerweise hat eine System nur einen solcher Hintergrundsporte, nämlich Bildschirm Nr. 1.

 

   Der Programmierer kann, falls erforderlich, mehrere solcher Hintergrundporte in der Konfigurierung definieren. Hierdurch kann man jedem Listgeneratorsystem einen eigenen Hintergrundport zuordnen. Antwortet man beim Start dann nur mit J, wird der dem Listprogramm zugeordnete Hintergrundport abgesprochen. Man kann über die Angabe 1‑3 den Port auch frei wählen.

 

   Ein Programm, das auf einem Hintergrundport abläuft, kann über das Kommando STOP abgebrochen werden.

 

   Ist das Programm auf dem Hintergrundport fertig, wird eine entsprechende Mitteilung an den Bildschirm gegeben, der das Programm gestartet hat.

 

18.7.         Lampenfunktionen.

 

   Läuft ein Programm auf einem Bildschirm, können folgende Lampentasten verwendet werden:

 

   R1 = Der aktuelle Dateischlüssel wird am Bildschirm angezeigt.

 

   R2 = Man wird um die Eingabe des nächsten Schlüssels gebeten.

 

   Durch Aktivieren der Taste R1 kann man beim Sortieren verfolgen, wie lang man in der Liste gekommen ist. Weiterhin kann diese Funktion benutzt werden, wenn man über den Aufbau eines Schüssels im Zweifel ist.

 

   Über die Taste R2 kann in der Reihenfolge in einer Liste gesprungen werden. Dies ist besonders nützlich für den Test einer Liste.


19.          Fehlermitteilungen.

 

20.1.        Fehlermitteilungen.

 

20.2.1.      Drucker nicht bereit.

 

Der angesprochene Drucker ist nicht betriebsbereits (nicht angeschaltet, kein Papier o.ä.).

Der Drucker kann auch von einem anderen Anwender belegt sein.

Diese Mitteilung kann auch auftreten, wenn man versucht, Zeilen > der Druckerbreite auszugeben.

 

20.2.3.      Programm nicht vorhanden.

 

Eine Liste muss über die Funktionen 1 oder 6 definiert sein, bevor man andere Funktionen anwenden kann.

 

20.2.5.      Liste nicht definiert.

 

Eine Liste muss über die Funktionen 1 oder 6 definiert sein, bevor man andere Funktionen anwenden kann.

 

20.2.7.      Liste bereits definiert.

 

Die Listennr. ist bereits verwendet worden.

Eventuell muss die alte Liste erst gelöscht werden.

Mann darf auch nicht eine Liste in eine neue Liste kopieren, deren Nummer bereits besteht.

 

20.2.9.      Keine weiteren freien Listen.

 

Die Anzahl der Listen kann 88 nicht übersteigen.

Eventuell müssen alte Listen erst gelöscht werden.

Die Anzahl Listen kann eventuell mit DMS.RAPGEN.SYS erweitert werden, oder man installiert ein neues System.

 

20.2.11.      Liste ist nicht mit diesem Generator definiert.

 

Die Listdefinitionen können mit dem aktuellen Listgenerator nicht verarbeitet werden.

 

20.2.13.      Falches Password.

 

Bei Anlage einer neuen Liste kann diese mit einem Password geschützt  werden. Das Password muss anschliessend bei jeder Berichtigung der Liste angegeben, werden. Wurde <Ctrl><E> vor und nach dem Password angegeben, muss das Password auch bei einem normalen Start der Liste eingegeben werden.

 

20.2.15.      Liste bereits von anderen Bildschirm benutzt.

 

Ein anderer Bildschirm benutzt die angegebene Liste. Beachten Sie bitte, dass, wenn man eine Listdefinition mit <ESC> abgebrochen hat, die Listennummer besetzt verbleibt.

 

20.2.17.      Falsche Systemnummer.

 

Man hat eine Systemnummer eingegeben, die nicht in DMS.RAPGEN.SYS definiert ist.

 

20.2.19.     Listgenerator vor anderem Bildschirm benutzt.

 

Es stehen keine weiteren freien Arbeitsdateien (maximal 9) für diesen Listgenerator zur Verfügung. Eventuell muss die Anzahl der Arbeitsdateien in DMS.RAPGEN.SYS erhöht werden.

 

20.2.21.

10.1.11.     Benachrichtigen Sie bitte ihren Systemberater.

(nicht aktuell).

 

20.2.23.     Benachrichtigen Sie bitte den technischen Service.

 

Das Auslaufdatum in DMS.RAPGEN.SYS ist überschritten.


20.2.25.

10.1.13.     Datei nicht vorhanden.

 

Die angesprochene Datei ist auf dem System nicht vorhanden.

 

20.2.27.     Datei nicht implementiert.

 

Die angesprochene Datei kann vom Listgenerator nicht angesprochen werden.

 

20.2.29.     Datei nicht implementiert (READ fehlt).

 

Die Textdatei, die das READ Kommando enthält, ist nicht vorhanden (bei alten Betriebssystemen bis Vers. 5.0 eventuell geschützt). Die Textdatei wird bei der Installation eingerichtet und muss unter der gleichen lu wie DMFILES liegen.

 

20.2.31.     Datei nicht implmentiert (DRN fehlt).

 

Die angesprochene Datei ist nicht korrekt dem Listgenerator angemeldet. Die Definitionsnummer (DRN) in der Datei DMFILES fehlt, obwohl Utility Kode korrekt gesetzt und READ Kommandos vorhanden sind.

 

20.2.33.     Liste kann nicht gestartet werden.

 

Es wurde versucht, eine Liste zu starten, wo die Textdatei DMT10xx nicht vorhanden ist. Ein Brief kann z.B. nur in seiner Grundversion gestartet werden, da eine Unterversion keine selbstständige Liste ist.

 

20.2.35.     Listdatei voll.

 

Es ist nicht genug zusammenhängender Platz in der Listdatei für die aktuelle Liste vorhanden. Die Listdatei muss erweitert werden (mit DMS.RAPGEN.SYS). Hierbei erfolgt dann auch gleichzeitig ein sog. Cleanup der Datei.

 

20.2.37.     Verkehrtes Zeichen in einem numerischen Feld.

(nicht aktuell).

 

20.2.39.     Falsche Listennummer.

 

Es wurden nicht soviele Listen im System definiert. DMREPORT kann eventuell erweitert werden (mit DMS.RAPGEN.SYS), oder es können mehrere Systeme definiert werden.

 

20.2.41.     Sortieren nicht zugelassen.

 

Es läuft bereits eine sortierte Liste, und die Sortierdatei ist im Augenblick blockiert.

 

20.2.43.     Sortieren nicht implementiert.

 

Es wurde keine Sortierdatei bei Installation eingerichtet, wahrscheinlich aus Platzgründen. Eine Sortierdatei kann mit BUILDXF angelegt werden (Schlüssellänge = 10‑15 Worte, Satzlänge = 2 und Anzahl Sätze = maximale Anzahl Sätze der grössten Datei).

 

20.2.45.     Falsche Feldnummer.

 

Es gibt nicht so viele Felder in der Datei.;

 

20.2.47.     Falsche Anzahl.

 

Definiert man Gruppensummen, muss die Anzahl der möglichen Kode > 0 sein.

 

20.2.49.     Programm wird zu umfangreich.

 

Das generierte Listprogramm ist zu gross. Die Ursache hierfür liegt meistens darin, dass sehr viele Felder, für die Summen gebildet werden sollen, definiert sind. Die maximale Grösse des Programmes ist durch die Partition Grösse bestimmt. Eventuell kann die Genauigkeit bei Berechneten Summen herabgesetzt werden.


20.2.51.     Das Feld wird bereits summiert.

 

Man hat versucht, das gleiche Feld zweimal für eine Summe zu definieren.

 

20.2.53.     Hintergrundsport besetzt, neuer Versuch (J/N).

 

Ein Program kann nicht auf dem Hintergrundsport gestartet werden, da hier bereits ein Programm abläuft. Man kann angeben, ob man einen neuen Versuch machen will (J), oder den Vorgang abbrechen will (N). Beachten Sie bitte, dass vor Benutzen des Hintergrundsportes das Port gestoppt sein muss (eventuell über das Kommando STOP).

 

20.2.55.     Zeile zu lang.

 

Die maximale Zeilenlänge hängt von gewählten Drucker ab, doch max. 175 Zeichen.

 

20.2.57.     BASIC Fehler Nr. xxxx in Zeile Nr. xxxx.

 

Siehe nachfolgende Übersicht über BASIC Fehler. Nach dieser Mitteilung wird die entsprechende Berechnungszeile angezeigt.

 

20.2.59.     BASIC Fehler Nr. xxxx in Zeile Nr. xxxx in DMS.RAPGEN.xxx.

 

Siehe nachfolgende Übersicht über BASIC Fehler.; Überprüfen Sie noch einmal die Installation, speziell dass die Speichergrösse in DMS.RAPGEN.SYS nicht grösser ist als die Partitiongrösse, und dass die Anzahl Dateien in SYSMOD gross genug ist (20). Benachrichtigen Sie eventuell den Systemberater.

 

20.2.61.     Nicht genug Speicher für Testprint.

 

Ein Testprint verlangt mehr Speicherplatz als eine normale Liste. Vermeiden Sie in diesem Falle den Testprint oder Setzen Sie die Partitiongrösse herauf.

 

20.2.63.     Fehler beim Sortieren, Status=x.

 

Es ist ein Fehler beim Einsetzen eines Schlüssels  in die Sortierdatei aufgetreten. Der Status gibt die Fehlernummer des Search Kommandos an. Ist die Sortierdatei zu klein, wird der Status 2 oder 3 gemeldet. Das beste ist in diesem Falle die Sortierdatei DMSORTWORK zu erweitern (mit BUILDXF).

 

20.2.65.     Funktion x kann nicht ausgeführt werden.

 

Versucht man eine Unterversion zu sortieren, selektieren oder Berechnungen anzustellen, erhält man diese Fehlermitteilung.

 

20.2.67.     Die folgenden Listen sind benutzt.

 

Definiert einen Brief mit der Nummer 10 und vier Versionen, müssen die Listennummern 11‑14 frei sein, im anderen Falle erhält man obige Fehlermitteilungen.

 

20.2.69.     Falsches Format.

 

Die Angabe des Formates für ein Freifeld ist nicht korrekt.

 

20.2.71.     Falsche Feldnummer, muss zwischen 1 und xx liegen.

 

Eine falsche Feldnummer wurde eingegeben.

 

20.2.73.     Keine Summen in Briefen.

 

Es wurde versucht, in Briefen Summen zu definieren.

 

20.2.75.     Sortierbegriff verkürzt auf xx Stellen.

 

Man hat einen Sortierbegriff auf ein zu langes alphanumerisches Feld definiert (> 27 Zeichen). Der Sortierbegriff wird auf die ersten 27 Zeichen verkürzt.


20.2.77.     DMS.RAPGEN nicht installiert.

 

(ERROR xx AT xxxx FILE: xxxxxxxxx).

Fehler beim Eröffnen den Systemdateien des Listgenerators.

 

20.3.        SAVE Fehlernummer.

 

Beim Schreiben eines generierten Programmes auf die Platte, kann es sein, dass eine Fehlernummer ausgegeben wird, z.B. wenn nicht genug Platz auf der Platte vorhanden ist.

Save Fehler sind im BASIC Handbuch im Detail beschrieben.

 

20.4.1.      SAVE Fehler Nr.104.

(nicht aktuell).

 

20.4.3.      SAVE Fehler Nr.108.

 

Der Platz auf Platte reicht nicht aus.

Eventuell können alte Listen gelöscht, bzw. die gesamte Platte reorganisiert werden. Man kann auch die Anzahl der gespeicherten Listen in DMS.RAPGEN.SYS herabsetzen. Dies hat dann aber Einfluss auf die Bearbeitungszeit einer Liste, da diese eventuell jedesmal neu generiert werden muss.

 

20.5.        BASIC Fehlernummern.

 

Im folgenden werden die am häufigst auftretenden BASIC Fehler beschrieben. Wir verweisen hier auf die BASIC beschreibung, in denen die einzelnen Fehler im Detail beschrieben sind.

Eine Fehlermitteilung kann wie folgt aussehen:

 

Figur 61 Beispiel einer BASIC‑Fehlermitteilung.

 

DMS.RAPGEN        2 LAGERWERTLISTE

 

 

 

 

 

                                 ‑ PROGRAMM WIRD GENERIERT ‑ WARTE..

                                 ‑ PROGRAMM WIRD OPTIMIERT ‑ WARTE..

                                 ‑ PROGRAMM WIRD GELADEN ‑ WARTE...

                                 #11=(#8*#4

 

 

                                 BASIC FEHLER NR. 11 IN ZEILE NR. 52

 

                                 VERKEHRTE KLAMMER.

 

 

 

TASTE CR.

 

 

 

 

20.6.1.      Nr.1 Syntaxfehler.

 

Die eingegebene Zeile enthält einen Syntaxfehler.

 

20.6.3.      Nr.2 Falsche alphanumerische Textbehandlung.

 

Fährt man Berechnungen auf einem alphanumerischen Feld durch, müssen die Werte in Anführungszeichen ( " " ) gesetzt werden. Numerische Werte dürfen nicht auftreten.

 

20.6.5.      Nr.3 Programm ist zu gross.

 

Normalerweise erlaubt der Listgenerator keine zu grossen Programme. Sollte dennoch einmal dieser Fehler auftreten, muss die Anzahl Summen herabgesetzt, oder der Text in einem Brief reduziert werden.

In neueren Betriebssystemen (5.0 ff.), wird keine Fehlermitteilung ausgegeben, sonders das Programm abgebrochen. Man kehr dann in die TAMOS Programmwahl zurück.

 

20.6.7.      Nr.5 Falsches Zeichen.

Siehe Fehler Nr.1.


20.6.9.      Nr.9 Falsches Wort.

Siehe Fehler Nr.1.

 

20.6.11.      Nr.11 Falsche Klammer.

 

Anzahl rechte und linke Klammern ungleich.

 

20.6.13.      Nr.15 Division mit 0 oder arithmetischer Überlauf.

 

Fataler Fehler, da man niemals mit 0 teilen darf.

Der Wert für ein 1 Worte Feld darf 7999 nicht übersteigen.

 

20.6.15.      Nr.18 Zuviele FOR/NEXT Schleifen.

(nicht aktuell).

 

20.6.17.      Nr.25 Alphanumerisches Feld nicht dimensioniert.

 

Bei einem Verweis auf Felder einer fremden Datei müssen die Rechnungen das READ Kommando enthalten. Diese Zeile muss vor den Zeilen liegen, in denen mit dem Feld weitergerechnet wird.

 

20.6.19.     Nr.26 Logische Einheit nicht aktiv.

 

Beim Start einer Liste wird eine Datei versucht zu eröffnen. Die entsprechende Platteneinheit (lu) ist nicht betriebsbereit.

 

20.6.21.

10.3.11.     Nr.28 Falscher Wert für Index, Kanalnr. oder Signalparameter.

 

Nur bei sehr speziellen Installationen von Bedeutung.

 

20.6.23.     Nr.30 FN Funktion nicht definiert.

 

Buchstabierfehler beim Aufrufen einer BASIC Funktion, z.B. FNE(50).

 

20.6.25.

10.3.13.     Nr.42 Datei nicht vorhanden.

 

Die angesprochene Datei ist nicht vorhanden.

 

20.6.27.     Nr.45 Datei lesegeschützt.

 

Nur bei Betriebssystemen vor Vers. 5.0.

Die Datei ist für den Anwender gesperrt.

 

20.6.29.     Nr.47 Platte voll.

 

Auf der Platte ist kein freier Platz mehr für das Speichern des generierten Programmes.

 

20.6.31.     Nr.50 Datei wird bereits benutzt.

 

Die Datei ist gegen überschreiben von einem anderen Arbeitsplatz/Programm gesperrt (siehe Sortieren).

 

20.6.33.     Nr.51 Falsche Satsnummer.

 

Der Index einer Datei ist zerstört. Benachrichtigen Sie Ihren Systemberater.

 

20.6.35.     Nr.52 Satz nicht vorhanden.

Siehe Fehler Nr.51.

 

20.6.37.     Nr.73 Falscher Parameter.

 

Prüfen Sie bitte die Druckerzuteilungen in TAMOS.

Der Fehler kann auch auftreten, wenn die Sortierdatei aufgefüllt ist, eventuell aufgrund eines Fehlers im Betriebssystem. Hier ist es notwendig, die Datei zu löschen und neu anzulegen.


                                                                            Figuren

Figur 1  Funktionswahl des Listgenerators..............................................................................................................................................   7

Figur 2  VA Artikeldatei...............................................................................................................................................................................   9

Figur 3  LE Lieferantendatei........................................................................................................................................................................   9

Figur 4  KU Kundendatei.............................................................................................................................................................................   9

Figur 5  GR Artikelgruppendatei.................................................................................................................................................................   9

Figur 6  Tastaturbelegung Listgenerator................................................................................................................................................   10

Figur 7  Übersicht über bereits bestehende Listen/Anfragen.............................................................................................................   12

Figur 8  Dateien...........................................................................................................................................................................................   13

Figur 9  Stammdaten einer Datei...............................................................................................................................................................   14

Figur 10 TAMOS Programmwahl.............................................................................................................................................................   15

Figur 11 Felder einer Liste/Anfrage.........................................................................................................................................................   16

Figur 12 Ausdruck einer fertigen Liste....................................................................................................................................................   16

Figur 13 Lieferantenliste, mit Saldo > 500 DM........................................................................................................................................   20

Figur 14 Definition der Selektionskriterien..............................................................................................................................................   20

Figur 15 Berechnungen..............................................................................................................................................................................   23

Figur 16 Eingabe einer Rechenregel.........................................................................................................................................................   24

Figur 17 Änderung einer Berechnung.....................................................................................................................................................   24

Figur 18 Dateiübersicht, 'Hilfe'‑Funktion.................................................................................................................................................   36

Figur 19 'Hilfe' für eine einzelne Datei......................................................................................................................................................   37

Figur 20 Erweiterte 'Hilfe' durch Angabe von VA01..............................................................................................................................   37

Figur 21 Saldenliste mit Währungsumrechnung....................................................................................................................................   39

Figur 22 Preiskalkulation............................................................................................................................................................................   39

Figur 23 Mehrfachlesen einer Datei.........................................................................................................................................................   40

Figur 24 Beispiel für Gruppensummen.....................................................................................................................................................   41

Figur 25 Lagerwert START/NEXT/OM...................................................................................................................................................   41

Figur 26 Definitionen für Summierung des Lagerwertes.......................................................................................................................   42

Figur 27 Lieferanten, nicht aktiv seit 30.06.86.........................................................................................................................................   43

Figur 28 Waren per Lieferant, READH und LINIE.................................................................................................................................   43

Figur 29 Selektieren nach Warengruppe > 0...........................................................................................................................................   44

Figur 30 Summen mit READH/LINIE.......................................................................................................................................................   45

Figur 31 Aufbau eines Sortierbegriffes...................................................................................................................................................   47

Figur 32 Liste mit Zwischensummen, sortiert nach Warengruppen...................................................................................................   48

Figur 33 Sortieren nach Haupt‑ und Nebenlieferant..............................................................................................................................   49

Figur 34 Definition von Zwischensummenebenen................................................................................................................................   50

Figur 35 Ausdruck mit Zwischensummen (sortiert)..............................................................................................................................   50

Figur 36 Ausdruck mit Zwischensummen (nicht sortiert)....................................................................................................................   50

Figur 37 Ausdruck mit gewichteten Summen und ZwischensumSCmen...........................................................................................   51

Figur 38 Definition einer gewichteten Summe........................................................................................................................................   52

Figur 39 Struktur des Listgenerators.......................................................................................................................................................   53

Figur 40 Liste ohne berechnete Summe, falsche Verdienstspanne.....................................................................................................   54

Figur 41 Liste mit berechnete Summe, falscher Lagerwert....................................................................................................................   54

Figur 42 Liste mit berechneter Summe und WANN‑Funktion.............................................................................................................   54

Figur 43 Definitionen für berechnete Summen.......................................................................................................................................   55

Figur 44 Felder für die Summenbildung...................................................................................................................................................   56

Figur 45 Gruppensummen..........................................................................................................................................................................   57

Figur 46 Definition von Gruppensummen...............................................................................................................................................   57

Figur 47 Mehrere Gruppensummen, die letzt 'unbestimmt'...................................................................................................................   58

Figur 48 Definition eines Briefes..............................................................................................................................................................   59

Figur 49 Änderung einer Liste..................................................................................................................................................................   60

Figur 50 Druckraster auf dem Bildschirm................................................................................................................................................   61

Figur 51 Kommando MODE = 0................................................................................................................................................................   62

Figur 52 Kopieren einer Liste....................................................................................................................................................................   64

Figur 53 Löschen einer Datei....................................................................................................................................................................   65

Figur 54 Ausdruck der Listdefinitionen..................................................................................................................................................   65

Figur 55 Listedefinitionen für gewichtete Summen...............................................................................................................................   66

Figur 56 Dokumentation einer Liste, Feldübersicht...............................................................................................................................   66

Figur 57 Funktionswahl des Listgenerators...........................................................................................................................................   67

Figur 58 Start einer Liste............................................................................................................................................................................   68

Figur 59 Eingaben beim Start einer Liste.................................................................................................................................................   69

Figur 60 Beispiel von einem Testprint.....................................................................................................................................................   70

Figur 61 Beispiel einer BASIC‑Fehlermitteilung.....................................................................................................................................   75

 

                                                                                               Stichwort


$LPT........................................................... 42, 52, 55, 60, 66, 67

+xx............................................................................................ 16

‑xx....................................................................................... 16, 18

#DA......................................................................................... 27

#DD.................................... 23, 24, 27, 36, 37, 42, 52, 55, 62, 66

#GRUPPE................................................................................ 28

#KA......................................................................................... 63

#NIVEAU.......................................................................... 28, 41

#NO.......................................................................................... 63

#OK.......................................................................................... 27

#PD........................ 23, 24, 27, 34, 36, 37, 42, 43, 52, 55, 62, 66

#PP................................................................... 27, 42, 52, 63, 66

#SC..................................................................................... 27, 63

#SN.......................................................................................... 63

#SY........................................................................................... 63

#TI............................................................................................ 63

ABS.......................................................................................... 30

Anwendername................................................................ 15, 64

Arbeitsdateien........................................................................ 72

Arbeitstage............................................................................. 34

Auslaufdatum......................................................................... 72

Automatisch.............................................. 12, 14, 17, 19‑21, 63

Betriebssystem............................................... 11, 49, 67, 71, 76

Breite........................................................................................ 19

Brief............................................. 7, 18, 59, 60, 62, 67‑69, 73‑75

BUILDXF.......................................................................... 73, 74

Checks..................................................................................... 59

CHSYSTEM...................................................................... 11, 67

CLEANUP............................................................................... 73

DATAMASTER............................ 8, 11, 13, 22, 35, 38, 46, 69

DIM.......................................................................................... 35

Division....................................................................... 25, 29, 76

DL............................................................................................. 62

DMFILES................................................................................ 73

DMREPORT........................................................................... 73

DMS.RAPGEN.S6A............................................................... 30

DMS.RAPGEN.SYS.............................................. 11, 67, 72‑75

DMS.RAPS....................................................................... 33, 34

DMSORTWORK............................................................. 48, 74

DRN......................................................................................... 73

Drucker............... 7, 12, 15, 42, 52, 55, 60, 61, 66‑68, 70, 72, 74

Ebene........................................................................... 15, 28, 57

Etiketten............................................................................ 12, 59

Feldformat............................................................. 18, 19, 60, 62

FNA......................................................................................... 29

FNB.......................................................................................... 29

FND.................................................................................... 29, 43

FNH.......................................................................................... 29

FNR.................................................................. 29, 39, 52, 55, 66

FNU.......................................................................................... 30

FNV.......................................................................................... 30

Format................ 8, 12, 14, 18, 19, 23, 45, 50, 55, 60, 62, 68, 74

Freifeld.................. 23, 24, 35, 37, 42, 43, 47, 49‑51, 56, 57, 62,

                                                                                             66, 74

GOSUB.............................................................................. 33, 34

Gruppensumme...................................................................... 57

IL.............................................................................................. 62

INT........................................................................................... 30

Intervall....................................................................... 35, 38, 65

Labels    64, 65

Lampe...................................................................................... 66

Layout..................................................................... 8, 12, 61, 71

LD............................................................................................. 62

Leerzeilen................................................................................ 18

LEN.......................................................................................... 30

LI.............................................................................................. 62

LOAD................................................................................ 33, 34

LU....................................................................................... 73, 76

MODE...................................................................................... 62

Modulus.................................................................................. 33

NIROS...................................................................................... 11

NOT................................................................................... 30, 31

Null............................................................. 12, 21, 25, 33, 43‑45

Numerisch................................................................... 22, 40, 58

NYRUP.................................................................................... 22

Ocr............................................................................................ 33

Overflow.................................................................................. 19

Partition................................................................................... 73

Pass........................................................................ 52, 53, 55, 66

Password......................................................... 13, 15, 35, 67, 72

Phantomport........................................................................... 67

POS..................................................................................... 59‑62

Procent.............................................................................. 23, 24

Prozent............................................................................... 25, 51

QUICK............................................................................... 22, 52

RASTER.................................................................................. 61

Rechengenauigkeit................................................................ 19

REM......................................................................................... 28

REPEAT....................................................................... 38, 41‑43

S9$................................................................................ 26, 28, 41

SAVE....................................................................................... 75

SCOPE..................................................................................... 67

Search...................................................................................... 74

Selektion...................................................................... 21, 22, 38

SGN.......................................................................................... 30

SORT......................................................... 23, 24, 36, 37, 48, 69

SQR.......................................................................................... 30

STAR................................................................................. 22, 67

Status................................................................................. 27, 74

STOP................................................................ 35, 67, 69, 71, 74

SYSMOD........................................................................... 11, 74

Systemnr........................................................................... 63, 64

T2$............................................................. 28, 30, 33, 34, 39, 63

T3....................................................................................... 28, 34

T3(1)................................................................................... 28, 34

T9$..................................................................................... 28, 33

TAMOS................................................................. 10, 15, 75, 76

Testprint............................................................................ 70, 74

Utility....................................................................................... 73

 



     [1]Systeme werden unter 0/CHSYSTEM gespeichert und mit DMS.RAPGEN.SYS gepflegt.

     [2]Siehe Abschnitt MEHRERE DATEIEN.

     [3]Beachten Sie bitte, dass diese Funktion die Anwendung von ­­­ in früheren Versionen des  weListgenerators ersetzt.

     [4]#x wird als S1,S2,S3,S4,S$(xxx) übersetzt.

     [5]KU#x wird entspr. der Dateinr. als B,C,D,... übersetzt.

     [6]#DD = X(7)

     [7]#PD = X(6)

     [8]#Dx = Q(x)

     [9]#DA = X0$(25*(X‑1)‑1,25*X).

     [10]#PP = X0(13).

     [11]#OK = R4.

     [12]#SC = X(10).

     [13]#NIVEAU = P8.

     [14]Das Unterprogramm 5100 wird generiert.

     [15]Das Unterprogramm 5150 wird generiert.

     [16]Das Unterprogramm 5200 wird generiert.

     [17]Das Unterprogramm 5250 wird generiert.

     [18]Da der READ Befehl (4800/4900) den Dateischlüssel entpackt.

     [19]#DD wird in X(7) übersetzt.

     [20]#PD wird in X(8) übersetzt.

     [21]#PP wird in X0(13) übersetzt.

     [22]#KA wird in T8$(189,192) übersetzt.

     [23]#SN wird in T8$(159,188) übersetzt.

     [24]#SY wird in T8$(155,157) übersetzt.

     [25]#TI wird über T2$(15,22) von CALL 99,T2$ geholt.

     [26]#NO wird in X(1) übersetzt.

     [27]#SC wird in X(10) übersetzt.