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