1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
#type ("prop")##limit (14.0)#
#format#
#page (31)#
#kapitel ("3", "Das", "virtuelle", "Dateimodell")#
#abschnitt ("3.1", "DATEISTRUKTUR", "Dateistruktur")#
Eine EUDAS-Datei hat folgende Bestandteile:
- 0 bis 5000 #on("i")#Sätze#off("i")#, von 1 an durchnumeriert. Jeder Satz enthält für
jedes Feld einen variabel langen Text als Inhalt, der standard
mäßig leer ist.
- 1 bis 256 #on("i")#Felder#off("i")#, die die Sätze aufteilen. Jedes Feld besitzt einen
#on("i")#Feldnamen#off("i")# als Text und einen von vier #on("i")#Feldtypen#off("i")# (TEXT, ZAHL,
DATUM oder DIN). Der Feldname dient zur Identifizierung des
Feldes, der Feldtyp spezifiziert die Art der Behandlung beim Ver
gleichen von Feldern.
- Drei Zusatztexte. Der erste nimmt die #on("i")#Prüfbedingungen#off("i")# auf, der
zweite speichert das Datum der letzten Veränderung und der
dritte kann allgemeine #on("i")#Notizen#off("i")# aufnehmen.
- Einen #on("i")#Satzzeiger#off("i")#, der einen bestimmten Satz als aktuellen Satz
auszeichnet. Der Satzzeiger kann durch Positionierungsoperatio
nen verändert werden.
- Eine #on("i")#Sortierreihenfolge#off("i")#, die angibt, in welcher Feldreihenfolge die
Datei zuletzt sortiert worden ist. Dazu für jeden Satz eine Anga
be, ob er entsprechend dieser Reihenfolge an der richtigen Posi
tion steht.
- Eine interne Datenstruktur, die beschleunigten Zugriff auf eine
Satz nach dem Inhalt des ersten Feldes ermöglicht. Diese Struktur
steht ganz unter Kontrolle von EUDAS und kann nicht von außen
manipuliert werden.
#abschnitt ("3.2", "ÖFFNEN", "Öffnen")#
#a ("Virtuelle Datei")# Die meisten EUDAS-Funktionen arbeiten nicht
direkt auf einer EUDAS-Datei, sondern auf der sogenannten #on("i")#vir
tuellen Datei#off("i")#, die aus mehreren realen Dateien bestehen kann. Die
virtuelle Datei erscheint nach außen hin wie eine einzelne
EUDAS-Datei. Die Operationen auf der virtuellen Datei werden je
weils auf die einzelnen Bestandteile abgebildet.
Damit eine EUDAS-Datei Bestandteil der virtuellen Datei wird,
muß sie geöffnet werden. Dieses Öffnen kann auf dreierlei Art und
Weise geschehen.
Das Öffnen der ersten Datei stellt eine neue virtuelle Datei
her. Die Feldnamen und Feldeigenschaften der ersten Datei werden
in der virtuellen Datei übernommen. Dies ist der Normalfall, in dem
sich die virtuelle Datei noch nicht von der zugrundeliegenden Datei
unterscheidet.
Bei diesem ersten Öffnen muß angegeben werden, ob die vir
tuelle Datei verändert werden soll oder nicht. Falls die virtuelle
Datei verändert werden soll, wird eine Arbeitskopie aller geöffneten
Dateien angelegt. Die Ursprungsdateien können erst am Ende der
Arbeit mit den geänderten Kopien überschrieben werden.
#a ("Weitere Dateien")# Weitere Dateien können gekettet oder gekoppelt
werden. Gekettete Dateien werden logisch an die zuerst geöffnete
Datei angehängt. Ihre Dateistruktur wird ignoriert, sollte aber mit
der ersten Datei übereinstimmen. Die Folge aneinander geketteter
EUDAS-Dateien wird als #on("i")#Hauptdatei#off("i")# bezeichnet.
In der Hauptdatei werden die Sätze von 1 an durchnumeriert;
die Aufeinanderfolge der Sätze wird durch die Anordnung der Sätze
in den einzelnen Dateien und die Reihenfolge bestimmt, in der die
Dateien gekettet wurden.
Die gekoppelten Dateien werden der Hauptdatei untergeordnet.
Die in ihnen enthaltenen Informationen werden nur angezeigt, wenn
sie mit einem Satzinhalt der Hauptdatei korrespondieren. Der
Mechanismus dieser Satzkopplung wird im nächsten Abschnitt
beschrieben.
#beispiel#
#free (8.0)#
#center#Abb. 3-1 Schematischer Aufbau der virtuellen Datei
#text#
#abschnitt ("3.3", "KOPPELN", "Koppeln")#
Die Sätze der gekoppelten Dateien werden in Relation zu den
Sätzen in der Hauptdatei gesetzt. Zu jedem Satz in der Hauptdatei
kann eine Anzahl von Sätzen aus jeder Koppeldatei gehören. Diese
Sätze müssen in den Inhalten der sogenannten #on("i")#Koppelfelder#off("i")# über
einstimmen.
Welche Felder Koppelfelder sind, richtet sich nach den Feld
namen. Die ersten Felder der Koppeldatei, die auch in der Haupt
datei vorhanden sind, werden als Koppelfelder betrachtet. Die Kop
pelfelder müssen also bei der Koppeldatei am Anfang stehen - in
der Hauptdatei kann jedes beliebige Feld ein Koppelfeld sein.
Wenn eine Datei zur virtuellen Datei gekoppelt wird, werden
alle Felder, die nicht Koppelfelder sind, in die virtuelle Datei auf
genommen. Die Koppelfelder brauchen nicht noch mal wiederholt zu
werden, da ihr Inhalt ja immer identisch ist.
Zu beachten ist, daß bei diesem Verfahren auch Namenskonflik
te entstehen können, wenn nach den Koppelfeldern später wieder
ein Feldname vorkommt, der auch in der Hauptdatei vorhanden ist.
In den Fällen, in denen Felder durch ihren Namen angesprochen
werden, ist dann das zweite Feld gleichen Namens nicht verfügbar.
#beispiel#
#free (7.0)#
#center#Abb. 3-2 Schema des Koppelvorgangs
#text#
#a ("Kombinationen")# Beim Vorwärtsgehen in der virtuellen Datei werden
zu jedem Satz der Hauptdatei nacheinander alle möglichen Kombina
tionen der zugehörigen Koppelsätze angezeigt, denn es können
mehrere passende Koppelsätze vorhanden sein. Die Satznummer
bleibt dabei gleich; die einzelnen Kombinationen werden von 1 an
durchgezählt. Beim Rückwärtsgehen wird aus technischen Gründen
immer nur die erste Kombination angezeigt.
Existiert zu einem Satz kein passender Koppelsatz, so bleiben
die entsprechenden Felder leer. Die Koppelsätze müssen in der
ganzen Koppeldatei gesucht werden, daher ist bei großen Koppel
dateien die Suchzeit zu berücksichtigen.
#abschnitt ("3.4", "ÄNDERUNGEN", "Änderungen")#
In der virtuellen Datei kann auch geändert werden. Dabei ist jedoch
Vorsicht angebracht. Es muß festgelegt sein, wie Änderungen der
einzelnen Felder auf die beteiligten Dateien abgebildet werden.
Falls die virtuelle Datei keine Koppeldateien enthält, werden
Änderungen am aktuellen Satz an der zugehörigen Datei durchge
führt. Das Löschen eines Satzes wird auch direkt in der Datei
durchgeführt. Ein neuer Satz wird immer in der Datei eingefügt, zu
der der aktuelle Satz gehört - am Ende der ersten Datei kann also
kein Satz eingefügt werden, wenn noch weitere Dateien folgen.
Enthält die virtuelle Datei Koppeldateien, werden die Änderun
gen in der Hauptdatei wie oben beschrieben durchgeführt. Änderun
gen, die Felder in den Koppeldateien betreffen, werden nach folgen
der Entscheidungstabelle behandelt:
1 2 3 4 5
---------------
Koppelfelder verändert N J J N N
Übrige Felder verändert N - - J J
Übrige Felder leer - J N - N
Vorher Koppelsatz vorhanden - - - J N
---------------
Neuen Satz einfügen x x
Koppelsatz ändern x
Kopplung aktualisieren x
Fall 1: Es wurden keine Veränderungen an den Feldern des Kop
pelsatzes vorgenommen, daher ist auch keine Aktion not
wendig.
Fall 2: Eines der Koppelfelder wurde verändert. Die Änderung wird
in der Hauptdatei durchgeführt. Die übrigen Felder des
Koppelsatzes sind jedoch als leer angegeben. In diesem Fall
wird der Koppelsatz nicht verändert, sondern nur eine
neue Korrespondenz gesucht.
Fall 3: Eines der Koppelfelder wurde verändert, gleichzeitig ent
halten aber auch die anderen Felder Informationen. In
diesem Fall wird ein neuer Satz in der Koppeldatei ange
fügt, der die neuen Inhalte enthält. So wird vermieden,
daß an anderer Stelle plötzlich kein passender Koppelsatz
mehr vorhanden ist.
Fall 4: Nur Felder der Koppeldatei, die nicht Koppelfelder sind,
wurden verändert, außerdem existierte ein korrespondie
render Satz in der Koppeldatei. In diesem Fall werden die
Informationen im Koppelsatz abgeändert.
Fall 5: Wie 4, nur war vorher noch kein Koppelsatz vorhanden
(Felder waren leer). In diesem Fall muß ein neuer Satz in
die Koppeldatei eingefügt werden. Einfügungen in die
Koppeldatei geschehen immer am Dateiende.
#a ("Einfügen/Löschen")# Beim Löschen eines Satzes der virtuellen Datei
durch Tragen bleiben die Koppeldateien unverändert. Nach dem
Einfügen eines neuen Satzes wird nur dann ein Satz in einer Kop
peldatei eingefügt, wenn dieser Satz nicht nur Koppelfelder enthal
ten würde. Falls beim Einfügen nur die Koppelfelder angegeben
werden, wird ein korrespondierender Satz in der Koppeldatei ge
sucht. Vergleichen Sie hierzu die Regeln beim Ändern.
#abschnitt ("3.5", "SICHERN", "Sichern")#
Falls Änderungen der virtuellen Datei erlaubt sind, arbeitet EUDAS
immer auf Sicherheitskopien der beteiligten Dateien. Eine Datei, die
wirklich verändert wurde, muß vor dem Aufbau einer neuen virtuel
len Datei gesichert oder explizit gelöscht werden.
Für jede einzelne Datei kann festgelegt werden, ob sie gesi
chert werden soll oder nicht. Als Hilfe wird dazu für jede Datei
angegeben, ob sie tatsächlich verändert wurde oder nicht. Die
Arbeitskopie kann beim Sichern die alte Version überschreiben oder
unter einem neuen Namen gesichert werden.
Am Ende des Sicherns können die Arbeitskopien gelöscht wer
den. Anderenfalls werden die Dateien so betrachtet, als ob sie di
rekt nach dem Sichern wieder geöffnet worden wären und stehen
weiterhin zur Verfügung.
Falls alle Dateien entweder gesichert oder nicht verändert
sind, werden beim nächsten Öffnen einer neuen virtuellen Datei die
vorherigen Arbeitskopien gelöscht.
#abschnitt ("3.6", "UMSCHALTEN AUF KOPPELDATEI", "Umschalten auf Koppeldatei")#
Falls eine Datei gekoppelt ist, kann man die virtuelle Datei auf
diese Koppeldatei umschalten. Dadurch verhält sich die virtuelle
Datei so, als ob nur diese Koppeldatei geöffnet wäre. Die Einstel
lungen der Hauptdatei wie Markierungen und Suchbedingung bleiben
jedoch erhalten und stehen beim Zurückschalten wieder zur Verfü
gung.
Die Satzposition der Koppeldatei beim letzten Umschalten wird
ebenfalls gespeichert und wird beim nächsten Umschalten wieder
eingenommen, unabhängig von der tatsächlichen Satzposition der
Koppeldatei zu diesem Zeitpunkt.
Für die Koppeldatei können eigene Markierungen vergeben
werden, die auch nach dem Umschalten gespeichert bleiben. Auch
ein Suchmuster kann für die Koppeldatei eingestellt werden, dies
geht jedoch beim Zurückschalten wieder verloren. Die eingestellte
Feldauswahl für die Bildschirmanzeige geht leider bei jedem Um
schalten verloren.
Das Umschalten kann entweder im Menü 'Einzelsatz' oder beim
Einfügen und Ändern durch ESC 'K' bewirkt werden, ebenso das
Zurückschalten nur im Menü 'Einzelsatz'. Beim Umschalten aus Ein
fügen oder Ändern erfolgt beim Zurückschalten eine Rückkehr in
diesen Zustand. Dabei können nach Anfrage die Koppelfelder des
aktuellen Satzes der Koppeldatei in die Hauptdatei übernommen und
damit eine bestimmte Kopplung bewirkt werden.
#abschnitt ("3.7", "MEHRBENUTZERBETRIEB", "Mehrbenutzerbetrieb")#
Durch Einstellen einer Managertask für den Mehrbenutzerbetrieb
können auch Dateien dieser Managertask beim Öffnen direkt ver
wendet werden. Die Datei wird automatisch aus der Managertask
kopiert und geöffnet.
Falls die Datei geändert werden soll, wird eine Sperre in der
Managertask gesetzt, die verhindert, daß auch ein anderer Benutzer
diese Datei zum Ändern öffnet. Beim Sichern erfolgt dann ein Rück
schreiben der Arbeitskopie. Die Sperre wird jedoch erst dann zu
rückgesetzt, wenn alle Arbeitskopien gelöscht werden, da erst dann
keine Möglichkeit des Rückschreibens mehr besteht.
Alle Dateien der Managertask werden bei der Dateiauswahl zum
Öffnen mit angeboten. Falls eine Datei in beiden Tasks existiert,
wird die Datei in der Managertask genommen, die Datei der eigenen
Task jedoch erst nach Anfrage überschrieben.
Damit die Sperre funktionieren kann, muß EUDAS in der Mana
gertask zur Verfügung stehen und die Task muß #on("i")#nach#off("i")# dem Insertie
ren von EUDAS als 'global manager' definiert werden (nicht 'free
global manager' verwenden).
|