summaryrefslogtreecommitdiff
path: root/app/eudas/4.3/doc/eudas.ref.7
blob: 31b3031c8814fe7905eaa78f42304f1e845dfdb4 (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
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
#limit (11.0)##pagelength (16.5)##block#                                   
#start (2.0,0.0)# 
#page (71)# 
#headodd# 
#center#EUDAS#right#% 
 
#end# 
#headeven# 
%#center#EUDAS 
 
#end# 
#center#1 
 
7 Verwaltung der offenen Dateien 
 
 
Die in diesem Kapitel beschriebene Schnittstelle verbindet mehrere
EUDAS-Dateien zu einem großen Dateimodell. Diese virtuelle Datei
dient als Grundlage für die meisten EUDAS-Funktionen. Zuerst muß
eine Datei als Bestandteil der virtuellen Datei geöffnet werden, ehe
sie bearbeitet werden kann. Es ist so bei den Funktionen keine
Angabe mehr nötig, welche Datei gemeint ist. 
    Diese Schnittstelle ist in vielen Teilen für die interne
EUDAS-Anwendung ausgelegt. Bei einigen Prozeduren werden aus
Effizienzgründen keinerlei Überprüfungen auf illegale Aufrufe oder
Parameter durchgeführt. Wollen Sie eine solche Prozedur dennoch
verwenden, sollten Sie die Einhaltung der angegebenen Bedingungen
sorgfältig überprüfen. 
 
 
7.1 Dateiverwaltung 
 
Mit 'oeffne' wird eine Datei zum Bearbeiten geöffnet. Mit 'kette' und
'kopple' können weitere Dateien dazugekettet bzw. dazugekoppelt
werden. Durch 'sichere' können veränderte Kopien zurückgeschrie­
ben werden. Durch 'dateien loeschen' werden die internen Kopien
gelöscht. 
    Mit 'anzahl dateien' kann die Anzahl der vorhandenen Dateien
erfragt werden. 'anzahl koppeldateien' gibt Auskunft darüber, wie­
viel Dateien davon gekoppelt sind. 'aendern erlaubt' gibt den Status
wieder, der beim Öffnen der ersten Datei angegeben wurde. 'inhalt
veraendert' gibt an, ob die angegebene Datei verändert wurde. Mit
'eudas dateiname' können die Namen der geöffneten Dateien erfragt
werden. Bei jedem 'oeffne' wird 'dateiversion' um 1 erhöht. Dies
dient dazu, ein erfolgtes neues Öffnen von anderen Stellen aus zu
entdecken. 
    Mit 'auf koppeldatei' kann die virtuelle Datei auf eine Koppel­
datei umgeschaltet werden, so daß der Eindruck entsteht, nur diese
Datei wäre geöffnet worden. 
 
PROC oeffne (TEXT CONST dateiname, 
             BOOL CONST aendern erlaubt) 
    Falls Ändern erlaubt sein soll, wird eine Kopie der angegebenen
    Datei zur Bearbeitung für EUDAS angelegt. Vorher geöffnete
    Dateien werden gelöscht. Die Änderungserlaubnis wird entspre­
    chend gesetzt. Es wird die Satzposition der EUDAS-Datei ange­
    nommen (Ausnahme: steht die EUDAS-Datei hinter dem letzten
    Satz, wird auf Satz 1 positioniert). 'dateiversion' sowie 'anzahl
    dateien' werden um 1 erhöht. 
 
    FEHLER: 
#f1# 
    #on("i")#Datei nicht gesichert#off("i")# 
    Eine vorher geöffnete Datei war verändert, aber nicht gesi­
    chert. 
#f1# 
    #on("i")#Datei existiert nicht#off("i")# 
    Die angegebene Datei ist nicht vorhanden. 
#f1# 
    #on("i")#Datei ist keine EUDAS-Datei#off("i")# 
    Die angegebene Datei hat nicht den für EUDAS-Dateien festge­
    legten Typ. 
 
PROC kopple (TEXT CONST dateiname) 
    Die angegebene Datei wird zu den bereits geöffneten Dateien
    dazugekoppelt. Falls Ändern erlaubt ist, wird eine Kopie dieser
    Datei verwendet. Dabei werden die ersten Felder der Datei, die
    bereits in der Hauptdatei vorhanden sind, als Koppelfelder
    festgelegt. Alle weiteren Felder werden zusätzlich zu den bis­
    herigen angelegt. 'dateiversion', 'anzahl dateien' und 'anzahl 
    koppeldateien' werden um 1 erhöht. 
 
    FEHLER: 
#f1# 
    #on("i")#keine Datei geoeffnet#off("i")# 
    Es muß vorher eine Datei geöffnet werden. 
#f1# 
    #on("i")#Zuviel Dateien geoeffnet#off("i")# 
    Die Anzahl der gleichzeitig geöffneten Dateien ist begrenzt. 
#f1# 
    #on("i")#Datei existiert nicht#off("i")# 
    Die angegebene Datei ist nicht vorhanden. 
#f1# 
    #on("i")#Datei ist keine EUDAS-Datei#off("i")# 
    Die angegebene Datei hat nicht den für EUDAS-Dateien festge­
    legten Typ. 
#f1# 
    #on("i")#Zu viele Felder#off("i")# 
    Die Anzahl der Felder insgesamt ist begrenzt. 
#f1# 
    #on("i")#Zu viele Koppelfelder#off("i")# 
    Die Anzahl der Koppelfelder ist begrenzt. 
#f1# 
    #on("i")#keine Koppelfelder vorhanden#off("i")# 
    Das erste Feld der zu koppelnden Datei ist in der Hauptdatei
    nicht vorhanden (unterschiedliche Feldnamen). 
 
PROC kette (TEXT CONST dateiname) 
    Die angegebene Datei wird an die Hauptdatei angekettet, d.h.
    die Sätze der neuen Datei werden am bisherigen Dateiende
    angefügt. Falls Ändern erlaubt ist, wird eine Kopie dieser Datei
    verwendet. Die zu kettende Datei muß in der Feldstruktur nicht
    mit der Hauptdatei übereinstimmen. Die aktuelle Satzposition
    wird beibehalten. 'dateiversion' und 'anzahl dateien' werden um
    1 erhöht. 
 
    FEHLER: 
#f1# 
    #on("i")#keine Datei geoeffnet#off("i")# 
    Es muß vorher eine Datei geöffnet werden. 
#f1# 
    #on("i")#Zuviel Dateien geoeffnet#off("i")# 
    Die Anzahl der gleichzeitig geöffneten Dateien ist begrenzt. 
#f1# 
    #on("i")#Datei existiert nicht#off("i")# 
    Die angegebene Datei ist nicht vorhanden. 
#f1# 
    #on("i")#Datei ist keine EUDAS-Datei#off("i")# 
    Die angegebene Datei hat nicht den für EUDAS-Dateien festge­
    legten Typ. 
 
PROC sichere (INT CONST dateinr, TEXT CONST dateiname) 
    Die geöffneten Dateien werden in der Reihenfolge ihres Öffnens
    durchnumeriert (von 1 an). Die Arbeitskopie mit der angegebe­
    nen Nummer wird unter dem angegebenen Namen gesichert, aber
    selbst nicht verändert. Die vorher unter diesem Namen vorhan­
    dene Datei wird gelöscht. War die zu sichernde Arbeitskopie
    verändert worden, so wird sie anschließend als nicht verändert
    angesehen. 
    Bedingungen: 
      1 <= dateinr <= anzahl dateien 
 
PROC dateien loeschen (BOOL CONST auch geaenderte) 
    Es werden alle geöffneten Arbeitskopien gelöscht. EUDAS wird
    wieder in den Anfangszustand versetzt. Wird 'auch geaenderte'
    angegeben, wird bei geänderten, aber nicht gesicherten Dateien
    die Fehlermeldung unterdrückt. 
 
    FEHLER: 
#f1# 
    #on("i")#Datei nicht gesichert#off("i")# 
    Eine vorher geöffnete Datei war verändert, aber nicht gesi­
    chert. 
 
BOOL PROC auf koppeldatei 
    Liefert TRUE, wenn auf eine Koppeldatei umgeschaltet wurde. 
 
PROC auf koppeldatei (INT CONST nr) 
    Umschalten auf Koppeldatei 'nr'. Ist bereits umgeschaltet, wird
    wieder zurückgeschaltet. In diesem Fall werden bei 'nr' = 1 die
    Koppelfelder übernommen, anderenfalls nicht. Beim Umschalten
    bleiben Satzposition, Markierungen und Suchmuster gespeichert.
    In der Koppeldatei wird die beim letzten Umschalten eingestell­
    te Position wieder eingenommen. 'dateiversion' wird um 1 er­
    höht. 
 
INT PROC anzahl dateien 
    Gibt die Anzahl der insgesamt geöffneten Dateien an. 
 
INT PROC anzahl koppeldateien 
    Gibt die Anzahl der gekoppelten Dateien an. 
 
BOOL PROC aendern erlaubt 
    Reflektiert den Status, der bei 'oeffne' gesetzt wurde. 
 
BOOL PROC inhalt veraendert (INT CONST dateinr) 
    Gibt an, ob die geöffnete Datei mit der angegebenen Nummer
    verändert wurde. Wird ggf. von 'sichere' zurückgesetzt. 
    Bedingung: 
      1 <= dateinr <= anzahl dateien 
 
TEXT PROC eudas dateiname (INT CONST dateinr) 
    Liefert den Namen, unter dem die entsprechende Datei geöffnet
    wurde. 
    Bedingung: 
      1 <= dateinr <= anzahl dateien 
 
INT PROC dateiversion 
    Wird bei jedem 'oeffne', 'kette' und 'kopple' zyklisch erhöht. 
 
INT PROC folgedatei (INT CONST dateinr) 
    Eine geöffnete EUDAS-Datei wird in eine von zwei Listen auf­
    genommen, die der geketteten Dateien und die der gekoppelten.
    Diese Prozedur liefert jeweils die Nummer der nächsten Datei in
    der Liste, am Ende aber 0. Die Liste der geketteten Dateien
    beginnt immer mit 1, mit 'folgedatei (0)' erhält man die erste
    gekoppelte Datei. 
    Bedingung: 
      0 <= dateinr <= anzahl dateien 
 
 
7.2 Feldstruktur 
 
Die einzelnen Sätze der kombinierten EUDAS-Datei sind in Felder
unterteilt. Diese setzen sich zusammen aus den Feldern der Haupt­
datei und der einzelnen Koppeldateien, wobei die Koppelfelder je­
weils nur einmal auftauchen. 
    'anzahl felder' liefert die Anzahl der vorhanden Felder. Mit
'feldnamen lesen' und 'feldnamen bearbeiten' können die Feldnamen
abgefragt werden. 'feldnummer' liefert einen Index für einen vor­
gegebenen Feldnamen, da die Felder immer über Nummern angespro­
chen werden. 
    Die Prozeduren 'feld lesen' und 'feld bearbeiten' ermöglichen
den Zugriff auf den Feldinhalt des aktuellen Satzes; durch 'feld
aendern' kann dieser Inhalt abgeändert werden. 
 
INT PROC anzahl felder 
    Liefert die Anzahl der vorhanden Felder. 
 
PROC feldnamen lesen (INT CONST feldnr, 
                      TEXT VAR feldname) 
    Liefert in 'feldname' den Namen des Feldes mit der Nummer
    'feldnr'. 
    Bedingung: 
      1 <= feldnr <= anzahl felder 
 
PROC feldnamen bearbeiten (INT CONST feldnr, 
     PROC (TEXT CONST, INT CONST, INT CONST) bearbeite) 
    Die Prozedur 'bearbeite' wird aufgerufen. Als Parameter werden
    ein Text und Anfangs- und Endposition des gewünschten Feld­
    namens in diesem Text übergeben. Verhindert unnötiges Kopie­
    ren des Feldnamens in eine TEXT-Variable. Der übergebene
    Text darf nicht verändert werden! 
    Bedingung: 
      1 <= feldnr <= anzahl felder 
 
INT PROC feldnummer (TEXT CONST feldname) 
    Liefert den index zu dem angegebenen Feldnamen. Falls ein
    solcher Name nicht existiert, wird 0 geliefert. 
 
PROC feld lesen (INT CONST feldnr, TEXT VAR inhalt) 
    Liefert den Inhalt des angegebenen Feldes. 
    Bedingung: 
      1 <= feldnr <= anzahl felder 
 
PROC feld bearbeiten (INT CONST feldnr, 
     PROC (TEXT CONST, INT CONST, INT CONST) bearbeite) 
    Die Prozedur 'bearbeite' wird aufgerufen. Der Feldinhalt des
    angegebenen Feldes steht im übergebenen Text innerhalb der
    Grenzen. Ist die Obergrenze kleiner als die Untergrenze, so ist
    das Feld leer. 
    Bedingung: 
      1 <= feldnr <= anzahl felder 
 
PROC feld aendern (INT CONST feldnr, TEXT CONST inhalt) 
    Ändert den Inhalt des angegebenen Feldes. 
    Bedingung: 
      NOT ende der datei 
      1 <= feldnr <= anzahl felder 
 
INT PROC feldinfo (INT CONST feldnummer) 
    Liefert den Typ des angegebenen Feldes. 
    Bedingung: 
      1 <= feldnummer <= anzahl felder 
 
PROC notizen lesen (INT CONST nr, TEXT VAR inhalt) 
    Liest die angegebenen Notizen ('nr' = 1,2,3) aus der ersten
    Datei oder der umgeschalteten Koppeldatei. 
 
PROC notizen aendern (INT CONST nr, TEXT CONST inhalt) 
    Ändert die Notizen ('nr' = 1,2,3) der ersten Datei oder der um­
    geschalteten Koppeldatei. 
 
 
7.3 Positionierung 
 
Das virtuelle Dateimodell von EUDAS verfügt ebenfalls über eine
Satzposition, die verändert werden kann. 
    Durch 'satznummer' wird die aktuelle Satznummer geliefert,
beim Koppeln kann über 'satzkombination' die Reihenfolge der Kop­
pelkombinationen bestimmt werden. 'dateiende' zeigt an, ob die
Satzposition hinter dem letzten Satz liegt. Mit 'weiter' und 'zurueck'
erfolgt die eigentliche Positionierung. Hier kann außer der Positio­
nierung um Einzelsätze auch die Positionierung auf den nächsten
ausgewählten oder markierten Satz angefordert werden. Mit 'auf 
satz' schließlich kann ein bestimmter Satz angesprungen werden. 
 
INT PROC satznummer 
    Liefert die Nummer des aktuellen Satzes. Die Sätze werden von
    1 an durchnumeriert, wobei über die geketteten Dateien wei­
    tergezählt wird. 
    Bedingung: 
      anzahl dateien > 0 
 
INT PROC satzkombination 
    Liefert die laufende Nummer der Koppelkombination des aktuel­
    len Satzes. Wird nur durch 'weiter' im Einzelsatzmodus erhöht.
    Normalerweise 1. 
    Bedingung: 
      anzahl dateien > 0 
 
BOOL PROC dateiende 
    Gibt an, ob die Satzposition hinter dem letzten Satz liegt. 
 
PROC weiter (INT CONST modus) 
    Erhöht die aktuelle Satzposition. Für 'modus' gibt es 3 Möglich­
    keiten: 
    1: Falls eine weitere Satzkombination besteht, wird diese ein­
       genommen, sonst zum nächsten Satz. 
    2: Zum nächsten durch Suchbedingung ausgewählten Satz. Wird
       optimiert. 
    3: Zum nächsten markierten Satz. Wird optimiert. 
    Ist kein Satz mehr vorhanden, wird die Satzposition hinter dem
    letzten Satz eingenommen. 
    Bedingung: 
      anzahl dateien > 0 
 
PROC zurueck (INT CONST modus) 
    Geht um einen Satz zurück. Die Modusangabe ist wie bei 'wei­
    ter', jedoch wird im Modus 1 keine weitere Satzkombination
    ausprobiert. Die Positionierung endet bei Satz 1. 
    Bedingung: 
      anzahl dateien > 0 
 
PROC auf satz (INT CONST satznr) 
    Geht auf den angegebenen Satz. Ist 'satznr' < 1, wird auf Satz 1
    positioniert, ist der angegebene Satz nicht vorhanden, wird
    hinter den letzten Satz positioniert. Es wird jeweils die erste
    Satzkombination eingenommen. 
    Bedingung: 
      anzahl dateien > 0 
 
 
7.4 Änderungen 
 
Sätze des Dateimodells können eingefügt oder gelöscht werden.
Durch das Einfügen entsteht ein leerer Satz vor dem aktuellen Satz;
alle weiteren Sätze rücken eine Stelle weiter. Beim Löschen wird
dieser Vorgang wieder rückgängig gemacht. 
    Durch 'satz einfuegen' wird ein Leersatz eingefügt; durch
'satz loeschen' wird der aktuelle Satz gelöscht. 
    Sätze in gekoppelten Dateien werden grundsätzlich nicht ge­
löscht; auch beim Einfügen entsteht nicht automatisch ein Leersatz
in den gekoppelten Dateien. Änderungen in den Koppeldateien
(durch 'feld aendern') werden gepuffert. Durch 'aenderungen ein­
tragen' werden die Änderungen dann in die Koppeldateien eingetra­
gen. Dabei kann auch ein neuer Satz in die Koppeldatei eingefügt
werden. Bei Positionierungen wird diese Prozedur automatisch auf­
gerufen. 
 
PROC satz einfuegen 
    Fügt vor dem aktuellen Satz einen Leersatz ein. 
    Bedingung: 
      anzahl dateien > 0 
 
PROC satz loeschen 
    Löscht den aktuellen Satz. Hat hinter dem letzten Satz keine
    Wirkung. 
    Bedingung: 
      anzahl dateien > 0 
 
PROC aenderungen eintragen 
    Trägt die gepufferten Änderungen in die Koppeldateien ein.
    Dabei können die folgenden Fälle auftreten: 
    1. Der Satz in der Koppeldatei wird geändert. 
       Dies geschieht dann, wenn vorher ein passender Satz in der
       Koppeldatei vorhanden war und die Koppelfelder nicht ver­
       ändert wurden. 
    2. In der Koppeldatei wird ein neuer Satz eingefügt. 
       Wenn die Koppelfelder und noch andere Felder einer Datei
       geändert wurden, wird in dieser Datei ein neuer Satz einge­
       fügt. 
    3. Es wird neu gekoppelt. 
       Wurden nur die Koppelfelder einer Datei geändert, wird ein
       neuer, zu diesen Feldern passender Satz gesucht. Nach
       'aenderungen eintragen' erscheinen unter den Feldern der
       Datei die neuen Inhalte. 
 
 
7.5 Suchbedingungen 
 
Über 'suchbedingung' kann eine Suchbedingung eingetragen werden,
die für jeden Satz geprüft werden soll. Mit 'satz ausgewaehlt' wird
erfragt, ob der aktuelle Satz die Suchbedingung erfüllt. Die Such­
bedingung kann mit 'suchbedingung loeschen' wieder ausgeschaltet
werden. 
    Einzelne Sätze können auch markiert werden. Nach einem Öff­
nen ist zunächst kein Satz markiert. Durch 'markierung  aendern'
kann die Markierung eines Satzes geändert werden. 'satz markiert'
fragt ab, ob der aktuelle Satz markiert ist. 'markierte saetze' liefert
die Anzahl der markierten Sätze. Mit 'markierungen loeschen' wer­
den alle Markierungen entfernt. 
 
PROC suchbedingung (INT CONST feldnr, 
                    TEXT CONST bedingung) 
    Stellt für das angegebene Feld die im Text als Muster angege­
    bene Suchbedingung ein. Weitere Aufrufe verknüpfen die Be­
    dingungen mit UND (auch wenn das gleiche Feld erneut angege­
    ben wird). 
    Bedingung: 
      anzahl dateien > 0 
      1 <= feldnr <= anzahl felder 
 
    FEHLER: 
#f1# 
    #on("i")#Suchmuster zu umfangreich#off("i")# 
    Es wurden zu viele Vergleiche gefordert. 
 
BOOL PROC satz ausgewaehlt 
    Gibt an, ob die Suchbedingung auf den aktuellen Satz zutrifft.
    Hinter dem letzten Satz wird immer FALSE geliefert. 
    Bedingung: 
      anzahl dateien > 0 
 
PROC suchbedingung lesen (INT CONST feldnr, TEXT VAR bedingung) 
    Liefert die zuletzt für das angegebene Feld eingestellte Bedin­
    gung, falls die Suchbedingung nicht gelöscht und keine Datei
    neu geöffnet wurde. 
    Bedingung: 
      1 <= feldnr <= anzahl felder 
 
PROC suchbedingung loeschen 
    Löscht die eingestellte Suchbedingung wieder. Anschließend
    sind alle Sätze ausgewählt. 
    Bedingung: 
      anzahl dateien > 0 
 
PROC markierung aendern 
    Ändert die Markierung des aktuellen Satzes ins Gegenteil. 
    Bedingung: 
      anzahl dateien > 0 
 
BOOL PROC satz markiert 
    Gibt an, ob der aktuelle Satz markiert ist. 
    Bedingung: 
      anzahl dateien > 0 
 
INT PROC markierte saetze 
    Gibt an, wieviel Sätze insgesamt markiert sind. 
    Bedingung: 
      anzahl dateien > 0 
 
PROC markierungen loeschen 
    Löscht alle Markierungen. 
    Bedingung: 
      anzahl dateien > 0