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
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
|
#type ("prop")##limit (14.0)#
#format#
#page (61)#
#kapitel ("7", "Ausdrucken", "der", "Daten")#
#abschnitt ("7.1", "DRUCKMUSTER", "Druckmuster")#
Nachdem Sie sich die Inhalte der EUDAS-Datei ausgiebig am Bild
schirm angesehen haben, möchten Sie die gespeicherten Daten sicher
auch in gedruckter Form auf Papier sehen. Sie können eine
EUDAS-Datei jedoch nicht ohne weiteres ausdrucken, da sie eine
andere Struktur als normale Textdateien hat.
Vor dem Drucken müssen also die Inhalte der EUDAS-Datei
zunächst in lesbarer Form in eine Textdatei geschrieben werden.
EUDAS kann diese Aufgabe jedoch ohne Ihre Hilfe nicht alleine be
wältigen.
Es taucht nämlich das Problem auf, daß die Dateiinhalte in
vielen verschiedenen Formen dargestellt werden können (Sie erin
nern sich sicher noch an das erste Kapitel). Vielleicht wollen Sie
bestimmte Überschriften haben oder die Daten müssen auf ein be
stimmtes Formular passen.
Um die Ausgabe nach Ihren Wünschen zu gestalten, müssen Sie
also dem Rechner genau angeben, an welcher Stelle welche Felder
gedruckt werden sollen usw. Dies geht am einfachsten, indem Sie
dem Rechner ein Muster vorsetzen, nach dem er dann die richtigen
Ausdrucke erstellen kann. Dieses Muster schreiben Sie in eine eige
ne Textdatei, die #on("i")#Druckmuster#off("i")# genannt wird. Aus den Daten der
EUDAS-Datei und der Form, die im Druckmuster angegeben ist, wird
dann eine weitere Textdatei erzeugt, die die Daten in der ge
wünschten Form enthält und die anschließend automatisch gedruckt
werden kann.
Durch ein Druckmuster erhalten Sie fast völlige Freiheit in der
Gestaltung Ihrer Ausdrucke. Zum Beispiel können aus einer einzigen
Adressendatei einfache Listen, Einladungskarten oder Rundbriefe
erzeugt werden. Für eine einfache Adressenliste entspricht das
Druckmuster einer Zeile der Liste, wobei angegeben wird, in welche
Spalten die Inhalte gedruckt werden. Zum Drucken von Einladungs
karten wird als Druckmuster eine Einladungskarte verwendet, in der
die Stellen markiert sind, an denen die Adresse erscheinen soll. Das
gleiche kann man mit einem Brief machen, der dann mit jeder
Adresse einmal ausgedruckt wird.
#a ("Druckverfahren")# Man kann sich diesen Druckprozeß wie folgt vor
stellen:
#beispiel#
#free (6.5)#
#center#Abb. 7-1 Druckverfahren
#text#
Vereinfacht gesagt (das genaue Verfahren wird später beschrieben)
wird für jeden Satz der EUDAS-Datei das Druckmuster einmal in die
Druckdatei übernommen. Dabei werden die Inhalte aus der EUDAS-
Datei in einer noch anzugebenden Weise an den gewünschten Stellen
eingefügt.
Im weiteren sollen Sie erfahren, wie ein Druckmuster genau
aussieht und wie daraus ein Ausdruck entsteht.
#a ("Beispiel")# Im folgenden sollen Sie zur Demonstration die bereits in
Kapitel 3 und 4 beschriebene Beispieldatei verwenden. Nach Mög
lichkeit sollten Sie die angegebenen Beispiele mit dieser Datei
selbst am Rechner ausprobieren.
Folgende Sätze befinden sich in der Datei:
#beispiel#
Vorname Name, Strasse, PLZ Ort, m/w
-------------------------------------------------------
Herbert Wegner, Krämergasse 12, 5000 Köln, m
Helga Sandmann, Willicher Weg 109, 5300 Bonn 1, w
Albert Katani, Lindenstr. 3, 5210 Troisdorf, m
Peter Ulmen, Mozartstraße 17, 5 Köln 60, m
Karin Regmann, Grengelweg 44, 5000 Köln 90, w
Hubert Arken, Talweg 12, 5200 Siegburg, m
Anna-Maria Simmern, Platanenweg 67, 5 Köln 3, w
Angelika Kaufmann-Drescher, Hauptstr. 123, 53 Bonn 2, w
Harald Fuhrmann, Glockengasse 44, 5000 Köln 1, m
Friedrich Seefeld, Kabelgasse, 5000 Köln-Ehrenfeld, m
#text#
Wie Sie sehen, wurde die Reihenfolge der Felder gegenüber der Datei
teilweise verändert und Name und Vorname ohne Komma hinterein
andergeschrieben, während die anderen Feldinhalte durch Komma
getrennt sind. Diese Liste wurde unter Verwendung eines Druck
musters erzeugt.
Da dieses Druckmuster jedoch vorerst noch zu kompliziert ist,
sollen Sie erst einmal ein einfacheres Druckmuster erstellen und
versuchen, nur die Namen aus der Datei in Tabellenform auszuge
ben.
Das dafür nötige Druckmuster hat folgendes Aussehen:
#beispiel#
% WIEDERHOLUNG
! &Name ! &Vorname !
#text#
Das Druckmuster besteht nur aus zwei Zeilen, von der die zwei
te das eigentliche Muster darstellt. Die erste Zeile ist eine #on("i")# Anwei
sung#off("i")# an den Druckgenerator. 'WIEDERHOLUNG' gibt an, daß die
folgenden Zeilen für jeden Satz wiederholt werden sollen (warum
diese Angabe notwendig ist, werden Sie später einsehen). Das Pro
zentzeichen kennzeichnet eine Anweisung und muß unbedingt in der
ersten Spalte des Druckmusters stehen, also ganz am linken Rand.
In der zweiten Zeile ist zu sehen, daß das Zeichen '&' dazu
benutzt wird, die Stellen zu markieren, an denen nachher Feldin
halte eingesetzt werden sollen. Hinter dem '&'-Zeichen folgt der
Name des Feldes, das an dieser Stelle eingesetzt werden soll. Eine
solche Konstruktion wird #on("i")#Feldmuster#off("i")# genannt. Beachten Sie, daß
Feldnamen hier immer ohne Anführungsstriche geschrieben werden
müssen. Die Ausrufungszeichen bilden den eigentlichen Mustertext
und werden unverändert als Tabellenbegrenzung in die Ausgabe
übernommen.
Als Ergebnis des Druckprozesses sollte folgende Ausgabe auf
dem Drucker erscheinen:
#beispiel#
! Wegner ! Herbert !
! Sandmann ! Helga !
! Katani ! Albert !
! Ulmen ! Peter !
! Regmann ! Karin !
! Arken ! Hubert !
! Simmern ! Anna-Maria !
! Kaufmann-Drescher ! Angelika !
! Fuhrmann ! Harald !
! Seefeld ! Friedrich !
#text#
Sie können erkennen, daß die Feldmuster in der Ausgabe jeweils
durch den Inhalt des zugehörigen Feldes ersetzt worden sind. Der
übrige Text in der Musterzeile ist unverändert geblieben. Beachten
Sie, daß das '&' ein reserviertes Zeichen ist, das ein Feldmuster im
umgebenden Text kennzeichnet und daher (vorerst) nicht gedruckt
werden kann.
#abschnitt ("7.2", "AUFRUF", "Aufruf")#
In diesem Abschnitt sollen Sie erfahren, wie Sie diese Ausgabe
selbst erzeugen können. Damit der Druckgenerator arbeiten kann,
müssen Sie die Datei 'Adressen' erst einmal öffnen. Anschließend
wählen Sie das Menü 'Drucken' an.
#a ("Druckmuster erstellen")# Als nächstes müssen Sie das Druckmuster
erstellen. Hierfür gibt es die Funktion
#free (0.2)#
#beispiel#
Textdatei
E Editieren
#text#
#free (0.2)#
da das Druckmuster eine normale Textdatei ist.
Wählen Sie diese Funktion. Sie werden dann nach einem Namen
für das Druckmuster gefragt. Wir wollen das Druckmuster 'Namens
liste' nennen - Sie können aber auch einen beliebigen anderen
Namen wählen. Denken Sie daran, die Anführungsstriche nicht mit
einzugeben.
Es erscheint anschließend das gewohnte Editorbild mit einer
entsprechenden Statuszeile. Geben Sie die zwei Zeilen des Druck
musters ein und beenden Sie den Editor mit ESC 'q'. Damit ist das
Druckmuster fertig.
Die hier beschriebene Funktion können Sie nicht nur zum Er
stellen, sondern auch zum Ändern und einfachen Ansehen eines
Druckmusters bzw. einer Textdatei allgemein verwenden. Es wird
Ihnen immer der jeweilige Inhalt präsentiert, den Sie dann nach
Belieben abändern können oder nicht.
#bildschirm#
___________________________________________________________________________________________
EUDAS: Öffnen Einzelsatz Gesamtdatei Drucken Dateien Archiv
--------------:
Satzauswahl :
D Drucken :
--------------:
Druckausgabe :
R Richtung :
--------------:
Textdatei :
E Editieren :
A Ausdrucken :
N Nachbearb. :
--------------:
___________________________________________________________________________________________
#beispiel#
#center#Abb. 7-2 Menü "Drucken"
#text#
#a ("Ausgaberichtung")# Bevor Sie jetzt weitermachen, sollten Sie über
prüfen, ob an Ihrem System ein Drucker angeschlossen ist. Der
Drucker sollte bei den folgenden Versuchen betriebsbereit sein.
Ist kein Drucker angeschlossen oder wollen Sie kein Papier
verschwenden, haben Sie die Möglichkeit, den Ausdruck als Text
datei zu erhalten. Dazu wählen Sie die Funktion
#free (0.2)#
#beispiel#
Ausgabe
R Richtung
#text#
#free (0.2)#
an. Beantworten Sie beide Fragen, die Ihnen gestellt werden, mit
'n'. Die Ausgaben stehen dann nachher in Dateien mit einem Namen
der Form
#free (0.2)#
#beispiel#
Namensliste.a$n
#text#
#free (0.2)#
die Sie sich mit der oben beschriebenen Funktion dann genau wie
ein Druckmuster anschauen können. Der Name besteht also aus dem
Namen des Druckmusters, dem ein #bsp("'.a$'")# angehängt wird. Die Nummer
'n' dient zur Unterscheidung bei mehreren aufeinanderfolgenden
Ausgaben. Um Verwirrung zu vermeiden, sollten Sie die Datei nach
dem Anschauen löschen (im Menü 'Dateien').
#a ("Druckaufruf")# Wenn Sie diese Hinweise beachtet haben, können Sie
den Druckvorgang mit der Auswahl
#free (0.2)#
#beispiel#
Satzauswahl
D Drucken
#text#
#free (0.2)#
starten. Sie werden hier nach dem Namen des Druckmusters gefragt,
das Sie verwenden wollen (Sie können ja durchaus eine ganze Reihe
von verschiedenen Druckmustern haben).
Sie können den Ablauf des Druckvorganges daran verfolgen,
daß jeweils die Nummer des Satzes ausgegeben wird, der gerade
bearbeitet wird. Probieren Sie eventuell auch kleine Abwandlungen
des Druckmusters aus, indem Sie die Tabellenspalten schmaler oder
breiter machen oder die Ausrufungszeichen durch ein anderes Zei
chen ersetzen (je nach Geschmack).
#a ("Ausgabedatei")# Wollen Sie die erzeugte Ausgabe (die in der Datei
'Namensliste.a$1' steht) irgendwann tatsächlich ausdrucken, ver
wenden Sie die Funktion
#free (0.2)#
#beispiel#
A Ausdrucken
#text#
#free (0.2)#
Sie werden dann nach dem Namen der Textdatei gefragt. Beachten
Sie, daß Sie diese Funktion #on("i")#nicht#off("i")# zum Drucken von EUDAS-Dateien
verwenden können, da aus einer EUDAS-Datei erst eine Druckdatei
erzeugt werden muß.
Auch wenn Sie angegeben haben, daß die Ausgabe des Druck
prozesses direkt ausgedruckt werden soll, startet Ihr Drucker erst,
wenn EUDAS die ganze Datei durchgegangen ist und der Vorgang für
Sie beendet ist. Dies liegt am EUMEL-System, das nur vollständige
Druckaufträge entgegennimmt, damit sich mehrere Benutzer nicht in
die Quere kommen können. In einem Multi-User-System können Sie
weiterarbeiten, während der Drucker beschäftig ist.
#a ("Fehler")# Bevor der eigentliche Druckprozeß gestartet wird, wird das
Druckmuster auf unsinnige oder unverständliche Konstruktionen
überprüft. Ist dem Druckgenerator etwas suspekt, gibt er eine Feh
lermeldung aus, in der die fragliche Situation von seiner Seite aus
beschrieben wird. Er kann natürlich nicht Ihren Fehler "verstehen".
Daher müssen Sie unter Umständen eine Fehlermeldung erst inter
pretieren, ehe Sie die wahre Ursache erkennen können.
Damit Sie einen aufgetretenen Fehler gleich korrigieren können,
werden Ihnen das Druckmuster und die Fehlermeldungen parallel auf
dem Bildschirm zum Ändern und Anschauen angeboten. Sie können
mit dem Editor das Druckmuster ändern und in den Fehlermeldungen
blättern. Diese Konfiguration wird Paralleleditor genannt. Mit ESC
'w' wechseln Sie zwischen den beiden Bildschirmhälften.
#a ("Suchbedingung")# Wollen Sie nicht alle Namen ausdrucken, so können
Sie vorher ein Suchmuster einstellen, das nur auf die gewünschten
Namen zutrifft (wie im Kapitel 5 beschrieben). Der Druckgenerator
richtet sich immer nach dem aktuell eingestellten Suchmuster und
druckt nur die ausgewählten Sätze. Wenn Sie zum Beispiel die Na
men aller Frauen ausdrucken wollen, stellen Sie im Tastenmodus ein
Suchmuster ein (das sollten Sie können), das für das Feld 'm/w' die
Bedingung 'w' enthält. Danach können Sie den Druckgenerator auf
rufen. Vergessen Sie nicht, das Suchmuster anschließend wieder zu
löschen.
#a ("Feldnamen abfragen")# Wenn Sie selber ein Druckmuster erstellen,
wird es häufiger vorkommen, daß Sie die genaue Schreibweise der
Feldnamen nicht im Kopf haben. Für diesen Zweck definiert EUDAS
im Editor eine spezielle Tastenkombination.
Wenn Sie dort ESC 'F' tippen (großes 'F'), erhalten Sie eine
Auswahl aller Felder der gerade geöffneten Datei. Sie können sich
die Namen einfach ansehen, aber auch direkt in den Text des
Druckmusters übernehmen.
Wenn Sie nämlich vor dem Verlassen der Auswahl mit ESC 'q'
ein Feld ankreuzen, wird anschließend der Name in Anführungs
strichen an die Position geschrieben, an der vor dem Aufruf der
Cursor stand. Auf diese Weise können Sie sich auch das Tippen
langer Feldnamen vereinfachen.
Beachten Sie, daß Sie im Normalfall im Druckmuster die Anfüh
rungsstriche wieder entfernen müssen. Die Anführungsstriche dienen
zur Abgrenzung, wie weit der Feldname geht. Falls der Name Leer
zeichen enthält, beachten Sie bitte den Absatz 'Abgrenzung der
Feldnamen' in Abschnitt 7.4.
#abschnitt ("7.3", "ABSCHNITTE", "Abschnitte")#
Die Tabellen, die Sie bis jetzt erzeugen können, sehen optisch noch
nicht sehr gut aus. Es fehlt auf jeden Fall eine vernünftige Über
schrift. Um eine Überschrift zu erzeugen, können Sie im Druckmuster
einen #on("i")#Vorspann#off("i")# definieren, der ganz zu Anfang einmal gedruckt
wird.
Dieser Vorspann wird durch die Anweisung
#f2#
#beispiel#
% VORSPANN
#text#
#f2#
eingeleitet (bitte nicht vergessen, daß das '%'-Zeichen für eine
Anweisung in der ersten Spalte stehen muß). Die folgenden Zeilen
bis zur 'WIEDERHOLUNG'-Anweisung gehören zum Vorspann. Ein
Druckmuster für unsere Namensliste mit Überschrift könnte dann so
aussehen:
#beispiel#
% VORSPANN
Alle Namen aus der EUDAS-Datei 'adressen'
-----------------------------------------
% WIEDERHOLUNG
! &Name ! &Vorname !
#text#
Der Druckgenerator erzeugt mit diesem Druckmuster die gewünschte
Liste mit Überschrift. Sie können als Vorspann natürlich auch einen
beliebigen anderen Text verwenden.
In einer analogen Weise können Sie die Liste noch durch eine
waagerechte Linie abschließen, indem Sie einen #on("i")#Nachspann#off("i")# definie
ren. Die dafür notwendige Anweisung heißt
#f2#
#beispiel#
% NACHSPANN
#text#
#f2#
Die Zeilen nach dieser Anweisung werden gedruckt, nachdem alle
Sätze bearbeitet worden sind. Das folgende Druckmuster erzeugt
schon eine sehr schöne Liste:
#beispiel#
% VORSPANN
Alle Namen aus der EUDAS-Datei 'adressen'
-----------------------------------------
% WIEDERHOLUNG
! &Name ! &Vorname !
% NACHSPANN
-----------------------------------------
#text#
nämlich:
#beispiel#
Alle Namen aus der EUDAS-Datei 'adressen'
-----------------------------------------
! Wegner ! Herbert !
! Sandmann ! Helga !
! Katani ! Albert !
! Ulmen ! Peter !
! Regmann ! Karin !
! Arken ! Hubert !
! Simmern ! Anna-Maria !
! Kaufmann-Drescher ! Angelika !
! Fuhrmann ! Harald !
! Seefeld ! Friedrich !
-----------------------------------------
#text#
Die drei Teile, aus denen ein Druckmuster bestehen kann (Vorspann,
Nachspann und Wiederholungsteil), werden #on("i")#Abschnitte#off("i")# genannt. Wie
Sie später noch sehen werden, haben Abschnitte eine Reihe von
gemeinsamen Eigenschaften. Ein Abschnitt wird durch eine eigene
Anweisung eingeleitet und endet, wenn ein anderer Abschnitt be
ginnt oder das Druckmuster zu Ende ist. Alle Abschnitte können
auch weggelassen werden, irgendein Abschnitt muß aber immer
vorhanden sein. So ist es zum Beispiel möglich, ein Druckmuster zu
bauen, das nur aus einem Nachspann besteht (Sie werden allerdings
jetzt noch nicht verstehen können, warum so etwas sinnvoll sein
kann).
Zum Abschluß dieses Kapitels hier noch einmal eine Übersicht
der bisher vorgestellten Anweisungen:
#beispiel#
Anweisung ! Bedeutung
---------------+----------------------------------
% VORSPANN ! leitet Vorspann ein
% WIEDERHOLUNG ! leitet Wiederholungsteil ein
% NACHSPANN ! leitet Nachspann ein
#text#
#abschnitt ("7.4", "FELDMUSTER", "Feldmuster")#
Mit den bis jetzt beschriebenen Möglichkeiten des Druckgenerators
können Sie schon sehr viel anfangen. Es fehlt aber noch die Mög
lichkeit, mehrere Feldinhalte direkt hintereinander zu schreiben,
egal wie lang diese Inhalte sind. Diese Fähigkeit wird zum Beispiel
für die anfangs vorgestellte Liste benötigt.
#a ("Variable Position")# Die Feldmuster, die Sie bis jetzt kennen, begin
nen mit einem '&'-Zeichen und werden immer genau an der Stelle
gedruckt, an der sie stehen (feste Position). Sie können ein Feld
muster aber auch mit '%' beginnen lassen. In diesem Fall kann der
Inhalt verschoben werden (variable Position), je nachdem, ob vorhe
rige Inhalte kürzer oder länger sind.
'%' ist wie '&' ein reserviertes Zeichen, kann also nicht direkt
gedruckt werden. Da '&' und '%' Feldmuster einleiten, heißen sie
#on("i")#Musterzeichen#off("i")#.
Um Feldmuster variabler Position einmal auszuprobieren, soll
ten Sie unser bisheriges Druckmuster in der folgenden Weise um
schreiben:
#beispiel#
% WIEDERHOLUNG
&Vorname %Name
#text#
(Vorspann und Nachspann der Einfachheit halber mal weggelassen).
Als Ergebnis erhalten wir:
#beispiel#
Herbert Wegner
Helga Sandmann
Albert Katani
Peter Ulmen
Karin Regmann
Hubert Arken
Anna-Maria Simmern
Angelika Kaufmann-Drescher
Harald Fuhrmann
Friedrich Seefeld
#text#
Das Feldmuster '%Name' ist also entsprechend der Länge des Vor
namens nach links oder nach rechts gerutscht. Zu beachten ist, daß
ein Feldmuster mit '%' nicht in der ersten Spalte stehen darf, denn
dann würde die Zeile als Anweisung angesehen. Ein Feldmuster
variabler Position wäre ja auch in der ersten Spalte wenig sinnvoll.
#a ("Feste Länge")# Außer den beiden bisher besprochenen einfachen
Arten (mit '&' oder '%') gibt es noch weitere Ausprägungen von
Feldmustern für besondere Fälle. Wird ein Feldmuster noch von
weiteren Musterzeichen gefolgt, dann wird dieses Feldmuster immer
in der reservierten Länge eingesetzt. Die reservierte Länge reicht
vom ersten bis zum letzten Musterzeichen. Durch die zusätzlichen
Musterzeichen wird also ein bestimmter Platz freigehalten.
Ersetzt man im obigen Druckmuster '&Vorname' durch
'&Vorname&&', wird der Effekt des folgenden '%'-Feldes wieder
aufgehoben, da jetzt für alle Vornamen die gleiche Länge verwendet
wird (Probieren Sie dies aus).
Bei einem solchen Feldmuster mit fester Länge wird der Inhalt
abgeschnitten, falls er diese Länge überschreitet; ist der Inhalt
kürzer, wird rechts mit Leerstellen aufgefüllt. Aber auch bei Feld
mustern mit variabler Länge (also ohne folgende Musterzeichen)
kann abgeschnitten werden, nämlich genau dann, wenn der Inhalt so
lang ist, daß ein folgendes Feld mit fester Position (mit '&' anfan
gend) überschrieben würde. Hätten wir also in unserem ersten
Druckmuster nicht genügend Platz für die Spalten vorgesehen,
wären einige Namen abgeschnitten worden (probieren Sie es nochmal
aus, falls es Ihnen nicht schon passiert ist).
In einem weiteren Fall werden Feldmuster variabler Länge
abgeschnitten, nämlich wenn die generierte Zeile die maximale
Zeilenlänge überschreitet. Die maximale Zeilenlänge richtet sich
nach dem Dateilimit, das für das Druckmuster eingestellt ist. Nor
malerweise ist dies 77, so daß Sie in Normalschrift die Zeilenbreite
auf einem DIN A4-Blatt nicht überschreiten.
Benutzen Sie jedoch breites Papier oder eine schmale Schrift,
sollten Sie während der Eingabe des Druckmusters ESC ESC tippen
und das Kommando
#f2#
#beispiel#
limit (135)
#text#
#f2#
eingeben. EUDAS nutzt dann die volle Zeilenbreite aus.
#a ("Rechtsbündig")# Sie sind jetzt aber noch nicht zu Ende mit den
Feldmustervariationen. Eine letzte Möglichkeit besteht darin, den
Inhalt rechtsbündig in ein Feldmuster einzusetzen. Dies hat natür
lich nur Sinn bei fester Länge. Man erreicht dies dadurch, daß man
das Feldmuster mit mehreren Musterzeichen beginnen läßt. So ist
#f2#
#beispiel#
%%Vorname%
#text#
#f2#
die rechtsbündige Version von
#f2#
#beispiel#
%Vorname%%
#text#
#f2#
Beide Feldmuster sind gleich lang, beim ersten wird jedoch am lin
ken Rand aufgefüllt oder abgeschnitten, beim zweiten dagegen am
rechten Rand.
#a ("Zusammenfassung")# Hier noch einmal eine Zusammenstellung
aller möglichen Feldmustertypen:
#beispiel#
Typ ! Beispiel ! Position ! Länge ! bündig
----+-----------+------------------------------
1 ! &Name ! fest ! variabel ! links
2 ! %Name ! variabel ! variabel ! links
3 ! &Name&&& ! fest ! fest ! links
4 ! %Name%%% ! variabel ! fest ! links
5 ! &&&Name& ! fest ! fest ! rechts
6 ! %%%Name% ! variabel ! fest ! rechts
#text#
Wir können zusammenfassen:
#free (0.2)#
#bsp("*")# Feldmuster dienen im Druckmuster dazu, Stellen zu markieren, an
denen Inhalte eingesetzt werden sollen.
#free (0.2)#
#bsp("*")# Feldmuster beginnen mit einem Musterzeichen ('&' oder '%');
darauf folgt der Feldname.
#free (0.2)#
#bsp("*")# Durch '&' wird feste und durch '%' variable Position festgelegt.
#free (0.2)#
#bsp("*")# Durch zusätzliche Musterzeichen kann eine feste Länge angege
ben werden; mehrere Musterzeichen am Anfang führen zu rechts
bündigem Einsetzen.
#a ("Abgrenzung der Feldnamen")# Als nächstes sollen Sie den Fall be
trachten, daß Sie einen Namen in der oft auftretenden Form
#f2#
#beispiel#
Name, Vorname
#text#
#f2#
schreiben wollen. Die Schwierigkeit liegt in dem Komma, das direkt
hinter dem Namen folgen soll. Sie könnten versuchen, diese Situa
tion im Druckmuster folgendermaßen darzustellen:
#beispiel#
% WIEDERHOLUNG
&Name, %Vorname
#text#
In diesem Fall erhalten Sie aber die Fehlermeldung
#beispiel#
FEHLER in Zeile 2 bei >>Name,<<
diese Abkuerzung ist nicht definiert
#text#
Wenn Sie sich nicht genau vorstellen können, wie der Druckgenera
tor ein Feldmuster liest, wird Ihnen dieser Fehler mysteriös er
scheinen, denn 'Name' ist doch als Feld definiert (was eine Abkür
zung ist, werden Sie in Kapitel 13 lernen). Den entscheidenden
Hinweis liefert jedoch das Komma. Offensichtlich hat der Druck
generator das Komma als Teil des Feldnamens angesehen.
Dies liegt daran, daß ja irgendwann der Feldname in einem
Feldmuster beendet sein muß. Normalerweise interpretiert der
Druckgenerator ein Leerzeichen oder Musterzeichen als Ende des
Namens, alle vorherigen Zeichen gehören mit zum Feldnamen. Wenn
nun aber nach dem Feldmuster kein Leerzeichen folgen soll (wie in
unserem Beispiel) oder der Feldname selbst Leerzeichen enthält
(dies ist ja erlaubt, könnte aber im Druckmuster nie erkannt wer
den), muß noch eine zusätzliche Angabe erfolgen.
In solchen Fällen kann der Feldname in spitze Klammern einge
schlossen werden. Der Druckgenerator sieht den Feldnamen dann bei
der ersten schließenden Klammer als beendet an, wobei die Klam
mern natürlich nicht zum Feldnamen gehören, aber auch nicht ge
druckt werden.
Das obige Beispiel müßte also richtig so formuliert werden:
#beispiel#
% WIEDERHOLUNG
&<Name>, %Vorname
#text#
Wenn Sie dieses Druckmuster ausprobieren, werden Sie sehen, daß
die Namen tatsächlich in der gewünschten Form erscheinen.
#a ("Leerautomatik")# Es gibt noch eine trickreiche Automatik in EUDAS,
die in manchen Fällen ganz nützlich ist - und zwar in Fällen, in
denen Sie mehrere Felder als Aufzählung durch Leerzeichen ge
trennt drucken wollen. Nehmen wir an, unsere Adreßdatei hätte
noch ein Feld 'Titel', in das Sie bei Bedarf 'Dr.' oder 'Prof. Dr.'
eintragen. In der Adresse würden Sie dann angeben:
#beispiel#
&Titel %Vorname %Name
#text#
Wenn der Titel jedoch leer ist, würde ein störendes Leerzeichen vor
dem Namen bleiben. In einem solchen Fall entfernt EUDAS das Leer
zeichen automatisch. Vorbedingung für diese Automatik ist, daß es
sich um ein Feld variabler Länge handelt und vor dem Feld noch ein
Leerzeichen steht (außer in Spalte 1).
#a ("Aufgabe")# Sie sollten jetzt die Möglichkeiten des Druckgenerators
soweit kennengelernt haben, daß Sie ein Druckmuster für die zu
Anfang des Kapitels erwähnte Liste aller Dateiinhalte erstellen
können. Versuchen Sie dies zunächst allein, ehe Sie die Lösung
nachschauen.
Hier nun die Lösung:
#beispiel#
% VORSPANN
Vorname Name, Strasse, PLZ Ort, m/w
-------------------------------------------------------
% WIEDERHOLUNG
&Vorname %<Name>, %<Strasse>, %PLZ %<Ort>, %m/w
#text#
Beachten Sie die spitzen Klammern, die nötig sind, um das Kom
ma ohne Zwischenraum anzuschließen.
#a ("Beispiel")# Als letztes Beispiel sollen Sie einen Fall betrachten, bei
dem pro Satz mehr als eine einzelne Listenzeile gedruckt werden
soll, und zwar sollen Sie einen Brief schreiben, in den der Druck
generator die Adressen verschiedener Leute einfügen soll. Die Er
stellung von Formbriefen ist eine sehr häufige Anwendung von
EUDAS. Mit den bisher beschriebenen Konstrukten kann man etwa
folgendes Druckmuster schreiben:
#beispiel#
% WIEDERHOLUNG
&Vorname %Name
&Strasse
&PLZ %Ort
Lieber &Vorname !
Ich lade Dich mit diesem Brief zu
meiner nächsten Party ein.
Bring gute Laune und was zu Essen mit.
Viele Grüße
\#page\#
#text#
Die letzte Zeile zeigt eine Möglichkeit, von der Sie wahrscheinlich
öfter Gebrauch machen werden, nämlich Druckersteuerungsanwei
sungen in das Druckmuster einzufügen. Die Anweisung '\#page\#'
wird an den Drucker weitergereicht und bewirkt, daß nach jedem
Brief eine neue Seite angefangen wird (Sie wollen sicher nicht
mehrere Briefe auf ein Blatt drucken). Sie können auch andere An
weisungen verwenden, z.B. neue Schrifttypen einstellen. Informieren
Sie sich gegebenenfalls, welche Anweisungen die Textkosmetik zur
Verfügung stellt.
#a ("Ausblick")# Sie kennen jetzt bereits einen großen Teil der Möglich
keiten des Druckgenerators. Einige wünschenswerte Fähigkeiten
fehlen jedoch noch. So wäre es vorteilhaft, wenn abhängig vom
Inhalt des Feldes 'm/w' die Anrede 'Sehr geehrter Herr' oder 'Sehr
geehrte Frau' erzeugt werden könnte. Außerdem könnte das im
Rechner vorhandene Datum automatisch in den Brief übernommen
werden. Diese Möglichkeiten werden den Kapiteln 12 und 13 be
schrieben.
Sie sollten diese jedoch erst dann durchlesen, wenn Sie eine
gewisse Sicherheit im Umgang mit Druckmustern erlangt haben.
Zuvor sollten Sie die Inhalte dieses Kapitels beherrschen, damit Sie
EUDAS gut nutzen können.
|