summaryrefslogtreecommitdiff
path: root/app/eudas/4.3/doc/eudas.ref.3
blob: 9b58b9b53329cbc342bc50b7c80c0de33ee215a8 (plain)
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
257
258
259
260
261
262
263
264
265
266
267
268
269
270
#limit (11.0)##pagelength (16.5)##block#                                   
#start (2.0,0.0)# 
#page (31)# 
#headodd# 
#center#EUDAS#right#% 
 
#end# 
#headeven# 
%#center#EUDAS 
 
#end# 
#center#1 
 
3 Das virtuelle Dateimodell 
 
 
 
3.1 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. 
 
 
3.2 Öffnen 
 
#on("b")#Virtuelle Datei#off("b")# 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. 
 
#on("b")#Weitere Dateien#off("b")# 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. 
 
 
#free (8.0)# 
 
#center#Abb. 3-1   Schematischer Aufbau der virtuellen Datei 
 
 
 
3.3 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. 
 
 
#free (7.0)# 
 
#center#Abb. 3-2   Schema des Koppelvorgangs 
 
 
#on("b")#Kombinationen#off("b")# 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. 
 
 
3.4 Ä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. 
 
#on("b")#Einfügen/Löschen#off("b")# 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. 
 
 
3.5 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. 
 
 
3.6 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. 
 
 
3.7 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).