Easydat Version 1.20

Anleitung
oder
etwas in der Art

von Marco Feikert
Wüstlautenbach 17, 55743 Idar-Oberstein 1
Tel. 06781/23469 (Wochenende)
Email: feikert(at)informatik.uni-kl.de oder feikert(at).uni-kl.de

oder
Kurt Schumacherstr.8 
67663 Kaiserslautern
Tel. 0631/22910
(ist immer noch gültig)

Dieses Programm ist SHAREWARE. Anschauen und Ausprobieren erlaubt, bei Benutzung bitte mir den Betrag von 40 DM zukommen lassen. Für eine Leerdisk und einen Rückumschlag gibt es die neueste Version des Programmes (insofern eine existiert, aber ich bin zuversichtlich...).

Fehlermeldungen sind immer willkommen ... auch von solchen die noch nicht registriert sind..

- - - - -

English Section

This program is Shareware. You can take a look at it and test it, but if you use it, please send me the amount of 40 German marks (25 Dollars), or calculate it into your local currency. If you send me also an empty disk and a self adressed envelope, you will receive the newest version of Easydat. (If one exists, but i hope so..., or take a look at some internet-atari-ftp-archives).

Bug reports are always welcome ... from anyone.

An english version of this file will follow some time later.
- - - - -

Pre-Story - Vorgeschichte:

Auf dem Spielrechner von Commodore, namens Amiga, gab es mal, bzw. vielleicht gibt es das noch, ein Programm namens GO-Amiga Datei. Dieses war eine recht einfach aufgebaute und gut zu bedienende Datenbank, mit welcher man, soweit ich mich noch erinnern kann, auch Bilder und Sounds (Samples) verwalten konnte. Da ich mich aber immer ungern mit dem Amiga herumnervte, entschloß ich etwas in der Art auf dem Atari zu schreiben, in dem Fall ohne Bilder und Sound Verwaltung ... braucht man zu selten.
Easydat hat nicht tausende von verzwickten Möglichkeiten eine Datenbank aufzubauen, wie etwa Phoenix((tm)-(Applications Systems Heidelberg)) oder andere größere Applikationen, die Funktionen von Easydat reichen aber völlig aus, um Sammlungen oder ähnliches gut und schnell zu verwalten.

Die erste Version (for my eyes only) entstand in GFA-Basic 3.5, ohne Fenster, ohne Resourcedatei und mit max. Stringlänge von 67 Zeichen. Danach wurden Fenster und Resourcen eingebaut ... und das Programm lief immer noch. Dann folgte eine variable Stringlänge von bis zu 255 Zeichen ... und das gab dann Ärger. Aus unerfindlichen Gründen hängte sich das Programm damit öfters auf. GFA-Basic scheint es mit der Stringverwaltung nicht so ganz ernst zu nehmen, oder ich nahm GFA Basic nicht ernst genug. Darauf schrieb ich das ganze auf Pure Pascal um ... und siehe da, es lief wieder. Die Sourcecodelänge beläuft sich zur Zeit auf etwa 350 KB.

Das Programm ist keine von den Datenbanken, die nur einen Teil ihres Inhaltes im Speicher halten und die direkt auf einen Datensatz von (Hard)Disk zugreifen können. Hier steht alles auf einmal im Ram. Wenn abgespeichert wird, dann wird alles abgespeichert. Ist zwar nicht so schoen, aber man kann gut mit leben.

Systemvorraussetzungen

Atari ST/STE/TT/Falcon mit mindestens 640x400 Punkten Bildschirmauflösung. Arbeitet auch in Farbauflösungen mit entsprechend hoher Auflösung.

Files auf der Diskette

easydat.prg :  
Easydat. Das Hauptprogramm.
Der Sourcecode ist recht umfangreich. Es kann noch vorkommen, daß es hier und da zu unwillkommenen Ereignissen kommt (was ich natürlich nicht hoffe).

import.prg :
Dateiimporter. Anleitung nicht vorhanden. Im Grunde ist er recht einfach zu bedienen. Es können (zur Zeit?) nur Ascii Dateien importiert werden. Absolut ausgetestet ist er, an Ermangelung an Beispieldateien, nicht. Sollte der Importer mit einer bestimmten Datei Probleme haben, bitte mir einen Auschnitt (ein paar KB) der Datei zusenden und ich werde versuchen das Problem zu beheben.

printer.inf :
Druckervoreinstellungen. Kann nicht direkt editiert werden. Ist die Datei nicht vorhanden, dann werden Defaultwerte genommen. (Drucker: Mannesmann MT- 81, 9-Nadel)
Abgespeichert auf Disk werden die Ausdruckoptionen (s.u.) und die Druckereinstellungen.

easydat.inf:
Diverse Voreinstellungen. Kurze Erklärungen sind in der Datei enthalten.

easydat.rsc, import.rsc :
Resourcedatei für Easydat und den Importer.

*.msk : 
Datenbank: Maskendatei. Enthält die Daten die bei der Erzeugung der Sparten der Datei angegeben wurden und noch etwas mehr.

*.dat :
Datendatei: Enthält eingegebene Daten.

tbs.msk, tbs.dat: Beispieldateien.

easydat.doc:
Diese Anleitung.
easydat.rtf:
Anleitung im Rich Text Format

version.doc:
Änderungen in neueren Versionen.

Im folgenden werden alle Menupunkte und Kommandos von Easydat erläutert, wobei einige der angesprochenen Dinge wohl etwas unverständlich sind. Allerdings sollte man mit dem Programm etwas arbeiten, dann wird sich dieses Problem wohl erledigen. An diversen Stellen finden sich Hilfeseiten im Programm, die einem weiterhelfen. 

Bildschirmmenus: 

Auswahl per Maus oder Tastatur.
Crsr Up/Down	:  Auswahlbalken hoch/runter.
Clr/Home      	:  Oberster Eintrag
Insert             	:  Unterster Eintrag
Return           	:  Auswählen
Einträge die `Highlighted´ sind können nicht angewählt werden.

I - Das Maskenmenu 
---------------------
Dieses Menu ist das erste (große), das nach dem Programmstart erscheint. 

  1 - Programm verlassen:
Programm verlassen mit Abfrage.

  2 - Aktuelle Datei verwerfen:
Datei, die sich im Speicher befinden, aus diesem entfernen. Datei auf (Hard- )Disk bleibt erhalten.

  3 - Datei löschen:
Eine Datei kann ausgewählt werden. Es erfolgt eine Sicherheitsabfrage.

  4 - Export:
Siehe Exportmenu.

  5 - Sparte entfernen.
Auf einer Übersichtsseite werden alle vorhandenen Sparten angezeigt. Falls nicht alle auf eine Bildschirmseite passen, kann mittels der Maus bzw. den Cursortasten geblättert werden. Durch die Maus oder 1..8 auf der Tastatur läßt sich eine Sparte selektieren. Anwählen von ´Sparte entfernen´ im Menu führt zu einem Löschen derselben. Die zugehörige Masken- (.msk) und Datendatei (.dat) wird eingeladen, wobei, bei diesem Vorgang, die gewählte Sparte entfernt wird. Ist der Vorgang abgeschlossen, dann sollte die Datei neu abgespeichert werden, andernsfalls liegt sie auf (Hard)Disk NICHT geändert vor. Sparten müssen einzeln gelöscht werden, immer eine auf einmal.

  6 - Dateiausgabemenu (Disk/Drucker)
Siehe Dateiausgabemenu.

  7 - Hinzufügen von Sparten / Neue Datei eröffnen
Dies ist die erste Aktion, die man nach dem Laden des Programmes ausführen sollte. Hier läßt sich eine Datenbankdatei aufbauen. Diese kann aus den Sparten Langwort, Wort, Zeit, String und Datum bestehen. Der benötigte Speicherplatz, je neuer Sparte, ist hinter dem Spartentyp angegeben.
Machen wir uns das an einem Beispiel klar: Bücherverwaltung.
(Initial wird für jeden Datensatz 12 Bytes benötigt (Interne Verwaltung)) Titel des Buches: Stringtyp: Für die Stringlänge wählen wir 30. Dazu benötigen wir noch einen Autor. Wieder ein Stringtyp, diesmal mit Länge 25. Jetzt fehlt noch die Bestellnummer (oder was ähnliches): Langwort. Danach steht die Anzahl der benötigten Bytes je Datensatz auf 74, d.h. für jedes neue Buch, das später eingegeben wird, werden 74 Bytes im Hauptspeicher verbraucht (und auf (Hard)Disk 74-12=62 Bytes).
 
Bei Zeit- und Datumstypen ist noch ein Separator zu wählen, z.B. wählt man bei einem Datumstyp den Doppelpunkt, so wird ein Datum als z.B. 23:12:1992 dargestellt. Der Separator gilt für alle Datumstypen, d.h. >=2 Datumstypen benutzen denselben Separator. Die Datumsdarstellung entspricht der europäischem Norm, Tag:Monat:Jahr und nicht diese Sch... Darstellung von Monat:Tag:Jahr, o.ä., welche die Amerikaner benutzen. 
Bis zu 30 Sparten können insgesamt benutzt werden (kann ich auch hochsetzen, falls Bedarf besteht), aber soviel wird hoffentlich niemand benötigen. Nach Beendigung wird die eingegebene Datenbankmaske in der Maskendatei (.msk) abgespeichert.

Hat man bereits eine Maskendatei eingegeben bzw. existiert bereits eine Datensatzdatei, kann man hier auch neue Sparten erzeugen und zu den schon vorhandenen hinzufügen. Dies führt, wie bei `Sparte entfernen` zu einem Einladen und darauffolgenden Abspeichern der Maskendatei und der Datendatei, falls diese existiert. (Hier ist ein erneutes Abpseichern NICHT nötig).
Achtung: Es ist (zur Zeit) nicht möglich die Stringlänge nachträglich zu ändern, also lieber etwas größer dimensionieren. Die einzige Möglichkeit, die sich in dieser Richtung bietet, ist die Datei zu exportieren und danach wieder zu importieren. Im Dateiimporter läßt sich dann die Stringlänge vergrößern bzw. verkleinern.

  8 - Info
Hier wird man über folgendes informiert:
a) Name und Pfad der eingeladenen, aktuellen, Datei.
b) Datensatzlänge.
c) Max. Anzahl von Datensätze und derzeit belegte Datensätze. 
d) Selektierte Datensätze. Näheres über dies folgt später.
e) Freier (Hard)Diskspeicher. Gilt für das aktuelle Laufwerk; die aktuelle Partition.
f) Speicherreservierung. Entspricht dem Wert, der in der Datei ´memalloc.inf´steht. Je höher der Wert ist, desto mehr freie Datensätze sind vorhanden.
g) Freier Speicher außerhalb Easydat. Hier wird ein Malloc(-1) gemacht.
h) Inf-Datei: Einstellung der Parameter die in der Easydat.inf Datei enthalten sind. Einstellungen sind erst nach nächsten Programmstart aktiv.

  9 - Zur Hauptausgabeseite
Funktioniert nur, insofern eine Maskendatei im Speicher vorliegt. 

II - Die Hauptausgabeseite
---------------------------------

Hier werden die Datensätze, Sparten und die eingegebenen Daten übersichtlich dargestellt. 

Zur Mausbedienung:
Die Fensterelemente tun genau das, was sie tun sollen. Allerdings sollte man noch bemerken, daß ein Klick neben den Horizontalslider (nicht auf die Pfeile an den Enden, nicht auf den Slider selber) die Anzeige um drei Sparten nach rechts bzw. nach links verschiebt und nicht nur um eine. Die kleinen Zahlen links unten geben den ersten und letzten Datensatz an, bei einem Klick auf diese wird zu demjenigen gesprungen. 
Ein Klick auf ´Edit´ ruft die Eingabeseite(s.u.) auf. Ein neuer Datensatz kann darauf eingegeben werden.
´Sel´ ruft das Selektionsmenu und ´Sp:´ das Spartenmenu auf. 
Klickt man auf eine Spartenüberschrift, dann erscheint diese in der ´Sp:´ Box. Klickt man auf die Spartennummern, links am Bildschirm, dann verwandelt sich der Mauszeiger in ein Kreuz und man kann auf ´Edit´ (Editieres dieses Datensatzes) oder auf ´Müll´ (Löschen dieses Datensatzes) klicken. Die rechte Maustaste bzw. das Herausfahren des Mauszeigers aus dem Fenster stellt den ursprünglichen Zustand wieder her. Klickt man auf die kleine rechteckige Box links vor der Datensatznummer, dann läßt sich dieser Datensatz (De-) Selektieren. Ist die Box ausgefüllt, dann ist der Datensatz selektiert. Ein Klick auf eine Datensatzzeile ruft die Eingabeseite auf. Ein Klick auf die Trennlinie zwischen 2 Datensätzen (Maustaste gedrückt halten) verwandelt den Mauszeiger und man kann diese Linie verschieben, um so, mehr oder weniger, von der Sparte sichtbar zu machen. Die rechte Maustaste ruft ein Auswahlmenu auf.

Über die Tastatur sind im Grunde alle obigen Operationen ebenso auszuführen. Dies sind:
Cursor Hoch/Runter: Ein Datensatz nach oben bzw. nach unten scrollen.
Cursor Rechts/Links: Eine Sparte nach rechts bzw. nach links anzeigen.
Shift Cursor Hoch/Runter: Eine halbe Seite hoch oder runter anzeigen.
Control Cursor Hoch/Runter: Eine ganze Seite hoch oder runter anzeigen.
Shift Cursor Rechts/Links: Drei Sparten nach rechts oder links anzeigen. 
Clr: Sprung zum ersten Datensatz.
Shift Clr: Sprung zum letzten Datensatz.
Insert: Bildschirmanzeige beginnt mit der ersten Sparte.
Shift Insert: Numerische Angabe eines Datensatze, ab welchem die Bildschirmausgabe beginnt.
n,p : Zeige nächsten bzw. vorherigen selektierten Datensatz an.
Ziffern: Siehe Hilfeseite Nummer Eins im Programm.
Return: Neuen Datensatz editieren.
F10: Hauptmenu.
F9: Spartenmenu.
F8: Selektionsmenu.
F7: Wechsel von 16 Pixel hohen Buchstaben zu 8 Pixel hohen Buchstaben und umgekehrt.
F6: Weitere Optionen. (Ist normalerweise zu finden im Spartenmenu).
F5: Spartentrennstrichänderungsmenu (31 Buchstaben!) 
(Obige Auflistung findet sich auch auf der Hilfeseite)

Anmerkung: Die Datensätze werden immer so dargestellt, so daß der Bildschirm maximal gefüllt ist. Deshalb befindet sich, wenn man z.B. zum letzten Datensatz springt, dieser nicht als allererster, links oben, auf dem Bildschirm.

II.a - Das Spartenmenu
------------------------

Die meisten der folgenden Funktionen sind nur auswählbar, falls eine Sparte in der Box mit der Schrift ´Sp:´ angezeigt ist.

  1 - Darstellung der Sparte(n).
Hier läßt sich auswählen, ob die Gesamtheit aller Sparten bzw. die selektierte Sparte linksbündig, zentriert oder rechtsbündig ausgegeben wird/werden. 

  2 - Suchen.
Suche ist möglich in allen Sparten oder in der selektierten Sparte. Wildcards wie * und ? sind erlaubt. Soll * oder ? in der ursprünglichen Bedeutung benutzt werden ist ein \ voranzustellen. Groß- und Kleinschrift wird, je nach gewählter Schalterstellung unterschieden. Weiterhin läßt sich noch einstellen ob ab Datensatz Nummer 1, oder ob ab dem Datensatz, welcher derzeit auf dem Bildschirm als erster angezeigt wird, angefangen wird zu suchen. Ist der Ausdruck gefunden, dann läßt sich weitersuchen bzw. der gefundene Datensatz selektieren. Drücken einer Taste, während des Suchens, führt zu einem Abbrechen derselbigen.

  3 - Suchen & Ersetzen.
Entspricht obigen Suchen. Wildcards können hier jedoch nicht im Suchbegriff verwendet werden.

  4 - Sparte sortieren
Die ausgewählte Sparte wird mittels eines iterativen Quicksort sortiert. Dies ist recht schnell. Die Sortierrichtung (Aufsteigend/Absteigend), wie auch der Sortierbereich (Datensatz x bis Datensatz y) läßt sich einstellen. Neu dazugekommen ist die Sekundärsortierung. Machen wir dies an einem Beispiel klar. Verwaltung einer Bücherliste. Vom Autor X gibt es 10 verschiedene Bücher(titel) und vom Autor Y 5 Titel. Nach der Sortierung nach dem Autor sind die Büchertitel total ungeordnet. Durch Sekundärsortierung lassen sich diese nun nachträglich ordnen. In den Spartebox muß die Sparte Autor eingestellt sein. Beim Aufrufen von 'Sortieren' und Auswählen von Sekundärsortierung klickt man auf die Sparte mit den Buchtiteln und das Programm sortiert nun diese, abhängig von den unterschiedlichen Autoren, untereinander. Es wird also immer nachgesehen wie oft ein Autorenname n-mal untereinander vorkommt und sortiert dann den jeweiligen Bereich nochmals nach der Sekundärsparte.
Eine Testsortierung mit 10000 Datensätzen der Länge 260 Bytes je Datensätze ergab eine Sortierzeit von 3:20 Min. Da Quicksort O(n*log(n)) hat, kann man sich auf diese Weise ausrechnen wie lange es etwa dauert seine Datenbank zu sortieren. (Obiges Sortieren erfolgte auf auf einem MegaSTE. Bei einem alten ST ist also die Zeit verdoppeln.)

  5 - Überschrift ändern
Eine neue Spartenüberschrift läßt sich eingeben.

  6 - Sparte verschieben
Es erscheint ein Kreuzcursor. Nun kann man auf eine Spartenzeile auf dem Bildschirm klicken. (Rechte Taste: Abbruch). Danach kann man auswählen, ob die selektierte Sparte vor die angeklickte oder hinter die angeklickte geschoben wird, oder ob beide Spartenpositionen vertauscht werden sollen.

  7 - Weitere Optionen
Siehe unten.

II.b - Weitere Optionen
---------------------------

Der Aufruf erfolgt über die Tastatur oder im Spartenmenu. Folgende Kommandos stehen bereit:

  1 - Spartentrennstrichpositionen ändern
Siehe Spartentrennstrichänderungsmenu.

  2 - Datumsseparator ändern
Es läßt sich einer neuer auswählen. (. , - oder / )

  3 - Zeitseparator ändern
Es läßt sich ein neuer auswählen. ( : oder ` )

  4 - Inhalt aller Datensatze in Sparte löschen
Der Inhalt alle Stringtypen wird auf einen Leerstring gesetzt, der Inhalt von Integer- und Langworttypen wird auf Null gesetzt. Bei Datumtypen und Zeittypen ist diese Operation nicht möglich.

  5 - Inhalt aller selektierten Datensätze in Sparte löschen
Dasselbe wie oben, nur eben für alle selektierten Datensätze.

II.c - Spartentrennstrichänderungsmenu
---------------------------------------------

Dieses Menu ist über F5 bzw. im ´Weitere Optionen´ Menu aufzurufen.

  1 - Derzeitige Positionen in Puffer aufnehmen
Jede Sparte wird in einer bestimmten Breite auf dem Bildschirm dargestellt. Diese Werte werden nun in einem Puffer übernommen.

  2 - Positionen aus Puffer wiederherstellen
Die Ursprüngliche Breite aller Sparten wird wieder aus dem Puffer ausgelesen und wiederhergestellt.

  3 - Breite von allen Sparten auf x Zeichen Breite
Die Breite aller Sparten wird auf einen festen Wert eingestellt. Diese Funktion ist dazu gedacht, um schnell alle Sparten möglichst platzsparend auf dem Bildschirm darzustellen, um so z.B. Sparten schnell an eine andere Stelle verschieben zu können.

II.d - Hauptmenu
------------------

  1 - Datei verwerfen und Maskenmenu
Es erfolgt eine Abfrage. 
Diesen Menueintrag sollte man auswählen, wenn man vorhat das Programm zu verlassen.

  2 - Abspeichern und Maskenmenu

  3 - Abspeichern

Bei obiger Funktion und dieser kann auch unter einem neuen Namen abgespeichert werden. Weiterhin erfolgt keine automatische Backup-Generierung der abgespeicherten Dateien. (Falls Bedarf besteht, baue ich es ein.) Dies sollte man des öfteren von Hand erledigen.
Es ist nicht möglich MIT der aktuellen Datei im Speicher in das Maskenmenu zu gelangen, ohne das vorher die Datei abgespeichert wurde. Dies soll verhindern, daß es zu größeren Ärgernissen kommt, falls man im Maskenmenu neue Sparten anfügt oder auch Sparten löscht, da diese Operationen direkt von der (Hard)Disk aus erfolgen.

  4 - Datensätze hinzuladen
Datensätze werden aus einer Datendatei zu der Datei im Speicher hinzugeladen. Die Maskendateien beider Dateien müssen übereinstimmen.

  5 - Datei löschen
Ist identisch zu der Funktion im Maskenmenu.

  6 - Dateiausgabemenu (Disk/Drucker)
Siehe Dateiausgabemenu

  7 - Lösche Datensatze x bis y
Alle Datensätze innerhalb 2 Grenzen werden gelöscht.

  8 - Info
Ist identisch zu der Funktion im Maskenmenu

II.e - Selektionsmenu
----------------------

Um die aufgeführten Funktionen zu benutzen sollten wenigstens ein paar Datensätze selektiert sein.

  1 - Alle selektierten Datensätze abspeichern
Unter dem altem oder einem neuen Namen werden alle selektierten Datensätze abgespeichert. Falls ein neuer Name gewählt wird, werden zwei völlig neue, unabhängige Dateien, erzeugt (Eine Masken- und eine Datendatei).

  2 - Alle selektierten Datensätze löschen
Alle selektierten Datensätze werden aus dem Speicher entfernt.

  3 - Selektierte Datensätze vor unselektierte schieben
Nach Auführung der Operation befinden sich die selektierten Datensätze an den Positionen 1 .. n.

  4 - Selektionsmarken löschen
Nach Ausführung des Kommandos sind keine Datensätze mehr selektiert. Es erfolgt keine Sicherheitsabfrage.

  5 - Verschiebe Selektionsblock (ab x) hinter y
Ein Selektionsblock umfasst den zuletzt selektierten Datensatz und alle durchgehend darunterliegenden Datensätze. Der Rest der Operation ist einsichtig. Ist für jene gedacht die noch mehr Ordnung in ihre Datei bringen wollen.

  6 - Suchen und Selektieren

Entspricht dem Suchen im Spartenmenu, allerdings lassen sich hiermit die Datensätze so durchsuchen, ohne daß jedesmal eine Meldung erfolgt, falls ein Begriff gefunden worden ist. In diesem Fall wird der gefundene Datensatz selektiert und es wird automatisch weitergesucht.

III - Die Eingabeseite
-------------------------

Editiert man einen neuen oder schon vorhandenen Datensatz, dann landet man auf dieser.

Mausbedienung:
'OK' checkt alle Eingabe auf einer Seite durch und bringt, falls kein Eingabefehler vorhanden ist, den nächsten Datensatz auf den Bildschirm.
Der Cursor läßt sich mittels der linken Maustaste plazieren. Ist ein Stringdatentyp zu lange, so daß die Zeile nicht ganz auf den Bildschirm paßt, so läßt sich die Zeile, indem man an ihr rechtes oder linkes Ende klickt, nach rechts bzw. nach links scrollen. Ein Klick auf die Box mit der Datensatznummer läßt eine Auswahlbox auf dem Bildschirm erscheinen, mit welcher man einen anderen Datensatz auswählen kann (Diese Box läßt sich auch über die Cursortasten und Return bedienen). Der untere Vertikalslider dient zur Auswahl eines Datensatzes (identisch zur obigen Auswahlbox), der rechte Horizontalslider zur Anzeige weiterer Sparten, falls diese nicht alle auf den Bildschirm passen.
Die rechte Taste ruft das Eingabeseitenmenu auf.

Tastaturbedienung:

Insert: Wechsel vom Insert zum Überschreibmodus und zurück. Ist der Insertmodus aktiv erscheint ein ausgefüllter Kreis über und unter dem vertikalen OK Schriftzug.
Shift Cursor Links/Rechts: Sprung an den Anfang / das Ende der Zeile.
Shift Cursor Hoch/Runter: Blättern (falls nicht alle Sparten auf Bildschirm passen)
Control Cursor Links/Rechts: Sprung zum vorherigen / nächsten Wortanfang.
Control Cursor Hoch/Runter: Sprung zum vorherigen/nächsten Datensatz.
Esc/Shift Delete: Löscht Eingabezeile.
Tab/Shift Tab: Cursor 8 Zeichen vor/zurück.
Shift Control Cursor Links/Rechts: Zeile scrollen, falls sie nicht ganz auf Bildschirm paßt.

Return/Enter: Eingabezeile überprüfen und gegebenenfalls übernehmen. Hier kann z.B. eine Wertebereichsüberschreitung bei Integer- oder Langworttypen vorkommen. Auch kann ein falsches Datums- oder Zeitformat vorliegen. Erst durch Return werden die Eingaben in den Datensatz übernommen. Ändert man etwas in einer Zeile und verläßt dann direkt die Eingabeseite ohne vorher Return zu drücken, so ist das Eingegebene nicht(!) in den Datensatz übernommen worden. Drückt man Return bei Zeit- oder Datumstypen, ohne eine Eingabe gemacht zu haben, dann wird die aktuelle Systemzeit/Systemdatum übernommen.
Shift+Return checkt alle Eingaben durch und springt zum nächsten Datensatz.

Shift Clr: Zeit- bzw. Datumsseparator ändern.
Shift Insert: Eingabebox und Sprung zu eingegebenem Datensatz.

Shift F1 - F9: Eingabezeile in Puffer 1..9 übernehmen.
F1-F9: Puffer 1..9 in Eingabezeile ab Cursorposition kopieren.
Control Funktionstaste: Zeige Pufferinhalte 1..9 an.

Die Inhalte der Puffer werden mit abgespeichert.

Shift Help: Inhalt der Sparte des vorherigen Datensatzes in diesen Datensatz kopieren.

Control b: Cursorblinken an/aus. 
Control s: Datensatz (De-)Selektieren. In der unteren Spartennummernanzeige erscheinen 2 Punkte.
Control n/p: Springe zu nächstem/vorherigem selektierten Datensatz.

F10: Rufe Menu auf.

III.a - Datensatzeingabeseitenmenu 
-------------------------------------

  1 - Exit
Zurück zur Hauptausgabeseite.

  2 - Lösche Datensatz und Exit
Klar.

  3 - Lösche Datensatz
Klar. Keine Sicherheitsabfrage.

  4 - Neues Datensatz hinter diesem einfügen.
Ruft man auf der Hauptausgabeseite ´Edit´ auf, so wird ein neuer Datensatz immer hinter dem letzten vorhandenen angehängt. Hier läßt sich ein neuer Datensatz hinter dem angezeigten erzeugen, um so nachträgliches Sortieren zu ersparen, z:B. bei großen Datensatzdateien.

  5 - Hilfsseite.

IV - Export
--------------

Dieses Kommando ist nur im Maskenmenu zu finden. Es findet (leider) (nur) ein Ascii Export statt.

  1 - Exportieren von Datensatzdatei
Ein Datei ist auszuwählen.

  2 - Exporteinstellungen
Es erscheinen die folgenden Menuoptionen:
  
  2.1 - Alle Sparten exportieren bzw. Nur selektierte Sparten exportieren
Je nach Modus erscheint einer der beiden Einträge.

  2.2 - Spartenselektion
Es erscheint eine Auswahlseite, in welcher über die Maus bzw. die Tastatur alle Sparten ausgewählt werden können, die exportiert werden sollen. Ist die Spartennummer invers dargestellt, dann ist die Sparte zum exportieren ausgewählt. Passen nicht alle Sparten auf eine Bildschirmseite, dann läßt sich über die Maus bzw. über die Cursortasten blättern.

  3 - Option: Einfach bzw. Option: Doppelt
Siehe nächster Menupunkt.

  4 - Sparten- und Datensatztrennoperatoren ändern
Die Spartentrennoperatoren werden hinter jede Sparte in der Ausgabedatei geschrieben, der Datensatztrennoperator hinter jeden vollständigen Datensatz. 
Machen wir ein Beispiel: Der Spartentrennoperator sei ´13 10´ (1*Return), der Datensatztrennoperator ´13 10 13 10´ (2*Return). Ein Beispieldatensatz enthalte 3 Sparten (2 Strings und 1 Integer). Der Inhalt der Strings sei ´Hello´ und ´World´ und der des Integertyps 32. Hinter jede Sparte wird nun ´13 10´ in die Datei geschrieben. Da ´13 10´ intern als Carriage Return mit Linefeed angesehen wird, wirkt das ganze so, daß der nächste Eintrag in die folgende Zeile geschrieben wird. Der Datensatztrennoperator wird als letztes noch angefügt. Man erhält dann die folgende Ausgabedatei (Option: Doppelt):
-SOF- (Start of File)
Hello
World
32

-EOF- (End of File)
Natürlich sind auch andere (fast) beliebige Werte möglich, nur sollte man nur solche Operatoren verwenden, die nicht im normalen Standardzeichensatz benutzt werden, sonst könnte es bösen Ärger beim Importieren der Datei in eine andere Datenbank geben.
Zur Option Einfach und Doppelt aus Menupunkt 3: Bei Option Einfach wird hinter der letzten Sparte eines Datensatzes NICHT noch einmal der Spartentrennoperator geschrieben, sondern direkt der Datensatztrennoperator. Bei Option Doppelt wird noch einmal der Spartentrennoperator geschrieben und danach direkt der Datensatztrennoperator (wie im obigen Beispiel).

V - Dateiausgabemenu (Disk/Drucker)
--------------------------------------------

Die Datendatei kann entweder auf einen Drucker oder in eine Diskettendatei geschrieben werden, z.B. zum Ausdrucken mittels Idealist(tm) oder einem ähnlichen Programm.

  1 - Drucken
Die Datei wird auf (Hard)Disk oder auf einem Drucker ausgegeben. 
Hier wird zuerst die maximale Zeilenlänge ausgerechnet. Ist die Zeilenlänge größer als die maximale Druckerausgabezeilenlänge(siehe Menupunkt 2) erfolgt kein Ausdruck. Die Ausgabe läßt sich durch Druck auf eine Taste unterbrechen und gegebenenfalls abbrechen.

  2 - Druckereinstellungen ändern
Die zu benutzenden Steuercodes kann man ruhigen Gewissens im Grunde als Standardsteuercodes bezeichne. Sie dürften wohl nur bei exotischen Druckern verschieden von den voreingestellten Werten sein.

Es erscheint ein Menu mit den folgenden Optionen:

  2.1 - Linker Rand: x, Rechter Rand: y
Druckerausgabe fängt an ab dem x. Zeichen und läuft bis zu dem y. Zeichen.

  2.2 - Condensed Modus an: (Max. 5 Werte)
Bis zu 5 Steuercodes werden zum Drucker gesendet um den Condensed Schriftmodus anzuschalten. Nähere Infos darüber liefert die jeweilige Anleitung des Druckers. Die gesamte Ausgabe erfolgt IMMER im Condensed Modus.

  2.3 - Condensed Modus aus: (Max. 5 Werte)
Auschalten des obigen Condensed Modus.

  2.4 - Zeilenabstand 1/6: (Max. 5 Werte)
Dies dürfte der normale Zeilenabstand sein, der bei Einschalten des Druckers vorhanden ist. Nähere Infos in der jeweiligen Anleitung des Druckers.

  2.5 - Zeilenabstand 1/8: (Max. 5 Werte)
Zeilenabstand ist gering, die Ausgabezeilen stehen enger untereinander Steuercodes müßten in der Anleitung des Druckers zu finden sein.

2.6 - Abbildung der deutschen Sonderzeichen auf Druckcodes.
Trifft das Programm beim Ausdruck auf ein deutsches Sonderzeichen (äöüÄÖÜß), dann wird dieses durch den hier angegeben Code ersetzt.

  2.7 - Zeilen je Seite (1/6): x, Zeilen je Seite (1/8): y, Zeichen je Zeile: z
Die x und y Werte sind nur relevant, falls im Einzelseitenmodus ausgedruckt wird. Der z Wert ist die Anzahl der Zeichen pro Zeile im Condensed(!) Modus.

  2.8 - Andere .prn Datei laden
Eine andere Druckereinstellungsdatei wird geladen.

  2.9 - Druckereinstellungen speichern
Die hier eingestellten Werte werden abgespeichert.

  3 - Ausdruckoptionen

Es erscheint ein Menu mit den folgenden Optionen.

  3.1 - Datensatznumerierung an/aus
Klar. Werden nur die selektierten Segmente ausgegeben, dann wird AUCH von 1..n durchnumeriert.

  3.2 - Ohne Spartentrennseparator bzw. Mit Spartentrennseparator ´I´ bzw. ´!´
Klar.

  3.3 - Normaler bzw. Geringer Zeilenabstand
Klar. Hat keinen Einfluß bei Ausgabe auf (Hard-)Disk.

  3.4 - Alle Datensätze ausgeben bzw. Nur selektierte Datensätze ausgeben.
Klar.

  3.5. - Alle Sparten ausgeben bzw. Nur selektierte Sparten ausgeben.
Klar.

  3.6. - Spartenselektion
Es erscheint eine Auswahlseite, in welcher die Sparten angegeben werden können, die ausgegeben werden sollen.

  3.7 - Sparten werden ganz ausgedruckt bzw. Spartentrennstriche geben max. Ausdrucksweite an
Wählt man die 2. Möglichkeit, dann stellen die Trennstriche, die auf der Hauptausgabeseite eingestellt sind, die Spartenausgabebegrenzung dar. 
Sind Sparten zentriert oder rechtsbündig eingestellt werden die Sparten entsprechend ausgegeben.

  3.8 Ausdruck Endlos bzw. Einzelseiten
Die erste Möglichkeit sollte nur bei Endlospapier verwendet werden. Wählt man die 2. Möglichkeit an, erscheinen die folgenden Menueinträge:

  3.8.1 - Mit bzw. ohne Seitennumerierung
Klar.

  3.8.2 - Spartenüberschriften auf jeder Seite bzw. nur auf erster Seite
Klar.