RagTime wurde schon von Anfang an gerne in Schulen verwendet. Hier geht es mit RagTime 7 um Beispiele aus einer Privatschule. Lernen lässt sich da vor allem, wie man die Administration gut organisiert. Neben Briefen, Serienbriefen, Adresslisten und Terminplanung widmen wir uns auch der Handhabung mit Knöpfen. Bleibt zu hoffen, dass alles klar genug aufbereitet ist, damit Sie nicht nachsitzen müssen.
Die Privatsprachschule „YesNon“ ist ein Franchise-Unternehmen mit derzeit fünf Schulen: In London, Malta, Montpellier, München und Zürich. Alle diese Schulen sind am Erfolg beteiligt und werden vom Hauptsitz in Frankfurt in jeder Beziehung unterstützt. Von hier aus wird auch das Marketing, die Qualitätskontrolle und die Abrechnung geleitet.
Die Schule ist auf Jugendliche zwischen 16 und 26 Jahren ausgerichtet. Ein Sprachaufenthalt beträgt mindestens 6 Monate. Während dieser Zeit wird halbtags gelernt und halbtags in Firmen oder Nonprofit-Organisationen gearbeitet. Die Qualifikation eines besuchten Kurses beschränkt sich nicht nur auf die schulischen Spracherfolge, sondern bezieht auch Sozialkompetenzen aus dem praktischen Einsatz mit ein.
Das ist keine absurde Frage. Immer häufiger werden Schriftstücke und Dokumente elektronisch verschickt. Und immer bessere Postscript-Drucker können mit hoher Auflösung eine ansprechende Druckqualität erzeugen. Damit ist die Frage, welche Papiere tatsächlich bei einer Druckerei in Auftrag gegeben werden müssen, berechtigt. Möglicherweise genügt ein einziges, mehrfarbig gedrucktes Papier, und alles andere wird individuell mit selbst gestalteten Formularen gelöst. Weil sich Klein- und Mittelbetriebe, ebenso wie Selbstständige mit RagTime Formularblöcke (mit dem Suffix .rtt) rasch und effizient selbst erstellen können, gehen wir als erstes auf das Briefformular ein. Im Beispiel der Sprachschule sind es sechs verschiedenen Standorte (z. B. Abb. 2.1 in München), welche eine gut vorbereitete Organisation verlangen. Ein gewöhnliches Briefformular wird kaum genügen. Bauen wir darum Schritt für Schritt ein raffinierteres Formular auf.
Bei der YesNon GmbH geht es mehrsprachig zu. Alle Schulen arbeiten mit den gleichen RagTime-Dokumenten. Es soll an jedem Arbeitsplatz individuell entschieden werden können, welche Sprache der Brief oder die Mitteilung haben soll. Für uns ist es interessant, die Möglichkeiten zu entdecken, die in Formularen stecken, wenn sie mit Rechenblättern aufgebaut sind (siehe Abb. 2.2). Links das Dokument wie es dann im täglichen Einsatz aussieht, rechts das Dokument mit allen nicht druckenden Elementen von einem Formularblock geholt.
In diesem Dokument sind drei Dinge besonders auffällig: Erstens handelt es sich im oberen Drittel um ein Rechenblatt (mit Ausnahme der Falzmarken), zweitens sind Knöpfe eingebaut und drittens ist hinter dem Textrahmen, der für den Brieftext vorgesehen ist, ein Wasserzeichen mit der Standortbezeichnung «Zentrale» zu sehen. Dieses Wasserzeichen ist mit dem ersten Auswahlknopf und den Radioknöpfen darunter verknüpft. Damit kann der Benutzer vorgeben, an welchem Standort das Dokument verfasst wurde. Weil solche Wasserzeichen in den verschiedensten Dokumenten eine große Hilfe sein können, wenden wir uns vorerst dieser Funktion zu.
Bei längerfristigen Projekten gibt es oft eine Menge von Dokumenten, und das in mehreren Fassungen. Wasserzeichen, eventuell mit Datum, erleichtern dabei den Überblick. Ein einfaches Wasserzeichen ist ziemlich schnell aufgebaut: Mit dem Grafischen Textwerkzeug den gewünschten Text schreiben – in großem Schriftgrad und mit heller Farbe bzw. Schwarz und einer Dichte von etwa 10%. Die Textzeile so drehen, dass sie schräg über die Seite verläuft und dann das Textelement nach hinten stellen («Zeichnung ➝ Stapelung ➝ Nach hinten bringen»). Darüber einen Rahmen aufziehen, der nun auf der vorderen Ebene liegt – und in der Regel im Layout als Textkomponente definiert ist. Er muss unbedingt eine transparente Füllvorlage aufweisen. Handelt es sich um einen Rechenblattrahmen, so ist darauf zu achten, dass nicht nur der Rahmen selbst, sondern auch die Füllung der Zellen auf «Transparent» eingestellt ist. Mit «Objekte abgleichen» (siehe Abb. 2.3) lässt sich das Element in einem Arbeitsgang auf alle, oder auf die gewünschten Seiten kopieren.
Manchmal ist die erstbeste Lösung nicht wirklich die beste Lösung. Ausnahmsweise haben wir, um die Systematik aufzuzeigen, eine sehr „spontane Lösung“ vorgestellt, die aber hier nicht optimal ist. Die Funktion «Objekte abgleichen» hat den Zweck, einzelne Komponenten auf mehreren definierten Seiten entweder zu platzieren oder gleichzeitig zu ändern. Für variable Texte, wie es unser Wasserzeichen darstellt, ist dies nicht geeignet. Wir gehen ja davon aus, dass der Text des Wasserzeichens sich bei einer neuen Version des Dokument-Inhaltes ändern soll.
Stammseiten haben den Vorteil, dass dort eingefügte Elemente – in unserem Falle Grafischer Text – sofort auf allen Seiten des Layouts erscheinen, die von dieser Stammseite abhängen. Was aber tun, wenn das Dokument noch gar kein Stammlayout hat? Dann erstellen Sie einfach das Stammlayout nachträglich. Öffnen Sie am besten das Inventar des Dokumentes, um die Vorgänge besser zu überblicken. Dort unter «Neue Komponente ➝ Stammlayout» auswählen und dem neuen Stammlayout gleich einen Namen vergeben, zum Beispiel «Wasserzeichen». Eine Seite des Stammlayouts genügt: Dort erstellen Sie das Wasserzeichen mit Grafischem Text, in einer großen und fetten Schrift. Erstellen Sie eine Füllvorlage mit einer transparenten Farbe «Fenster ➝ Hilfsmittel ➝ Füllvorlagen ➝ Deckkraft». Eine Deckkraft von 10 bis 15% sollte genügen. Danach ist nur noch das bestehende Layout mit dem neuen Stammlayout zu verknüpfen. Falls nun die Schrift im Layout um den Wasserzeichentext herum verläuft, so ist auf der Stammseite das Element Grafischer Text auszuwählen und unter «Information ➝ Objekte ➝ Text umfließt Objekt» auszuschalten (kein Häkchen). Dank der transparenten Schrift scheint nun der Text im Layout über das Wasserzeichen zu laufen. In Wirklichkeit befindet sich der Grafische Text auf allen Seiten auf vorderster Ebene und lässt sich nicht einfach auf eine hintere Ebene zurück versetzen. Darum als Lerneffekt: Ein Stammlayout kann zwar nachträglich erstellt werden, sollte aber die wesentlichen Elemente für das Layout ebenfalls enthalten, um die Ebenen – für unser Wasserzeichen – richtig auswählen zu können. Grundsätzlich gilt der nächste Abschnitt natürlich für alle nachträglich angelegten Stammlayouts.
In Abb. 2.6 ist das Inventar des Dokumentes zu sehen, im Hintergrund die Layoutseite. Die Kopfzeile als Rechenblatt, dann die Textkomponente. In Abb. 2.7 ist sichtbar, dass ein neues Stammlayout angelegt wurde mit dem Namen «STL_Wasserzeichen». Wählen Sie alle Komponenten der ersten Layoutseite aus, z. B. mit AA/6A, kopieren diese und fügen sie im Stammlayout wieder ein. Im Inventar tauchen jetzt von allen kopierten Komponenten die entsprechenden Symbole und Namen auf. Das muss Sie nicht stören: Was am Schluss noch zu viel ist, lässt sich einfach wieder löschen. Wandeln Sie den Textrahmen auf der Stammlayoutseite um: «Zeichnung ➝ Inhaltsart ➝ Kein Inhalt». Dadurch wird der kopierte Text dieses Containers automatisch gelöscht. Der leere Rahmen bekommt noch eine Pipeline zum automatischen Seitenanfügen. Nun mit Grafischem Text den Wasserzeichentext eingeben, nach Wunsch drehen und auf die hinterste Ebene zurück setzen (siehe Abb. 2.8). Aber Achtung: Im Rechenblattrahmen des Ursprungslayouts war in der Zelle B1 der Kopfzeile eine Formel für die Seitennummerierung eingegeben. Die funktioniert mit einem Stammlayout nicht mehr.
Dort muss die gleiche Formel als Grafischer Text eingefügt werden. In der Abbildung ist dieser Text rot eingekreist. Den Grafischen Text mit der Formel an die richtige Stelle schieben und im Rechenblatt die Formel an dieser Stelle löschen: Fertig ist das Stammlayout. Jetzt erzeugen Sie über das Inventar wieder ein neues Layout. Es erscheint automatisch die Abfrage, ob es sich auf das Stammlayout «STL_Wasserzeichen» beziehen soll. Genau das wollen wir – und somit entsteht ein neues, vom Stammlayout abhängiges Layout (siehe Abb. 2.9). Danach bleibt nichts weiter zu tun, als den Text «Märchentext» aus dem Inventar in das neu erstellte Layout zu ziehen. Es existiert nun ein komplett neues Layout, das genauso aussieht, wie das Ursprungslayout, aber zusätzlich mit einem Stammlayout verknüpft ist, das ein auswechselbares Wasserzeichen aufweist. Alle überflüssigen Komponenten – das alte Layout und die alte Kopfzeile – können jetzt im Inventar gelöscht werden. Vergewissern Sie sich, das bei der Textkomponente kein Häkchen gesetzt ist, sonst könnte es sein, dass das ganze Märchen mit gelöscht wird. In diesem Falle, ohne vorher eine andere Aktion auszulösen, den Wiederrufen-Befehl wählen – und weg mit dem Häkchen!
Im Seitenreiter ihres Layouts können Sie durch Doppelklick die Layoutinformation aufrufen, um dort die Verknüpfungen vom Stammlayout für das ganze Dokument oder für einzelne Seiten zu lösen. Danach lassen sich zwar im Layout wieder alle Komponenten frei verschieben, aber die Verbindung ist weg und damit die Möglichkeit, generelle Befehle oder Änderungen über das Stammlayout vorzunehmen.
Wasserzeichen können in den verschiedensten Anwendungen von Nutzen sein. Am häufigsten wohl dann, wenn im Dokument bzw. auf jedem gedruckten Blatt sofort erkannt werden soll, ob es sich um einen Entwurf, ein «Gut zum Druck» usw. handelt. Darum sind diese Erläuterungen fürs Eichhörnchen zum Sammeln.
Bei einer erneuten Verknüpfung mit dem Stammlayout passiert Folgendes: Alle Komponenten des Stammlayouts werden wiederum ins Layout eingefügt, und zwar auf der vordersten Ebene. Die bestehenden Komponenten werden überdeckt, was zum erschreckten Suchen nach scheinbar verlorenem Text führen kann. Alle Komponenten liegen nun doppelt übereinander und da sich der Befehl nicht mehr rückgängig machen lässt, wäre ein zeitaufwändiges Löschen von überflüssigen Komponenten die Folge. Generell empfehlen wir, immer, wenn Sie mit Stammlayouts etwas „ausprobieren“ möchten, legen Sie sich zuvor eine Kopie Ihres Ausgangsdokumentes an.
Gehen wir zurück zu unserem Dokument der YesNon-Sprachschulen. Das Wasserzeichen im Briefformular verändert sich, je nachdem, welche Schule als Absender fungiert. Gleichzeitig gibt es aber zwei Wasserzeichen: Eines, das nur im Dokument erscheint – als internes Erkennungszeichen beim Austausch von RagTime-Dokumenten – und ein zweites Wasserzeichen, das auch im Druck und im Austausch von PDF-Dokumenten erscheinen soll (siehe Abb. 2.12/Abb. 2.13).
Obwohl wir in „Formeln Folge 2: Vielfalt der Knöpfe“ genauer auf die Funktionen und das Erstellen von Knöpfen eingehen, wollen wir hier dem wechselnden Wasserzeichen und den damit verbundenen Knöpfen noch etwas auf den Grund gehen. In Abb. 2.14 und Abb. 2.15 sind die Zusammenhänge zwischen den Knöpfen und dem Wasserzeichen sichtbar gemacht. Aber auch das bedarf einer eingehenden Erklärung:
Der Knopf «Knopf_Ort» steuert die Ortsbezeichnungen im Wasserzeichen. Er ruft dazu die entsprechenden Begriffe in der bereits richtig formatierten Schrift aus dem Rechenblatt «R_Quelldaten» ab. Die Komponente, die das Wasserzeichen im Briefbogen wiedergibt, ist ein Grafischer Text, der lediglich als Formel eine Referenz enthält. Die Komponente wurde groß genug aufgezogen, um auch den längsten Ortsnamen «MONTPELLIER» auf einer Zeile wiedergeben zu können. Auch das Drehen der Komponente um -38° kann später noch erfolgen. Die Formel, die einzugeben ist:
Die Formel bezieht sich auf den Einblendmenü-Knopf«Knopf_Ort» und auf den Radioknopf «Knopf_Nichtdruck».
«Index» ist die Funktion, die den Wert einer Rechenblattzelle aus einem bestimmten Bereich liefert. Der Bereich A1:G2 umfasst im Rechenblatt «R_Quelldaten» die Ortsnamen für das Wasserzeichen. Das Rechenblatt «R_Quelldaten» ist in Abb. 2.17 geöffnet. Die Zeile 1, von Zelle A1 bis G1, enthält die als druckend formatierten Ortsbezeichnungen, die Zeile 2, von Zelle A2 bis G2, enthält die nicht druckend formatierten Ortsbezeichnungen. Die übrigen Inhalte dieses Rechenblattes erfüllen einen anderen Zweck im Zusammenhang mit den Briefformularen. Wir kommen im nächsten Abschnitt darauf zu sprechen.
Die zweite Angabe in der Formel nach dem Semikolon definiert die Zeile in diesem Bereich. Und diese Angabe wird durch den Knopf «Knopf_Nichtdruck» geliefert (entweder Zeile 1 oder Zeile 2). Die dritte Angabe der Formel betrifft die Spalte im Bereich, geliefert vom Knopf «Knopf_Ort» (Spalte 1 bis 7, je nach Auswahl im Knopf. Vergleiche Abb. 2.15, «München» entspricht Spalte 6). Für den Knopf «Knopf_Ort» muss auf der Tafel «Knopfinformation ➝ Allgemein ➝ Titel» nachfolgende Formel eingetragen werden (die Knopfinformation öffnen Sie am einfachsten mit gedrückter “/•-Taste und einem Doppelklick):
Beim Radioknopf «Knopf_Nichtdruck» braucht es lediglich die Bezeichnungen, die man zur Bedienung auswählen soll: «Intern (Wasserzeichen druckend)» und «Extern (Wasserzeichen nicht druckend)» wie in Abb. 2.16 ersichtlich. Damit ist die Wasserzeichen-Übung schon fertig.
Wenn Sie die so erstellten Komponenten für andere Zwecke nutzen wollen (z.B. um Manuskript-Versionen zu kennzeichnen), brauchen Sie nur die Begriffe in den ersten beiden Zeilen des Rechenblattes «R_Quelldaten» zu ändern. Wir hatten, von unserem YesNon-Briefpapier ausgehend, die beiden soeben beschriebenen Knöpfe in den Zellen A1 und A2 des Rechenblattes «_Gesamtbrief» untergebracht. Ihr entsprechendes Rechenblatt können Sie natürlich anders benennen, z. B. «Wasserzeichen».
Ihre Wasserzeichen-Kombination besteht nun aus einem Rechenblatt, darin einem Einblendmenü-Knopf mit den Begriffen für das Wasserzeichen und einem Radioknöpfe-Knopf mit der Auswahl, ob druckend oder nicht druckend. Außerdem haben Sie einen Grafischen Text mit der Referenz zum eigentlichen Wasserzeichen und ein Rechenblatt mit den Quelldaten, das die Begriffe bereits richtig formatiert enthält. Wenn Sie nun den Grafischen Text auf eine Stammlayoutseite platzieren und auch das Rechenblatt mit den Knöpfen (als nicht druckendes Objekt), dann haben Sie auf jedem von diesem Stammlayout abhängigen Layout immer das richtige Wasserzeichen und können es mit Hilfe der Knöpfe von jeder beliebigen Seite aus ändern (sonst lassen sich vom Stammlayout abhängige Elemente nur in diesem selbst ändern. Die Änderung wirkt sich dann auf alle Seiten Ihres Layouts aus.
Kommen wir bei unserem YesNon-Briefpapier auf den dritten Knopf, das Einblendmenü für die Sprachwahl (Abb. 2.18). Damit – zusammen mit «Knopf_Ort» – sollen die Adressen, die Zeichen-Vermerke und die Absenderkennung im Brieffenster ausgewechselt werden. Das gleiche Briefformular ist somit für alle Standorte der Sprachschule verwendbar. Das erhöht die Flexibilität, da jeder Anwender jederzeit alle Briefformulare der YesNon-Sprachschule zur Verfügung hat und stellvertretend Briefe für eine andere Schule verschicken kann. Der Einsatzbereich der hier gezeigten Lösung lässt sich übertragen, z. B. indem ein einziges Formular als Brief, als Lieferschein, als Rechnung, Mahnung usw. per Einblendmenü gewechselt werden kann. Das Prinzip bleibt das Gleiche.
In Abb. 2.19 ist das Rechenblatt «R_Quelldaten» in einem Ausschnitt vergrößert. Alle rot oder grün unterlegten Zellen enthalten eine Formel. Zusätzlich sind die besprochenen Knöpfe auch hier noch einmal eingefügt, um die Richtigkeit der Funktionen direkt im Rechenblatt überprüfen zu können. In den Zellen A3 bis A6 wird aus den sechs verschiedenen Firmenniederlassungen jeweils die richtige Adresse zusammengesetzt; dies in Bezug auf «Knopf_Ort». Die Formel in Zelle A3 ist infolgedessen bis A6 nach unten kopiert. Wenn also mit dem «Knopf_Ort» einer der Standorte gewählt wird (Index > 1), wird in Zelle A3 aus Zeile 15 die richtige Firmenbezeichnung geholt, in Zelle A4 aus Zeile 16 die richtige Unterbezeichnung, in Zelle A5 aus Zeile 17 die richtige Straße und in Zelle A6 aus Zeile 18 der richtige Ort. Nach der gleichen Logik geht es in den Zellen A8 bis A10 um die richtige Sprache und in den Zellen B8 bis B11 um die jeweiligen Telefonnummern, E-Mail-Adressen, Bankverbindungen usw. Selbstredend, dass diese farbig markierten Zellen dann im Rechenblatt «_Gesamtbrief» entsprechend referiert werden. In Abb. 2.23 bis Abb. 2.26 sind diese Referenzen deutlich gemacht. Die Formel, die in Zelle E3 aufgezeigt wird, gilt mit der entsprechenden Referenz natürlich für alle Bestandteile des Briefkopfes.
Die Absenderkennung für das Adressfenster referiert zu den Adressen mit der Funktion «Verbinden». Damit lassen sich mehrere Zellinhalte zu einem Text verbinden, der durch bestimmte, wiederkehrende Zeichen aneinander gereiht wird. In unserem Falle ist das ein Komma und ein Leerzeichen (Abb. 2.24).
Die Signatur-Zeichen und das in jeder Sprache andere Logo in Abb. 2.25 und Abb. 2.26 beziehen sich wieder mit Indexfunktion und dem Einblendmenüknopf «Knopf_Sprache» auf das Rechenblatt «R_Quelldaten». Damit ist ein komfortables und benützergerechtes Briefformular entstanden, das mit einer Folgeseite ergänzt und als RagTime-6-Formularblock (mit der Endung «.rtt») gespeichert werden kann. Bleiben wir im nächsten Abschnitt beim Thema Stammlayout – und beim Unterschied zum Formular, das ja auch wieder von einem Stammlayout abhängig sein kann.
Wer nicht sehr mit RagTime vertraut ist, hat oft Mühe sich für die eine oder andere Lösung zu entscheiden. Deshalb hier ein paar Gedanken zu Vor- und Nachteilen: Bei einem Formular mit Ringpipeline werden automatisch Seiten angefügt, wenn der Text auf einer Seite überläuft. Die Objekte auf den einzelnen Seiten sind voneinander unabhängig. Das kann ein Vor- oder Nachteil sein. Kommt ein gleiches Objekt – z. B. ein Logo – auf allen Seiten vor, so ist beim Formular jedes Logo eine neue Kopie. Das kann ganz schön „ins Tuch“ gehen und ein ellenlanges Inventar erzeugen (siehe Abb. 2.29). Außerdem müssen bei einem Formular ohne Stammlayout all die Seiten, die bei Textkürzungen überflüssig werden, wieder von Hand gelöscht werden. Ansonsten genügt das Formular für einfachere, nicht zu umfangreiche Layouts.
Formular und Stammlayout schließen sich aber nicht aus – liegt einem Formular ein Stammlayout zugrunde, so sind alle Vorteile vereinigt! Im Formular mit Stammlayout werden bei Änderungen der Textlänge nicht nur Seiten automatisch angefügt, sondern überflüssige Seiten auch automatisch gelöscht. Außerdem sind die Komponenten, die vom Stammlayout abhängen, auf allen Layoutseiten die gleichen (also nicht als Kopien). Somit können Sie über das Stammlayout auch auf allen Seiten gleichzeitig Änderungen vornehmen. Will man allerdings im Layout einzelne Komponenten auf einer Seite verändern (sei es in der Anordnung oder in der Größe usw.), müssen diese Seiten vom Stammlayout gelöst werden. Doch mit speziell angepassten Stammseiten lässt sich fast jeder Wunsch nach unterschiedlicher Seitengestaltung lösen. Mehr darüber in Kapitel 3 „Gut zum Druck nach Noten“.
Von der YesNon-Zentrale in Frankfurt wird an ausgewählte deutschsprachige Medien ein Aussand geplant: Ein Pressetext und ein persönlicher Begleitbrief, natürlich auf Basis unseres Briefformulars. Im Rahmen dieser Aufgabe können wir vorweg gleich einige Besonderheiten thematisieren, die RagTime im Zusammenhang mit Texterstellung und Textkorrekturen bietet. Unter «Bearbeiten ➝ Sondertext einfügen» sind eine ganze Reihe von Sondertexten zu finden, die sich an jeder Stelle in Textkomponenten (oder Texten in anderen Komponentenarten) einfügen lassen (Abb. 2.30).
Nur die Datum- und Uhrzeit-Sondertexte bedürfen der Erläuterung. Mit «Datumstempel» wird das Datum als fixer Text, mit «Automatisches Datum» als bei jeder Dokumentbenutzung aktualisiertes Datum, und mit «Dokumentdatum» als das Datum der Dokumenterstellung, bzw. des Abrisses vom Formularblock eingefügt. Die Uhrzeit-Sondertexte sind analog zu interpretieren. Das Dokumentdatum kann, wenn z. B. ein Brief erst am folgenden Tag verschickt wird, in «Extras ➝ Dokumenteinstellungen… ➝ Dokument» geändert werden, bleibt aber, abgesehen von dieser Änderungsmöglichkeit, fix im Dokument gespeichert.
Das Einfügen eines Sondertextes ist einfach: Dort, wo die Einfügemarke blinkt, wird der Sondertext eingefügt. Hinter allen Sondertexten steht eine Formel – es handelt sich also um berechneten Text. Wenn Sie «Fenster ➝ Zeigen ➝ Berechneter Text» auswählen, werden alle diese Texte mit einer feinen punktierten Linie eingerahmt. Selbstverständlich kann ein Sondertext wieder gelöscht oder an eine andere Textstelle verschoben werden, aber innerhalb des Sondertextes, beispielsweise in einem automatischen Datum, kann nichts korrigiert oder verändert werden. Auf jeden Fall können Sie einem Datumsondertext – außer dem Datumstempel, der als Text in der Formel steht – nachträglich ein anderes Werteformat zuordnen.
«Bearbeiten ➝ Symbol einfügen» öffnet ein Fenster, dass alle auf Ihrem Rechner verfügbaren Schriften und Zeichen nutzbar macht. Unter «Unicode-Zeichen» (siehe Abb. 2.31) können Sie links oder rechts scrollen, um die gewünschten Zeichenbereiche zu finden. So lassen sich auch fremdsprachige Zeichen und Symbole finden und einsetzen. Die Tafel «Glyphen» (Abb. 2.33) ist nicht ganz stimmig benannt. Der Begriff «Glyphen» bezeichnet in der Typografie Varianten von Typen, vorwiegend in Zierschriften und Schreibschriften. Hier ist «Glyphen» ein Überbegriff für alle Sonderzeichen.
Was «Symbol einfügen» so interessant macht, sind zwei Punkte: Erstens können alle Zeichen direkt passend in Ihrer gerade gewählte Schriftformatierung eingefügt werden. Dazu muss das Häkchen gesetzt werden (siehe roter Kreis). Zweitens können Sie alle Zeichen mit «Als Favorit merken» in die Tafel «Favoriten» aufnehmen, wo Sie ihm ein Tastaturkürzel, also eine Art «Alias» zuweisen können (Abb. 2.33, Abb. 2.34, Abb. 2.35).
In dieser Tafel «Favoriten» sind bereits bei der Installation eine Reihe von Zeichen aufgeführt. Eines davon ist «Schmales Leerzeichen». Wer Wert auf richtige Typografie legt, wird sich dieses Zeichen ebenfalls mit einem eigenen Kürzel nutzbar machen. Immer, wenn Wortzwischenräume enger sein sollen, z. B. bei Abkürzungen oder bei Vornamen-Initialen (E.A. Hoffmann), ist das schmale Leerzeichen mit einem Tastaturkürzel schnell verfügbar. Ein weiterer schöner Nebennutzen dieser Symboltafeln sind die Hinweise auf Unicode-Zeichen. Jedes verfügbare Zeichen hat eine eigene Unicode-Nummer. RagTime kann mit diesen Unicode-Nummern in den Formeln rechnen, bzw. darauf zugreifen (siehe Abb. 2.36 und Abb. 2.37). Im Abschnitt über das Arbeiten mit Rechenblättern und Adressen werden wir darauf zurückkommen.
Zum Schluss noch etwas Nützliches, das man übersehen könnte: Die kleine Nadel rechts oben. Ist sie horizontal, so muss das Fenster wieder geschlossen werden, bevor Sie in Ihren Text weiter schreiben können. Ist die Nadel durch Auswählen vertikal gestellt, kann das Fenster beim Texterfassen offen bleiben, und Sie können immer wieder auf die Symbole, Glyphen und Favoriten zugreifen.
Wenn wir beim Thema Sonderzeichen, Typen und Schriften sind, wollen wir der Vollständigkeit halber noch das Hilfsmittel «Zeichensatzverzeichnis» und die Palette «Zeichensätze» aufrufen (Abb. 2.38). RagTime unterstützt neben TrueType- und PS Type1-Schriften jetzt auch OpenType-Schriften vollständig. Die Palette Zeichensätze macht es einfach, die gewünschte Schrift auf dem Rechner zu finden. Die Eingabe einiger Buchstaben beschränkt die Liste auf jene Zeichensätze, in deren Namen die eingegebene Buchstabenfolge vorkommt – nicht zwingend am Anfang des Namens.
Das Fenster «Zeichensatzverzeichnis» hat eine etwas andere Aufgabe. Hier kann überprüft werden, ob alle Schriften, die im Dokument verwendet wurden, auch auf dem Rechner vorhanden sind, bzw. die gleiche Laufweite und den gleichen Schnitt aufweisen.
Unter «Bearbeiten» finden sich die beiden Funktionen «AutoText» (AÄ/c) und «AutoText-Einstellungen…» (A“Ä/•c). Wenn Sie die Einstellungen öffnen, sehen Sie im AutoText-Fenster bereits eine Reihe von Zeichen und Textbausteinen, die Sie mit den entsprechenden Kürzeln nützen können (siehe Abb. 2.39). Interessanter sind aber die eigenen Textbausteine, die Sie zusammen mit einem selbstgewählten Kürzel eingeben können. Im Beispiel unseres YesNon-Medienaussandes bestehen zum einen der Absender des Direktors auf dem Brief (siehe Abb. 2.43) und die Fußzeile des Medientextes mit der Verantwortlichen für die Medienkontakte aus AutoText-Bausteinen (siehe Abb. 2.44).
Mit dem Minuszeichen
können Sie bestehende Eintragungen löschen, mit dem Pluszeichen
neue einfügen. Eine neue Eintragung erscheint immer genau über derjenigen, die in der Liste gerade ausgewählt ist. Leider lässt sich die Liste nicht sortieren bzw. in der Reihenfolge umgruppieren. Schreiben Sie Ihren Text ins untere Feld – Absatzzeichen können gleich mit geschrieben werden –, und geben Sie ein Kürzel ein. Klicken Sie auf die Taste «Anwenden», so wird der Text sofort dort in Ihren bestehenden Text eingefügt, wo die Einfügemarke stand. – Diese Kürzel haben keinen Einfluss auf die Tastaturkürzel, die sonst in Ihrem Rechner oder in RagTime vorhanden sind, da sie ja mit einem Präfix eingeleitet werden.
Für das Eingeben eines bereits in AutoText gespeicherten Textbausteines in Ihrem fortlaufenden Text drücken Sie als Präfix AÄ/c, dann erscheint ein Einfügezeichen (Abb. 2.40), anschließend geben Sie Ihr Kürzel für den Textbaustein ein. Damit wird der angeforderte Text eingefügt, aber bis zur Quittierung mit < oder T noch unterstrichen angezeigt (Abb. 2.40/2). Schreiben Sie einfach weiter in Ihrem normalen Text. Der eingefügte Text ist jetzt völlig unabhängig vom AutoText, das heißt, Sie können ihn bearbeiten und formatieren wie einen normal eingegebenen Text (siehe Abb. 2.40/3&4). Die Textbausteine – das können einzelne Zeichen, Abkürzungen, Wörter oder längere Textpassagen sein – lassen sich in AutoText jederzeit ändern. Änderungen in AutoText haben aber selbstverständlich keinen Einfluss auf bisher verwendete AutoText-Einfügungen in Ihren Dokumenten. AutoText kann überall verwendet werden, wo Sie mit Text arbeiten, egal in welcher Art von Komponente.
Beim Beispiel des Medienaussandes der YesNon-Sprachschule sind weitere Besonderheiten erwähnenswert. Die Unterschrift des Direktors wurde eingescannt und als mitfließende Bildkomponente im Text eingebaut. Verständlich, dass unser Direktor nicht zweihundert Briefe von Hand unterzeichnen will. Die Unterschrift wird auf einem guten PostScript-Drucker auf den ersten Blick wie das Original aussehen. Mehr über mitfließende Bildkomponenten ist in Kapitel 3.8 „Mitfließende Elemente“ zu finden.
Was in diesem Beispiel nicht auffällt, ist der Seitenumbruch, also der bewusste oder automatische Seitenwechsel des Textes vom Ende der einen zum Anfang der nächsten Seite. Wenn Container mit einer Pipeline verbundenen sind, läuft der Text sowieso automatisch weiter. In unserem Beispiel geht es mit den Texten am Seitenende zufällig genau auf.
Zum besseren Arbeiten und zum schnelleren Zugriff der einzelnen Paletten gibt es in RagTime 7 zwei Hilfen: die Formatierungs-Palette und das Paletten-Dock (nur Mac).Viele Befehle und Funktionen sind damit per Mausklick direkt erreichbar.
Will man aber einen Seitenwechsel an einer bestimmten Textstelle erzwingen, so gibt es drei Möglichkeiten: Sie geben so viele Absatzschaltungen ein, bis Sie Ihren Text automatisch auf der nächsten Seite haben, oder Sie verringern die Höhe des Containers von unten her bis zu der Zeile, die auf die nächste Seite springen soll. Das geht natürlich nicht bei Layouts, die von einem Stammlayout abhängen. Die dritte und eigentlich einzig richtige Möglichkeit ist die über den Absatzumbruch; im Textmodus unter «Format ➝ Absatzumbruch». Das gibt uns Gelegenheit, noch eine Erleichterung für das Arbeiten mit Text vorzustellen.
RagTime erlaubt unter verschiedenen Einblendmenüs das Abreißen von Untermenüs. Dadurch werden die Untermenüs zu Paletten, die auf der Arbeitsfläche behalten werden können, um permanent und schnell den Zugriff auf deren Funktionen zu haben. Das Abreißen erfolgt, wenn Sie mit gedrückter Maustaste den Zeiger über den Rand des Menübereiches hinausziehen (nach rechts, oben oder unten). In Abb. 2.45 sind diejenigen Abreißpaletten zusammengestellt, die unter dem Menü «Formate» verfügbar sind. Die einzelnen Paletten können Sie in der Größe verändern und in der Position verschieben.
Nur für Mac-Benutzer gibt es zusätzlich die Möglichkeit, den grünen Knopf im Palettenkopf anzuklicken und damit die Palette im «Paletten-Dock» zu versorgen. Diese kleine Palette „sammelt“ alle so angedockten Paletten unter deren Namen. Ein einfacher Klick auf den Namen lässt die Palette wieder aufspringen. Das ist sehr praktisch, weil die Arbeitsfläche dann nicht immer von vielen Paletten verdeckt ist, sondern nur von denjenigen, die Sie wirklich gerade häufig brauchen. Trotzdem bleiben diese Paletten immer rasch greifbar und müssen nicht wieder mühsam vom Untermenü abgerissen werden. Auch das Paletten-Dock kann auf der Arbeitsfläche beliebig platziert werden.
Unter Windows verhalten sich die Paletten anders: Ein Doppelklick auf die Kopfleiste dockt sie am Fensterrand an, jedoch in voller Größe. Ein erneuter Doppelklick macht sie wieder zur frei bewegbaren Palette. Paletten lassen sich auf eine minimale Größe reduzieren, wenig mehr als die Kopfleiste. Ein praktisches Palettendock wie beim Mac gibt es jedoch unter Windows nicht. In Abb. 2.46 ist die Objektkoordinatenpalette angedockt – jede Palette hat ihre fest zugeordnete Seite des Fensters, wo sie angedockt wird. Das Inventar – unter Windows auch eine Art Palette – und die Farbpalette sind frei schwimmend, letztere aber auf minimale Größe reduziert.
Im Detail ist sie bereits am Schluss von Kapitel 1 „Ordnung auf allen Ebenen“ erläutert. Auch die Formatierungspalette kann auf dem Mac im Paletten-Dock „versteckt“ werden. Die Formatierungspalette können Sie über das
Taschenmesser-Symbol
in der Werkzeugleiste aufrufen. Sie ist ein nützliches Arbeitsinstrument, da sie ein rasches Formatieren von Texten, Schriften, Farben und noch einige andere Einstellungen erlaubt, die Sie so schneller ansteuern können (siehe Abb. 2.47), weil sie in einer einzigen Palette vereint sind, statt dass sie mühsam zusammengesucht werden müssen. Aber wenn Sie Text mit Hilfe dieser Palette formatiert haben: Vergessen Sie nicht, aus dieser Formatierung eine Schrift- und/oder Absatzvorlage zu machen! Ein Nachteil der Formatierungspalette: Sind alle Einstellungsmöglichkeiten offen, deckt sie auf normalen Bildschirmen einen großen Teil der Arbeitsfläche ab. Dem können Sie abhelfen, indem Sie in die Titelfelder der einzelnen Sektoren klicken, womit die Palette entsprechend kleiner wird.
Neben den eigentlichen Formatierungen ist besonders der Sektor «Anzeige» dieser Palette interessant. Damit kann die Darstellungsgröße im aktuellen Fenster nach Belieben „stufenlos“ eingestellt werden. Es gibt direkte Befehle, um die ganze Seite im Fenster anzeigen zu lassen, die ganze Höhe, oder die ganze Breite. Das rasche Anzeigen und Verbergen von nicht druckenden Elementen ist genauso praktisch wie das Zeigen und Verbergen von Linealen, Rastern oder den grau angezeigten Blattgrenzen, die für den angeschlossenen Drucker nicht bedruckbar sind. Wenn Ihnen die Formatierungspalette für diesen Komfort zu viel Bildschirmplatz beansprucht, oder wenn Ihnen die Bewegung des Zeigers zur Formatierungspalette zu umständlich erscheint, gibt es immer noch die Möglichkeit, sich eigene Tastaturkürzel für die gewünschten Befehle zu erstellen.
Wir waren vom «Absatzumbruch» ausgegangen, um einige Arbeitserleichterungen zu zeigen, die hauptsächlich im Textmodus genutzt werden können. Für das Beispiel «Absatzumbruch» sind die Tastaturkürzel in RagTime ebenso praktisch wie für die im letzten Abschnitt erwähnten Anzeigebefehle. Tastaturkürzel gibt es für die unterschiedlichsten Befehle und Funktionen.
Das Interessante daran ist natürlich, dass Sie sich Ihre eigenen Tastaturkürzel anlegen können, besonders für diejenigen Befehle, die Sie am meisten brauchen, und die vielleicht sonst nur über Ausklappmenüs oder Infotafeln mühsam zu erreichen sind. In den einzelnen Auswahlmenüs von RagTime sind diejenigen Funktionen, die bereits ein Tastaturkürzel haben, angezeigt (siehe z. B. «Bearbeiten ➝ AutoText»). Die Möglichkeiten für eigene Kürzel sind nahezu endlos – und auch unüberblickbar. Öffnen Sie das entsprechende Fenster unter «Extras ➝ Tastaturkürzel…». Die Auflistung links mit den Aufklappschaltern (Dreiecke) bietet mehrere hundert Möglichkeiten an. Leider kennt RagTime nirgends eine übersichtliche Aufstellung dieser «Befehle», was das Auffinden bestimmter Funktionen/Befehle oft sehr mühsam macht. Insbesondere, da auch die Logik der Zuordnung nicht bei allen Funktionen einsichtig ist. Immerhin springt bei der Eingabe von Buchstaben RagTime in der Liste sofort zu dem Befehl, der diese Anfangsbuchstaben trägt. Aber erstens nur, wenn wirklich alle Untergruppen aufgeklappt sind und zweitens weiß man manchmal zwar, welchen Befehl man sucht, aber nicht, wie er genau benannt ist.
Wir haben für Sie alle voreingestellten Befehle imB „Tastaturkürzel“ in einer Liste zusammengestellt. Dazu geben wir Ihnen in einer zusätzlichen Liste Empfehlungen für eigene Tastaturkürzel.
Wenn Sie im Fenster «Befehle» den gesuchten Befehl gefunden haben, wählen Sie ihn aus, und drücken Sie unter «Tastenkürzel» die Taste «Neu». Jetzt werden Sie aufgefordert, ein Tastenkürzel einzugeben: Ist Ihr gewünschtes Kürzel nicht möglich, erscheint eine Warnmeldung. Ebenso, wenn Ihr Kürzel bereits vergeben ist. Dann haben Sie die Wahl, dieses bestehende Kürzel neu für Ihren Befehl zu verwenden; es gilt von da weg für den ursprünglichen Befehl nicht mehr. Davon raten wir ab. Denn wer weiß – plötzlich ist bei der nächsten Arbeit gerade dieser Befehl wichtig. Sobald Sie Ihr Kürzel gewählt und eingegeben haben, erscheint es auch in den Menüs von RagTime. Im Beispiel des erzwungenen Textumbruchs können Sie nun einen Absatz, der im nächsten Container stehen soll, mit dem von Ihnen definierten Kürzel (im Beispiel gemäß Abb. 2.48 1AA) beginnen und dann gleich weiterschreiben, ohne die Maus benützen zu müssen. Das Kürzel muss dabei nicht zwingend am Absatzbeginn verwendet werden. Steht die Einfügemarke irgendwo in einem Absatz, oder ist eine Textstelle im Absatz oder gar der ganze Absatz ausgewählt: Sie geben mit diesem Kürzel immer den Befehl, in einem neuen Container zu beginnen.
Jetzt wären die Texte für Brief und Medienmitteilung fertig. Aber möglicherweise sind uns noch ein paar Fehler unterlaufen. Dafür gibt es «Extras ➝ Rechtschreibung prüfen…». Das ist übrigens auch eine Funktion, der Sie bei häufigerem Gebrauch ein eigenes Tastaturkürzel zuweisen können.
Die Rechtschreibprüfung kann sich auf eine Auswahl, eine Komponente, ein Dokument oder alle offenen Dokumente beziehen. RagTime gibt bei unbekannten Wörtern Vorschläge, was gemeint sein könnte oder was orthografisch richtig ist. Auch sich wiederholende Wörter, die kurz hintereinander stehen, werden vermerkt (siehe Abb. 2.49 und Abb. 2.50). Die übrigen Funktionen der Rechtschreibprüfung erklären sich von selbst. Was die Rechtschreibprüfung nicht anzeigt, sind Trennungen und beispielsweise doppelte Leerzeichen. Das Fenster «Rechtschreibprüfung» ist natürlich verknüpft mit Ihren Wörterbüchern. Seit RagTime 6 werden sämtliche Wörterbücher mitgeliefert. Gut bei RagTime ist, dass Sie noch eigene Wörterbücher anlegen können: Für den momentanen Korrekturlauf ein «Sitzungswörterbuch», für Ihr Unternehmen ein eigenes (mit Schreibweisen Ihrer Firmenbezeichnung und Branchenbegriffe) und auch sonst für alle möglichen Projekte je ein eigenes. Diese Wörterbücher müssen nicht, wie die RagTime-Wörterbücher, im RagTime-Ordner liegen, sondern können irgendwo auf Ihrer Festplatte bzw. auf dem Server abgelegt sein.
Unter welchen Bedingungen Trennungen gesetzt werden sollen, können Sie vorgeben unter «Text ➝ Information ➝ Linguistik». In dieser Tafel (siehe Abb. 2.55) lassen sich die Trennbedingungen für das automatische Trennen einstellen, oder anderseits bestimmen, dass überhaupt keine Trennung vorkommen sollen. Mit RagTime können Sie jedoch noch viel spezifischer auf Trennungen Einfluss nehmen: In der Tafel «Schriftvorlage ➝ Linguistik» lässt sich für jede Schriftvorlage eine geerbte Vorlage mit einer anderen Linguistik anlegen. Das bedeutet, dass in einem einzigen Text mehrere Wörterbücher abgefragt werden können. Konkret: Sie weisen in Ihrem Text den englischen, französischen oder anderssprachigen Textteilen je eine eigene, geerbte Schriftvorlage mit der entsprechenden Linguistik zu (siehe Abb. 2.53 bis Abb. 2.56). Natürlich lässt sich auch hier für jede Schrift und Sprache einstellen, ob man Trennungen generell unterdrücken will (wenn «Automatische Silbentrennung» nicht gewählt ist). Unter «Format ➝ Sprache» können Sie einfach überprüfen, welche Sprache bzw. welches Wörterbuch gerade verwendet wird.
In den Wörterbüchern, in denen Sie Ihre neuen Wörter festhalten, sind auch Trennbefehle möglich. Geben Sie zwischen den zu trennenden Silben «=» ein (ohne die Anführungszeichen), so wird das Wort genau dort getrennt.
Hängen Sie stattdessen am Schluss eines Wortes ein «=» an, so wird dieses Wort grundsätzlich nicht getrennt (siehe Abb. 2.52). Die Silbentrennung ist am Schluss auch dann noch möglich, wenn Sie zuvor die automatische Trennung ausgeschaltet hatten: Unter «Extras ➝ Silben trennen…» kann die Komponente gewählt werden (siehe Abb. 2.57/Abb. 2.58), in der Trennungen vorgenommen (bzw. auch entfernt) werden sollen. Wollen Sie umgekehrt bei importierten Texten Trennungen beibehalten, so gilt die Einstellung im Fenster «Grundeinstellung ➝ Text».
Dass Sie mit «Bearbeiten ➝ Suchen und Ersetzen…», oder AF/•F, Wortteile, Wörter, Sätze, Satzteile usw. eingeben, und Sie durch einen anderen Text ersetzen können, liegt auf der Hand. Doppelte Absätze oder Leerzeichen eliminieren, Absätze, Tabulatoren entfernen oder hinzufügen, normale Bindestriche durch nicht umbrechende Bindestriche ersetzen usw. gehören damit zum Normal-Repertoire der Suchen-Ersetzen-Funktion.
Setzen Sie z. B. oben zwei Leerzeichen und unten ein Leerzeichen ein, so kann damit auf einen Schlag das ganze Dokument von doppelten Leerzeichen befreit werden (siehe Abb. 2.62). Besonders interessant ist das Suchen bzw. Ersetzen nach Stilvorgaben. Damit können Sie Textpassagen nach Schriftvorlagen absuchen und diese ggf. ersetzen (siehe das Beispiel mit dem roten und versal geschriebenen YESNON in Abb. 2.61). Beim Importieren von Texten wird ein Dokument oft mit unerwünschten Schriften, Schrift- und Absatzvorlagen „verseucht“. Da kann das Suchen/Ersetzen nach Schriften und Stilen eine große Hilfe sein.
Wir haben «Suchen und Ersetzen» hier im Zusammenhang mit unserem Medientext vorgestellt. Das ließe den Schluss zu, dass es sich um eine Funktion handelt, die nur in Textkomponenten benutzt werden kann. «Suchen und Ersetzen» bezieht in RagTime aber alle Komponenten mit ein, die Text oder Grafischen Text enthalten, also unabhängig davon, in welcher Komponente er sich befindet. Einzig Knöpfe werden nicht durchsucht.
Die Funktion kann in einem Durchgang auf einen ausgewählten Textbereich, eine ganze Komponente, das ganze Layout oder sogar auf alle offenen Dokumenten angewendet werden (siehe rote Markierung in Abb. 2.62). Aber Achtung: Wenn Sie vorhaben, die Taste «Alles ersetzen» zu betätigen, dann gilt es, zuvor noch einmal genau zu prüfen, was denn unter «In» genau ausgewählt ist. Steht dort beispielsweise «offenen Dokumenten», so sollten bei Ihnen die Alarmglocken läuten! Denn das Fatale ist: «Alles ersetzen» kann nicht rückgängig gemacht werden.
Die Warnmeldung (siehe Abb. 2.63) wird in der Eile leicht zu rasch quittiert – dann ist es passiert und unter Umständen die Arbeit etlicher Stunden zunichte gemacht.
Bei Medienberichten oder wenn Sie Artikel für Zeitschriften und Bücher abliefern sollen, ist meistens die gewünschte Textmenge vorgegeben. Dann heißt es zum Beispiel: «Gewünscht sind höchstens 2500 Zeichen.» In RagTime können Sie im Textmodus die Textmenge einfach überprüfen, indem Sie «Text ➝ Text-Statistik…» auswählen. Die Text-Statistik zählt alle Buchstaben, Wörter, Zeilen und Absätze, und zwar über den aktuellen Container. Im Beispiel des Medienaussandes sind Brieftext und Medientext auf zwei Seiten, aber in durch eine Pipeline verbundenen Containern enthalten, also in einer einzigen Textkomponente (siehe Abb. 2.27).
Wenn Sie nicht den ganzen Text ausgezählt haben wollen, wählen Sie zuerst die Textpassagen aus, über die Sie eine Text-Statistik wünschen (siehe Abb. 2.64). Leider ist die kleine Tafel mit der Text-Statistik nicht referierbar, das heißt, Sie können die Zählergebnisse nicht mit einer Formel automatisch in einen Text oder ein Rechenblatt einfließen lassen. Sie müssen die Angaben notieren.
Wer häufiger mit Medienberichten zu tun hat, kann sich eine gute Hilfe erstellen. Wir haben auf unserem YesNon-Medienbericht ein Rechenblatt angelegt (transparente Füllung für die Zellen und für den Container). Die Zeilenabstände im Text sind mit 16pt fest vorgegeben – also haben wir auch die Zeilenhöhen im Rechenblatt auf 16pt gesetzt. Danach haben wir in Zelle B1 die Formel «Zeile» eingegeben und die Zelle soweit nach unten kopiert, wie wir es ungefähr einmal brauchen werden (z. B. bis Zeile 1000). Diese Zahlen sind nun eine Zeilenangabe und erleichtern einem Lektor, Redaktor oder Layouter das Arbeiten mit dem Text. Das Rechenblatt lässt sich dann mit Pipelines auf die Folgeseiten weiter ziehen. Dieser „Zeilenzähler“ hat mit der genau ausgezählten Textmenge eigentlich nichts zu tun. Für diesen Zweck haben wir uns in Zelle A3 einen Ankreuzknopf angelegt, der es uns ermöglicht, die Zellen A1 und A2 zu zeigen oder zu verbergen (siehe Abb. 2.67).
In Zelle A1 steht dann die Formel, die entweder die Länge des Textes einsetzt, oder einfach nichts:
In Zelle A2 ist es nur das Wort «Zeichen», das wir entweder sichtbar oder unsichtbar haben wollen, je nachdem ob das Kästchen des Ankreuzknopfes in Zelle A3 ausgewählt ist oder nicht. Darum folgende Formel:
Alles schön und gut: Aber was ist denn mit «aussand3» in der ersten Formel gemeint? Die Funktion «Länge» gibt normalerweise in einem Rechenblatt die Anzahl Zeichen der referierten Zelle wieder. Hier bezieht sie sich auf einen Namen, den wir unserem Medientext gegeben haben. Wie Sie Namen für die Komponenten im Inventar vergeben können, so können Sie auch Namen für Textteile (Buchstaben, Wörter, Zeilen, Absätze usw.) vergeben: Den betreffenden Text auswählen und dem so markierten Text einen Namen zuweisen mit «Hilfsmittel ➝ Namen ➝ Neu» (siehe Abb. 2.66). Es erscheinen die ersten Zeichen des ausgewählten Textes links im Fenster und rechts werden die Buchstaben – von bis – angegeben, die in dieser Textkomponente zur Auswahl gehören. Jetzt können Sie links noch einen für Sie aussagekräftigen Namen einsetzen (im Beispiel «aussand3») und das Fenster wieder schließen. Damit wird Ihr Text „berechenbar“. Falls Sie die Angaben in den Zellen A1 und A2 nicht gedruckt haben möchten, können Sie für diese unter «Rechenblattinformation ➝ Zellinhalt ➝ Sichtbarkeit» die Option «Auf dem Bildschirm» wählen. – Es wird das Umgekehrte möglich, als was man normalerweise tut, nämlich nicht den Text aus Rechenblättern referieren, sondern Textteile mit ihrem Namen in Formeln zu verwenden. Wenn ein solcher Text – über einen zugewiesenen Namen – in einer Rechenblattzelle referiert wurde, dann kann er von dort sogar in anderen Dokumenten abgerufen werden – direkt ist das nicht möglich. Und was soll das Ganze? – Immer, wenn Sie im Rahmen der Textstelle, die mit dem Namen versehen wurde, etwas ändern, werden alle Referenzstellen automatisch angepasst. Es geschieht also das Gleiche, wie normalerweise mit berechnetem Text aus Rechenblattzellen. Folglich können auch die Schrifteinstellungen mit übertragen werden: Mit einem Rautenzeichen «#» vor dem Namen, z. B. «#absatz5», wenn der Name «absatz5» hieß, erhalten Sie die benannte und referierte Textstelle mit dem gleichen Zeichensatz, in gleicher Größe und Farbe.
Übernehmen Sie eine solche Rechenblatt-Komponente, wie wir sie gerade erzeugt haben, direkt ins Formular oder auf die Stammseite Ihrer Medientexte. Wenn Sie eine solche Zählhilfe nur gelegentlich brauchen, geben Sie dem Rechenblatt einen Namen (z. B. «Textzähler») und schieben Sie dieses in ein neues Dokument für archivierungswürdige Komponenten und Objekte. Die Referenz mit dem erstellten Namen müssen Sie bei einem anderen Textdokument natürlich nachführen und dort einen Namen für die „Zähltextpassage“ vergeben.
Vor dem Versand, vielleicht als letzte „Korrekturhilfe“ für das fast fertige Layout, schauen wir uns noch kurz die Funktion «Extras ➝ Objekte abgleichen» an. Diese Funktion arbeitet nach dem gleichen Prinzip wie «Suchen/Ersetzen». Es braucht also Merkmale, die zum ersten oder ursprünglichen Objekt gehören, damit es überhaupt von RagTime gefunden werden kann.
Das Abgleichen von Objekten gehört zu jenen Funktionen, die es schon lange in RagTime gibt. Für erfahrene Anwender also nichts Neues. Wie in anderen Funktionen von RagTime sind auch hier ein paar Besonderheiten versteckt, die man rasch vergisst, wenn man sie nicht täglich anwendet.
Und dann müssen jene Merkmale definiert sein, die Sie auf die anderen Objekte übertragen möchten. In vielen Fällen geht es aber auch einfach darum, ein neues Objekt zu erstellen und dieses mit «Abgleichen» auf alle anderen Seiten zu kopieren.
Bei unserem Beispiel des Medienaussandes ist der Fall eingetreten, dass die YesNon-Schule gerade mit einem Preis ausgezeichnet wurde. Auf dem Medientext soll dieses Emblem ebenfalls erscheinen. Wir haben also auf einer Seite – da spielt es keine Rolle, ob es die erste, die letzte oder irgendeine andere Seite ist, das Emblem in einer Bildkomponente als EPS-Datei importiert. Darunter haben wir mit Grafischem Text die Erklärung geschrieben. Bildkomponente und Grafischer Text sind in einem Zeichnungscontainer eingebunden (siehe Abb. 2.70 und Abb. 2.71). Der Vorteil bei einer Zeichnungskomponente ist klar: Jedes Objekt kann einzeln verschoben und verändert werden und es verschieben bzw. verändern sich die entsprechenden Objekte auf den anderen Seiten, ohne dass erneut ein «Objekte abgleichen» durchgeführt werden müsste. Dies aber nur, wenn beim ersten Objektabsgleich auch «Dieselbe Komponente installieren» gewählt war.
Das Prinzip des Abgleichs: Die Optionen unter «Objektauswahl» helfen RagTime, das Objekt, das abgeglichen werden soll, zu identifizieren. Die Optionen bei «Abgleich» und «Seitenauswahl» geben die Parameter, wie und wo das Objekt neu installiert bzw. verändert werden soll. Sobald das abzugleichende Objekt einen Namen hat, ist es identifizierbar. Ein kleine Tücke kann jedoch zu Problemen führen. Deshalb haben wir die gleiche Aufgabe wie im vorherigen Beispiel hier mit zwei getrennten Komponenten gelöst: Mit einer Bildkomponente und einem Grafischen Text – also ohne, dass beide in einem Zeichnungscontainer „eingepackt“ sind. Wenn beim Objekte abgleichen ein Objekt verschoben wurde und Sie möchten, dass die gleichen Objekte auf den anderen Seite ebenfalls an dieser Position auf der Seite stehen soll, dann darf unter «Objektauswahl» auf keinen Fall «Position» ausgewählt sein.
RagTime sucht dann nämlich die Objekte, die an der gleichen Position stehen wie das ausgewählte Objekt. Es wird nichts gefunden, was mit einer Meldung angezeigt wird (siehe Abb. 2.76). Wenn übrigens in unserem Beispiel bei den Warn- und Bestätigungsmeldungen immer nur von 2 Seiten die Rede ist, so deshalb, weil unser Dokument nur drei Seiten aufweist. Bei einem solchen Abgleich darf also einzig der Name ausgewählt sein, damit er funktioniert. Auf diese Weise ist in Abb. 2.73 und Abb. 2.74 die Größe und die Position des Emblems abgeglichen worden, ebenso die Position und die Schriftfarbe des Grafischen Textes.
Zum Schluss dieser kleinen Exkursion in die Funktionen des Objektabgleichens noch eine ganz „faule“ Bemerkung: Sie erinnern sich, dass wir das Beispieldokument ursprünglich auf einem Stammlayout aufgebaut hatten? Und da – das ist nur logisch – geht «Objekte abgleichen» sowieso nicht (siehe Abb. 2.75). Wir hätten also ganz einfach unseren Award-Hinweis auf dem Stammlayout anbringen können… Wir hatten also absichtlich, nur um das Prinzip des Objektabgleichs zu zeigen, das Dokument vom Stammlayout gelöst.
Objekte abgleichen lässt sich nicht widerrufen. Das ist neben vielen Vorteilen ein kleiner Nachteil: Man kriegt die so erzeugten Objekte nicht ganz einfach los, wenn sie einmal installiert sind. Natürlich lassen sich die neu erzeugten Objekte im Inventar löschen. Es bleibt dann überall im Layout ein leerer Rahmen zurück. Im Druck sieht man ihn nicht, und wenn Sie diese Rahmen im Layout nicht stören, können Sie sie ruhig stehen lassen.
Anders ist es mit Grafischem Text. Grafischer Text ist bekanntlich nicht im Inventar aufgeführt. Sie müssten diese Objekte also auf jeder Seite wieder einzeln mühsam löschen. Aber auch da gibt es einen Trick: Weisen Sie dem zu löschenden Text auf einer der Layoutseiten die transparente Farbe zu und führen Sie dann einen Abgleich durch. Die Grafischen-Text-Objekte sind zwar anschließend immer noch auf den Seiten, aber nicht mehr sichtbar. Anstelle von «Transparenz» können Sie auch den Text bis auf ein einziges Leerzeichen löschen und dann den Objektabgleich durchführen.
Adressen sind für jedes Unternehmen ein wichtiger Baustein für die reibungslose Administration und die erfolgreiche Akquisition. Besonders für Klein- und Mittelbetriebe sind Adressdateien zwar etwas vom Alltäglichsten, aber wenn die Daten schlecht aufbereitet sind auch etwas vom Zeitraubendsten. Wir gehen in unserem „Schulbeispiel“ zunächst davon aus, dass wir eine Adressdatei für unseren Medienaussand brauchen. Anhand eines Rechenblattes spielen wir verschiedene Situationen durch, die das Arbeiten mit Adressen erschweren – und bei denen RagTime aus der Patsche helfen kann.
Abb. 2.77 zeigt ein Rechenblatt, in welchem in verschiedenen Lagen die jeweiligen Adressgruppen enthalten sind. Lage 1 enthält alle internen Adressen der YesNon-Schulen, Lage 2 alle Schüler, Lage 3 alle Partnerfirmen und Lage 4 enthält die Public-Relations-Adressen mit den Journalisten und Medienschaffenden. Das Rechenblatt ist mit Kopfzeilen (Titelzeilen) und Randspalte (Titelspalte) gestaltet.
Kopfzeilen sind immer dann von Vorteil, wenn das Rechenblatt so viele Zeilen enthält, dass es im Layout auf mehrere Seiten verteilt wird. Dann erscheint nämlich die Kopfzeile automatisch auf jeder Seite. Die Kopfzeile enthält im Beispiel der YesNon-Adressliste auch das Logo in Zelle A1. Die Spalte1 hingegen ist als Kennzeichnungsspalte genutzt. Hier sind mit Farbfeldern und Textbezeichnungen auf jeder Lage sofort die Adressgruppen ersichtlich. Auch diese Form der Adressverwaltung hat ihre Vor- und ihre Nachteile. Der Vorteil ist, dass sämtliche Adressen in einem einzigen Rechenblatt untergebracht sind. Der Nachteil: In allen Lagen sind die Spaltenbreiten (und Zeilenhöhen) genau gleich breit bzw. hoch. Sie können zwar die Titelbezeichnungen ändern (vgl. Abb. 2.78 und Abb. 2.80) und auch die Zellen können individuell definiert werden (Komponenten, Vereinigen, Füllvorlagen, Schriftvorlagen usw.) aber der Raster des Rechenblattes verändert sich auf allen Lagen mit, wenn Sie Spaltenbreite oder Zeilenhöhe in einer Lage verändern.
Noch wesentlicher: Wenn Sie ganze Spalten bzw. Zeilen löschen, löscht es die betreffenden Spalten oder Zeilen auch in allen anderen Lagen. Das heißt, Sie können nur innerhalb von Zellen oder Zellbereichen Veränderungen vornehmen. Es bleibt also eine Frage der eigenen Organisation, ob Sie lieber für jede Zielgruppe ein eigenes Rechenblatt oder gar ein eigenes Dokument aufbauen möchten. Und schließlich können Sie auch sämtliche Adressen in einem einzigen Rechenblatt und einer einzigen Lage unterbringen. Dann werden Sie wohl in einer Spalte einen eigenen Code für jede Adressgruppe vergeben, um bei Serienbriefen darauf zugreifen zu können. Egal, wie Sie sich organisieren – das Thema Kopfzeilen oder Titelspalten ist unabhängig davon interessant.
In Abb. 2.78 sind die Spalte A und die Zeilen 1 und 2 besonders markiert. Sie sehen also sofort, ob und wie viele Zeilen oder Spalten als Titelzeile oder Titelspalte reserviert sind. Die Einstellung dazu ist einfach: Die Rechenblattinformation aufrufen und dort unter «Allgemein ➝ Titel am Anfang über Pipelines verbundener Container» rechts die gewünschte Zeilen- bzw. Spaltenzahl eingeben (siehe Abb. 2.79). Wenn Sie die betreffende Zahl ändern, wird die entsprechende Option automatisch aktiviert. Wird der Wert auf 1 belassen, müssen Sie das selbst machen. Dass wir uns hier in Lage 4 befinden (roter Kreis) hat keinen Einfluss. Die Eingabe der Titelzeilen und Titelspalten kann unabhängig von der angezeigten Lage vorgenommen werden, aber: Sie gilt immer für alle Lagen. In Abb. 2.80 ist die Lage 2 mit den Adressen der Schülerinnen und Schüler zu sehen. Titelzeilen und Titelspalte sind gleich wie in Lage 4 (Abb. 2.78).
Wie sich diese Titelzeilen und Titelspalten auswirken, wird in Abb. 2.81 deutlich. Auf einem doppelseitigen Layout wurde der Container der linken Seite mit dem der rechten Seite über eine horizontale Pipeline verbunden. Der Container der linken Seite wurde außerdem mit dem Container auf der linken folgenden Seite verbunden – und dieser wiederum mit derjenigen auf der daneben liegenden rechten Seite. Titelzeilen bzw. Titelspalten) werden auf allen Seiten wiederholt, während danach die Fortsetzung des Rechenblattes angezeigt wird.
Im Beispiel in Abb. 2.82 wurden auf der unteren Doppelseite ebenfalls die Container der linken und rechten Seite mit einer horizontalen Pipeline verbunden. Dann wurde aus dem Inventar das gleiche Rechenblatt mit den Adressen in den linken Container gezogen und anschließend die Lage 2 ausgewählt. So können Sie im Layout auch alle Lagen (Adressgruppen) untereinander anzeigen.
Wir gehen in unserer Übung nun weiter davon aus, dass uns der Geschäftsführer unserer Schule in München eine Datei mit interessanten Adressen von Medienschaffenden zugeschickt hat. Er hat uns eine Excel-Datei «Medienadr.xls.» zugemailt. Beim Importieren erscheint die gewohnte Meldung (Abb. 2.83). Doch dann zeigt sich ein eher ärgerliches Bild (Abb. 2.84), denn die Daten sind pro Zeile fortlaufend geschrieben. Wir aber brauchen Sie aufgetrennt. Adressen, die schlecht aufbereitet sind, gibt es immer wieder. Hier ist zum Glück noch eine Konstanz vorhanden, da die einzelnen Adressbestandteile nach dem Namen alle mit Komma und Leerzeichen getrennt sind. Für die spaltenweise Einordnung in unsere Adressdatei brauchen wir zwischen den einzelnen Adressbestandteilen einen Tabulator als Trenner.
Der einfachste Weg: Öffnen Sie neben der Adressliste (Abb. 2.84) ein neues Layout und wählen Sie den Befehl «Fenster ➝ Fenster nebeneinander anordnen».
Wählen Sie alle Adresseinträge im Rechenblatt aus, Kopieren Sie die Einträge und setzen Sie diese im Layout in den Textrahmen ein. Nun können Sie mit «Suchen und Ersetzen» das Komma mit dem anschließenden Leerzeichen suchen und durch ein Tabulatorzeichen ersetzen; und zwar mit «Alle ersetzen» (siehe Abb. 2.85). Aber achten Sie darauf, dass in der Komponenten-Auswahl (länglich eingekreist) nicht das Rechenblatt, sondern das neu angelegte Layout oder die Textkomponente ausgewählt ist.
Die so veränderten Daten bringen Sie wieder zurück in die Adressdatei: «Alles Auswählen», (im Textrahmen), «Kopieren» und im Rechenblatt in der ersten Zelle (A1) wieder «Einsetzen». Das Rechenblatt mit den so modifizierten Einträgen sollte dann wie Abb. 2.86 aussehen. Gewisse Einträge – eingekreist – müssen dann von Hand nachbearbeitet werden, indem die Zellen an die richtige Stelle kopiert bzw. gezogen oder durch «Rechenblatt ➝ Zellen Einfügen» an die richtige Stelle verschoben werden.
Wer sehr viele Adressen bearbeiten muss, der sucht nach einfacheren, automatisierten Abläufen, die möglichst wenig manuelle Nachbesserung benötigen. Am Beispiel der re-importierten Adressen, die ja immer noch nicht zu unserer Adressdatei passen, zeigen wir zwei solche Lösungen.
In Spalte A stehen Vornamen, Namen und Präfixe (also Dr. oder Prof. oder beides) alle in einer einzigen Zelle. Wir wollen aber, wie in Abb. 2.2 und Abb. 2.12 ersichtlich, diese drei Teile in je einer eigenen Spalte haben. Machen Sie sich am besten vor solchen Aufgaben oder speziellen Formeleingaben eine Sicherungskopie der Datei unter einem anderen Namen, sodass Sie notfalls wieder auf die Ursprungsdaten zurückgreifen können. Wir arbeiten nun mit der neu gesicherten Datei unter dem Namen «Adressen_Umsetzer» weiter. Die erste Lösung, die wir aufzeigen, sieht ein bisschen umständlich aus, soll aber die Funktion der Formeln klarer machen. Die zweite ist die elegantere Lösung, mit vertikalem Suchlauf. Sie wirkt wie eine geheimnisvolle Zauberei (auf den ersten Blick). Wer mit den Formelfunktionen «VSuchlauf» oder «HSuchlauf» («V» für «vertikal», «H» für «horizontal») besser vertraut ist, wird deren Anwendungsvielfalt bald einmal durchschauen.
Die Funktionen «Teil» und «Länge» beziehen sich, ebenso wie «Rechts» und «Links», auf Texte. Damit lassen sich Wortteile oder einzelne Zeichen daraus extrahieren und für andere Zellinhalte als „Textbausteine“ nutzen. In unserem Falle verwenden wir sie in Formeln, um Präfix, Vornamen und Nachnamen automatisch zu trennen.
Zuerst fügen Sie im neu erstellten Rechenblatt «Adressen_Umsetzer» rechts neben der Spalte A sechs weitere Spalten ein «Rechenblatt ➝ Spalten einfügen». Als erster Schritt der Formeleingabe suchen wir in den Zellen der Spalte A nach dem Präfix, also «Dr.»/«Prof.»/«Prof. Dr.» usw. Da wir hier nach klaren Textteilen suchen, ist es wichtig, alle Schreibweisen, die in diesem Zusammenhang vorkommen zu kennen (zum Beispiel auch ein Zusatz wie «Dr. h.c.»).
In „Formeln Folge 1: Und es funktioniert“ haben Sie einen Überblick über die Funktionen und Formeln erhalten. Hier gehen wir weiter mit der praktischen Anwendung. Mit der ersten Formel, die Sie in Zelle F1 setzen, erreichen Sie, dass in dieser Zelle das Präfix zu stehen kommt, sofern in Zelle A1 ein solches vorhanden ist. Ansonsten bleibt die Zelle leer. Das bedingt natürlich eine Formel mit einer «Wenn»-Funktion. Da verschiedene Texte in Frage kommen, muss RagTime alle auftretenden Versionen finden. Lösen lässt sich das, indem mehrere Wenn-Funktionen aneinander gereiht werden. Unsere Formel müssen wir deshalb wie Formel 2.5 eingeben.
RagTime setzt nun in Zelle F1 immer genau das Präfix ein, das in Zelle A1 gefunden wird. Falls keines gefunden wird, bleibt die Zelle F1 leer. «Wenn»-Funktionen können also beliebig ineinander verschachtelt werden. Getrennt durch ein «;» ergibt dies jedes Mal eine neue Bedingung, bis dann am Ende, nach dem letzten «;» die „Dann-Bedingung“ folgt. Diese heißt hier «' '», was dazu führt, dass RagTime den Inhalt der Zelle unberührt lässt.
«Finden» ist ebenfalls eine Funktion, die mit einem Semikolon getrennt, mindestens zwei Argumente benötigt: Den Text, den es zu suchen gilt und die Zelle oder der Bereich, in welchem gesucht werden soll. Der Suchtext ist, wie jeder Text in einer Formel, in einfachen Anführungszeichen zu setzen, zum Beispiel 'Prof. Dr.'.
Unsere Formel 2.5, die Sie in Zelle F1 eingegeben haben, kopieren Sie nun in der Spalte F so weit nach unten wie in der gleichen Zeile ein Eintrag in Spalte A vorhanden ist. Im nächsten Schritt beziehen wir uns auf die so erhaltenen Einträge in den Zellen der Spalte F. In Zelle B1 geben Sie Formel 2.6 ein. Dahinter steht die Logik: Wenn die Zelle F1 leer ist, soll RagTime den Inhalt der Zelle A1 einfach übernehmen.
Wenn nicht, soll es die Länge des Zellinhaltes F1 errechnen (das ist die Anzahl Zeichen des extrahierten Präfix) und anschließend diese Anzahl Zeichen zu Beginn des Textes in Zelle A1 ignorieren. Mit «+2» wird das Leerzeichen zwischen Präfix und Namen übersprungen. Genau betrachtet, berechnet RagTime so die Position des ersten Zeichens nach dem Leerzeichen, also des ersten Buchstaben des Vornamens. Die Funktion «Teil» bezieht sich immer auf Texte in einer Zelle. Nach der Klammer wird die Zellreferenz eingegeben, danach (getrennt durch ein Semikolon) die Position des ersten Zeichens und (ebenfalls getrennt durch ein Semikolon) die Anzahl Zeichen, die dem Text entnommen werden sollen.
Da wir in unserem Beispiel davon ausgehen können, dass es keine Namenseinträge mit mehr als 1000 Zeichen gibt, wählen wir der Einfachheit halber 1000. Steht übrigens in einer Zelle, auf die mit einer Textfunktion wie «Teil» Bezug genommen wird, eine Zahl, so wird diese Zahl ebenfalls wie Text behandelt. Es wird also ein Teil dieser Zahl herausgelöst und übernommen. Das scheint auf den ersten Blick verlockend für bestimmte Anwendungen. Doch Achtung: Falls sich die Zahl um eine oder mehrere Stellen verändert (weil ihr z. B. eine Additionsformel zugrunde liegt), kann es zu ungewollten Teil-Texten kommen. Nach dem Kopieren der Formel von Zelle B1 in die darunter liegenden Zellen der Spalte B erhalten Sie dort überall den Vornamen und Nachnamen ohne das allfällig vorhandene Präfix. Jetzt wollen Sie aber auch noch die Vor- und Nachnamen trennen. Da wir bei den Vornamen unterschiedliche Versionen haben – mit oder ohne Zweitname bzw. dessen Initialen –, machen wir einen Zwischenschritt, um die Formeln nicht zu komplex werden zu lassen. In Zelle C1 geben Sie darum folgende Formel ein:
RagTime soll einen «Teil» aus der Zelle B1 holen. Dieser Teil ist derjenige, der nach dem ersten Leerzeichen beginnt und 1000 Zeichen haben könnte. Übrig bleibt der Nachname, bzw. dort wo eine Initiale steht, auch noch diese. Das ließe sich mit einer «Wenn»-Funktion ebenfalls in die obige Formel einbauen. Wir haben es – um das Prinzip der Formeln aufzuzeigen – plumper gemacht, indem wir das gleiche Formelprinzip ein weiteres Mal in Spalte D verwenden. Die eingegebene Formel in D1 müsste logischerweise gleich heißen wie in C1, jedoch mit dem Bezug auf die Zelle C1.
Allerdings ist hier in Zeile 10 noch diese «Gudrun von Orvietzky» (siehe Abb. 2.88). Um dieses «von» richtig beim Nachnamen zu behalten, braucht es eine weitere «Wenn-Funktion». Geben Sie also in Zelle D1 Formel 2.8 ein.
Damit wird bei allen Namen mit einem «von» die Zelle aus der Spalte C unverändert in Spalte D geholt (4 Zeichen vom ersten Buchstaben ab links gezählt muss dem Wörtchen «von » inklusive Leerzeichen entsprechen). Wo dies nicht der Fall ist, wird aus den C-Zellen der gesamte Teil nach dem Leerzeichen übernommen. Wie bei allen anderen Schritten in RagTime wissen Sie aus Erfahrung: Jedes Mal nach einigen Minuten Arbeit oder nach einer wichtigen Eingabe drücken Sie AS/•S, sichern also das offene Dokument.
Jetzt geht es nur noch darum, den bzw. die Vornamen herauszufiltern. Das geschieht mit folgender Überlegung: Die Einträge in Spalte A abzüglich der Nachnamen in Spalte D und des Präfix in Spalte F ergeben den Vornamen. Tragen Sie also in Zelle E1 die Formel 2.9 ein.
Wenn die Zelle F1 leer ist, dann extrahiert RagTime aus Zelle A1 die Zeichenanzahl von A1 abzüglich die Zeichenanzahl von D1 (beginnend beim ersten Zeichen in Zelle A1). Wenn die Zelle in Spalte F einen Eintrag hat, dann ermittelt RagTime in Zelle A1 zuerst die richtige Position, das erste Zeichen, um mit der Übernahme der berechneten Zeichenanzahl zu beginnen. Das ergibt sich aus der Anzahl Zeichen in Zelle F1. Beim Beispiel von «Dr. Gudrun von Orvietzky» ist es das fünfte Zeichen. Kopieren Sie nun wieder die Zelle E1 in alle anderen Zellen der Spalte E, soweit in Spalte A ein Eintrag steht. In Zelle E11 erhalten Sie eine Fehlermeldung durch «BEREICH!».
RagTime kann eine Berechnung nicht durchführen. In diesem Falle ist es sofort ersichtlich, warum: In Zelle A1 steht kein Vorname. Sie werden sich wohl diesen offenen Vornamen durch die YesNon-Schule in München noch beschaffen lassen müssen…
Was nun noch zu tun ist: Kopieren Sie alle Zellen, die einen Eintrag haben ab D1 bis zur untersten Zelle F und setzen Sie diesen kopierten Bereich wieder mit «Bearbeiten ➝ Teile einsetzen» in die Gesamtliste der Medienadressen ein (siehe Abb. 2.91). Das Häkchen für «Formeln einsetzen» darf nicht ausgewählt sein.
Nun sind noch die Spalten des Rechenblattes so zu verschieben, dass die Einträge der neuen Adressen mit der Reihenfolge im Dokument der bisherigen Medienadressen übereinstimmt (siehe Abb. 2.92). Jetzt können Sie die Einträge sortieren, nach Nachname oder anderen Kriterien.
Das gleiche Endresultat lässt sich bedeutend eleganter mit der Funktion «VSuchlauf» lösen. In „Formeln Folge 3: In vollem Lauf“, wird darauf ausführlich eingegangen. Nahezu alle Formelanwendungen, bei denen es darum geht, Formeln in der Spalte nach unten zu kopieren, können mit «VSuchlauf» gelöst werden. Wer viel mit solchen Problemstellungen arbeitet, wird sich gerne die Zeit nehmen, um die zunächst etwas komplex wirkenden Formelkonstruktionen im Kapitel „Formeln Folge 3: In vollem Lauf“ kennen zu lernen.
Neben der Aufsplittung von Adressen, wie es in den vorangegangenen Abschnitten beschrieben wurde, gibt es für Korrekturen von schlecht formatierten Adressdateien die unterschiedlichsten Formeln und Tricks, um die Daten mit RagTime 7 brauchbar aufzubereiten. Natürlich lohnt sich eine aufwändige Formelkonstruktion nur, wenn es sich um viele Adressen handelt, die man nicht mehr von Hand korrigieren kann bzw. will. Aber warum sich nicht einen „Korrektursatz“ an Formeln bereitstellen, um je nach Bedarf diese Formeln abzurufen und anzuwenden. Das kann sehr bequem auch in Form von Knöpfen geschehen. Hier wollen wir nur anhand einzelner Formeln das jeweilige Prinzip erklären.
Im Beispiel (Abb. 2.94 bis Abb. 2.97) sind alle Adressen in Großbuchstaben geschrieben, zum Teil fehlen Leerzeichen zwischen der Straße und der Hausnummer. Für die Großschreibung haben Sie zwei Möglichkeiten. Die erste: Wählen Sie alle Zellen aus und erstellen Sie unter «Fenster ➝ Hilfsmittel ➝ Schriftvorlagen» eine geerbte neue Vorlage zu Ihrer benutzten Schrift (meist Standardschrift). Hier ändern Sie lediglich auf «Wortanfänge groß» (Abb. 2.93) und weisen den entsprechenden Zellen im Dokument diese Schriftvorlage zu. Alle Anfangsbuchstaben eines jeden Wortes werden jetzt groß, alle anderen Zeichen klein geschrieben. Beachten Sie, dass der Zellinhalt unverändert bleibt! Auf dem Bildschirm und im Druck ist aber alles wie gewünscht. Der gleiche Effekt wird auch mit einer Formel erreicht (siehe Abb. 2.94).
Die Formel 2.10 muss natürlich im Rechenblatt nach unten kopiert werden, von der ersten benutzten Zelle bis zur letzten Zeile, die einen Eintrag aufweist. In Abb. 2.95 haben wir diese Formel kombiniert, um gleichzeitig das Leerzeichen zwischen Straße und Hausnummer richtig hinzukriegen. Doch die Formel 2.11 führt zu Fehlermeldungen.
Die Funktion von «Groß2» ist immer noch klar. Dann soll aber in der Zelle C2 (oder den anderen Zellen in Spalte C) der Punkt «.» gefunden werden (die «1» steht für 1 Zeichen) und durch einen Punkt mit einem zusätzlichen Leerzeichen ersetzt werden («. »). Überall, wo kein Punkt in Spalte C steht, wird natürlich nichts gefunden, was zur Fehlermeldung «BEREICH!» führt. Also braucht es eine Wenn-Dann-Bedingung. Aber auch die Formel 2.12 ist noch nicht ganz komplett. RagTime sucht in den Zellen der Spalte C einen Punkt mit einem Leerzeichen. Findet er diese Zeichenkombination, passiert nichts, ansonsten ersetzt er den gefundenen Punkt mit einem zusätzlichen Leerzeichen (immer noch mit Groß-Klein-Schreibweise. Auch hier gibt es noch eine Reihe von Ausnahmen. Folglich wird die Formel noch komplexer:
Nun werden alle Zellen, die korrekterweise einen Punkt mit einem Leerzeichen aufweisen übernommen (mit Groß-Klein-Schreibweise), genauso die Zellen, in denen kein Punkt gefunden wird. In allen anderen Zellen wird der Punkt gesucht und durch einen Punkt mit einem Leerzeichen ersetzt (siehe Abb. 2.97). Wer sich nun aber diese Abb. 2.97 ganz genau angeschaut hat, wird feststellen, dass es noch immer Einträge in der korrigierten Spalte E gibt, die nicht sauber sind. In der Groß-Klein-Schreibung von französischen Straßennamen oder in der korrekten Schreibweise von «Karl-Neuhaus-Straße» usw. Unser kleiner Abschnitt über Korrekturmöglichkeiten mit Formeln sollte Sie lediglich dazu anregen, sich mit den Formeln und Formelkombinationen näher zu beschäftigen. Kurz: Falls Sie viel mit Adresskorrekturen zu tun haben, können Formelfunktionen wie «Groß2», «Klein», «Ersetzen», «Finden», «Links», «Rechts», «Teil» in Verbindung mit «Wenn»-Kombinationen sehr viel Arbeit ersparen.
Wir gehen davon aus, dass unsere Adressliste in Ordnung ist und ebenso unser Brief. Wie ein normaler Serienbrief funktioniert – mit Drag and Drop bzw. Ziehen und Ablegen vom Adress-Rechenblatt in die Briefadresse – ist im «RagTime-6-Trainingshandbuch» ab Seite 143 schon beschrieben. Wir wollen uns deshalb im YesNon-Schulbeispiel den Situationen zuwenden, bei denen es um Abweichungen oder eine genau definierte Auswahl aus der Adressdatei handelt. Damit in Serienbriefadressen Texte aus verschiedenen Spalten mit einem Leerzeichen zusammengehängt werden können, hat sich bei der Formeleingabe der Operator «&&» bewährt. Er hat den Vorteil, dass keine doppelten Leerzeichen entstehen, wenn im Rechenblatt einmal eine Zelle leer sein sollte. Anders ist es, wenn ein Adresselement fehlt, das normalerweise auf einer eigenen Zeile steht. Denn es ist unschön, wenn mitten in der Adresse Zeilen leer bleiben (siehe Abb. 2.100). Da braucht es eine ähnliche Funktion wie das «&&» – und diese heißt «Verbinden». In der Abb. 2.98 ist übrigens das Rechenblatt durch Unterteilung so zusammengeschoben, dass nur diejenigen Spalten ersichtlich sind, die für die Serienbriefadresse im Medienaussand benötigt werden. Ein Rechenblatt können Sie mehr als acht Mal horizontal und vertikal auf diese Art unterteilen, wenn es fürs effizientere Arbeiten Sinn macht.
Die Funktion «Verbinden» lässt verschiedene Kombinationen zu. Allerdings werden die Formeln dann etwas komplexer, unter Umständen sogar sehr verschachtelt. In Kombination mit der Funktion «Zeichen» können Sie bestimmen, dass zwischen den verbundenen Textelementen immer ein gleiches Zeichen eingeschoben wird – in unserem Fall «Zeichen(13)», was einem Absatzende (</T) entspricht. Falls die Absatzvorlage «Standardabsatz» mit mehrzeiligem Abstand am Schluss definiert ist,
könnte auch «Zeichen(11)» (=Zeilenwechsel) nützlich sein. Mit «Zeichen» können Unicode-Zeichen (oder auch andere Codierungen) gewählt werden.
In diesen Abschnitten widmen wir uns dem Thema Serienbrief. Die einfache Form mit Ziehen und Ablegen ist im RagTime-Trainingshandbuch beschrieben. Wir befassen uns hier mit besonderen Anwendungen. Die teilweise komplex erscheinenden Formeln sind „archivierbar“ und bringen immer wieder Nutzen.
Die Funktion wird vor allem dann gebraucht, wenn in einer Formel Textzeichen benötigt werden, die bei Eingabe „im Klartext“ zum Abschluss der Formeleingabe führen würden. Auf der Palette «Symbole» sind die Unicodezeichen und deren Nummern ablesbar. Für die Serienbriefformel stellen Sie die Verbinden-Funktion voran und trennen die Teile mit einem Semikolon. Den Serienbriefadressen in Abb. 2.99 und Abb. 2.100 könnte also die Formel 2.15 zugrunde liegen. «Verbinden(Zeichen(13))» fügt also automatisch nach jeder Adresszeile ein Absatzende ein. Falls in der gewählten Spalte kein Eintrag in der entsprechenden Zelle ist, wird die Spalte übersprungen. Es entsteht also keine überflüssige Leerzeile, ganz egal, ob es um eine fehlende Straße oder um eine fehlende Berufsbezeichnung geht.
Die relativ lange Formel entsteht, weil die Referenzadresse zum Rechenblatt bereits sehr lange ist: Zunächst der Dokumentname, dann der Name des Rechenblattes, schließlich in eckigen Klammern die Lage des Rechenblattes und dann die Zellen. Da unser Rechenblatt eine Kopfzeile hat, beginnen die Serienbriefe selbstverständlich erst ab Zeile 3. Die Endzahl 200 müsste der Anzahl der Adressen entsprechen. Und nicht vergessen: Die schließende letzte Klammer!
Noch etwas Grundsätzliches: Die Serienbrief-Funktion kann zwar als solche überall in Formeln verwendet werden. Aber nur in Textkomponenten, Rechenblattzellen mit Inhaltsart «Mehrzeiler» und in Grafischen Texten können damit mehrzeilige Adressen berechnet werden. Die vereinigten Zellen (A6:B13) im YesNon-Briefformular wurden mit der Inhaltsart «Text» versehen. Ebenso gut hätte also für die vereinigten Zellen die Inhaltsart «Mehrzeiler» gewählt werden können. – Empfehlenswert ist es, wenn es sich um Textcontainer außerhalb eines Rechenblattes handelt, diese nicht mit dem übrigen Brieftext im gleichen Container unterzubringen, sondern dafür einen eigenen Rahmen aufzuziehen. Auch Pipelines von und zum Adressfeldrahmen sind wenig sinnvoll.
Die YesNon-Adressdatei ist stark aufgesplittet. Das heißt, wir haben das Präfix extra, das Land, die Postleitzahl, den Ort usw.
Wir können aber sicher nicht jeden Eintrag in den Spalten auf einer eigenen Zeile in der Adresse wiedergeben. Darum – und die genauen Betrachter haben das schon gemerkt – berechnet die Formel 2.15 aus den YesNon-Dateien keine korrekten Adressen. Die Adresselemente, die zusammen auf eine Zeile gehören, sind deshalb mit einem «&&» verbunden. Das hindert Sie aber nicht, die gesamte Formel dennoch mit «Verbinden(Zeichen(13)» einzuleiten, um den Vorteile der zuvor beschriebenen Leerzeilen-Unterdrückung zu nützen. Die korrekte Formel muss also wie Formel 2.16 aussehen. Nur haben wir hier aus Platzgründen den Namen der Referenzdatei gekürzt. Wenn Sie das YesNon-Beispiel 1:1 nachvollziehen möchten, müssen Sie dort die Rechenblattnamen wie in Formel 2.15 einsetzen.
Es liegt auf der Hand, dass wir in einem Serienbrief auch die Anrede automatisieren wollen. In der YesNon-Adressliste haben wir zwei Spalten, die dafür wichtig sind. Eigentlich sind es drei, denn für die YesNon-MitarbeiterInnen war es für die Übersichtlichkeit wichtig, die Geschlechtsbezeichnung nicht in einer, sondern in zwei Spalten zu haben. Normalerweise genügt eine Spalte in der entweder «w» oder «m» steht. Genauso wie es in Spalte S mit «Du/Sie» respektive «s» und «d» ist. Für die Formelaufbereitung spielt das keine große Rolle. Wir haben folglich vier verschiedene Anredemöglichkeiten: Das weibliche Du, das männliche Du, das weibliche Sie und das männliche Sie – wobei wir auch noch das Präfix mit einbeziehen möchten – wie in Abb. 2.102 und Abb. 2.103 ersichtlich. Dieser doch recht kleine Wunsch führt zu einer relativ großen, bzw. komplexen Formel (Formel 2.17). Es benötigt mehrere, ineinander verschachtelte «Wenn»-Abfragen. Als erstes ist Spalte S abzufragen. Nur, wenn dort ein «d» eingetragen ist, wird die Spalte C mit dem Vornamen alleine abgerufen, zusammen mit einem «Liebe» oder einem «Lieber». Das wiederum ist abhängig von Spalte E, ob dort ein «m» steht oder die Zelle leer ist. Erst, wenn all diese Abfragen kein Resultat ergeben, geht die Wenn-Abfrage weiter – nach den vier Klammern «))));» – Dann findet die Wenn-Abfrage über Spalte E, mit «m» noch einmal statt, um «Sehr geehrte Frau» oder «Sehr geehrter Herr» zusammen mit Spalte C, D und B zu verbinden. (Auch bei dieser Formel haben wir die Rechenblattadresse gekürzt und anstelle «YesNon_Adressen_0810.rtd» nur «YesNon.rtd» verwendet.)
Wenn die Serienbrief-Befehle einmal gestartet sind, läuft die ganze Sache automatisch ab. Empfohlen wird daher, einen Probedruck von wenigen Exemplaren zu machen, um zu sehen, ob alles korrekt ist. Auch wären die Briefe über eine Druckvorschau einsehbar. Aber das ist doch ein eher mühsamer Umweg, um die Darstellung für jeden vorkommenden Fall oder die ausgewählten Adressen zu überprüfen. Beide Prüfmethoden sind nicht befriedigend. Deshalb zeigen wir hier einen Weg auf, der es ermöglicht, die Briefe, bzw. die Adressen, nach Wunsch einzusehen und vor dem Drucken zu prüfen. Dazu wird die Funktion «DruckNr» benützt. Sie kann einerseits dazu dienen, die Kopfzeile beim Ausdrucken zu unterdrücken, anderseits ermöglicht ihre Verwendung das Blättern in Serienbriefen, und schließlich kann sie auch für die Erzeugung von Etiketten mit Serienadressen nützlich sein, wie wir etwas später noch zeigen werden.
Für das Blättern in Serienbriefen brauchen wir einerseits eine Steuerzentrale und andererseits einen anderen Formelaufbau in den Adresszeilen. Sehen wir uns zunächst die Steuerung an. Dazu legen wir ein Rechenblatt «Steuerung» an, in dessen Zelle D4 jeweils die Zeilennummer der aktuellen Adresse stehen soll. In Zelle D1 wird die Anzahl der Briefe gezeigt. Mit Knöpfen in Zelle A3 und B3 kann geblättert werden (wenn der Auswahlknopf «Blättern» aktiv ist). Wenn der Auswahlknopf «Drucken» aktiv ist, kann der angezeigte Brief gedruckt werden. Unsere fertige Steuerzentrale könnte wie Abb. 2.104 und Abb. 2.105 aussehen.
Gehen wir Schritt für Schritt vor, um die Steuerzentrale aufzubauen. In den beiden Abbildungen (Abb. 2.106 und Abb. 2.107) haben wir die wichtigsten Elemente zusammengestellt, um die Funktionen besser überblicken zu können. Widmen wir uns zuerst dem Rechenblatt «Steuerung» und lassen wir dabei die Knöpfe «Funktion» und «Druck» beiseite, sie werden später genauer erläutert. Da sich die Formeln in den Abbildungen der Formelpaletten gut lesen lassen, verzichten wir auf eine Wiederholung im Text.
Die Formel in Zelle D1 bezieht sich auf den Knopf «Funktion», dieser Radioknopf mit zwei Auswahlmöglichkeiten entscheidet über «Blättern» oder «Drucken». Wenn «Drucken» ausgewählt ist (wie in der Abbildung), dann soll in dieser Zelle eine 0 stehen. Nur, wenn hier «0» steht, ist ein Drucken überhaupt erst möglich – mehr dazu später bei der Erläuterung zum Knopf «Drucken».
Die Formel in Zelle A3 ist insofern interessant, als durch die Formel ein Knopf «rückwärts» installiert wird. Dieser Knopf soll aber nur erscheinen, wenn im Radioknopf «Funktion» das «Blättern» («=1») ausgewählt ist; andernfalls ist diese Zelle leer. Der per Formel erzeugte Knopf vermindert den in Zelle D1 vorhandenen Wert um 1, jedoch nur solange der Wert in Zelle D1 größer als 1 ist. Sonst bleibt der Wert unverändert.
Die Formel in Zelle B3 ist schon etwas komplexer. Auch hier wird zunächst – genau wie in der Zelle A3 – ein Knopf erzeugt («vorwärts»). Wenn bestimmte Bedingungen erfüllt, bzw. nicht erfüllt sind, wird aber der Knopf «Drucken» aus Zelle F1 in Zelle B3 gesetzt. Ist die Zelle D1 leer, so wird die erste Adresse angezeigt. Mit «vorwärts», soll deshalb direkt zur zweiten Adresse geblättert werden. Sonst wird der Wert in der Zelle um 1 erhöht – dies aber nur solange, als in Spalte B in der Adresstabelle ein Eintrag vorhanden ist.
Die Formel in Zelle D4 gibt den Index aus der Adresstabelle wieder. Im Modus «Blättern» wird der Wert aus Zelle D1 übernommen. Im Modus «Drucken» ist es dagegen die Drucknummer. Beide Werte mit «+2», damit die zwei Kopfzeilen in der Adresstabelle übersprungen werden.
Im Gegensatz zur Funktion «Serienbrief», bei der RagTime merkt, wenn alle Adressen bearbeitet sind, kann die Funktion «DruckNr» das Ende des Druckvorgangs nicht alleine erkennen. Hier muss mit der Funktion «Druckstopp» angegeben werden, wo der Druckvorgang abgebrochen werden soll. Gemäß Formel in Zelle D5 ist der Druckvorgang zu beenden, wenn in der Spalte B der Adresstabelle eine leere Zelle auftaucht.
Damit nun in den Zellen D1, D4 und D5 nicht durch eine manuelle Eingabe die Formel gelöscht wird, muss die Zelle respektive der Zellinhalt geschützt werden. Wählen Sie am einfachsten die Zellen D1:D5 aus und setzen Sie unter «Rechenblattinformation ➝ Zellinhalt» das Häkchen unter «Formel bei Werteingabe erhalten» (siehe Abb. 2.108).
Es fehlen, damit unser Steuerpult bedienbar wird, noch die Befehle bzw. Funktionen in den Knöpfen «Druck» und «Funktion». In Zelle F1 legen wir den Knopf «Drucken» an. Wir haben diesen Knopf hier speziell gestaltet, es tut aber auch der ganz gewöhnliche Knopf, den RagTime generiert. Das Gestalten von Knöpfen ist im Kapitel „Formeln Folge 2: Vielfalt der Knöpfe“ ausführlich beschrieben. Auf jeden Fall braucht unser Knopf eine Beschränkung, damit er nur unter bestimmten Bedingungen verfügbar ist. Öffnen Sie «Knopfinformation» (Doppelklick bei gedrückter “/•-Taste). Unter «Anordnung ➝ Verfügbarkeit» geben Sie die Formel «Steuerung!$D$1=0» ein (siehe Abb. 2.109).
Der Titel unter «Allgemein» ist «Druck» oder «Drucken», der Befehl aber muss «Drucken…» heißen. Mit diesem Knopf kann folglich der Druckvorgang ausgelöst werden, aber nur, wenn die Zelle D1 den Wert 0 enthält oder gelöscht ist. Der Radioauswahlknopf «Blättern»/«Drucken» in den vereinigten Zellen A3:B3 ist einfacher. Geben Sie unter «Allgemein ➝ Titel» untereinander die beiden Begriffe «Blättern» und «Drucken» ein, und wählen Sie «Index ist Resultat». Unser Steuerpult ist fertig.
Nur kann es nicht funktionieren, solange im Adressfeld unseres Briefes noch immer mit der Funktion «Serienbrief» gearbeitet wird. In dieser Formel muss «Serienbrief» durch «Index» ersetzt werden. Nach der Referenz zum Adressrechenblatt bzw. der jeweiligen Spalte muss noch angefügt werden «;Steuerung!$D$4». Die Eingabe für die gesamte Adresse sieht dann wie Formel 2.18 aus, wobei wir auch hier, um es kürzer zu halten, die vollständige Referenzadresse von «YesNon_Adressen_0810.rtd» durch «YesNon» ersetzt haben.
Nun können Sie mit dem „Steuerpult“ blättern und die Briefe einzeln durchsehen, bevor Sie diese drucken. Außerdem können Sie frei bestimmen, welchen Brief Sie einzeln drucken möchten. Da für größere Postsendungen die Adresse im Brieffenster nicht mehr genügt, wenden wir uns direkt dem Thema der Adressetiketten zu.
Wenn bei Serienbriefaktionen für den Versand Brief und Beilagen nicht in ein normales Fensterkuvert passen, braucht es die Adressen auch auf Klebetiketten. Da die Serienbrief-Funktion immer so viele Exemplare druckt, wie Adressen vorhanden sind, ist sie schlecht geeignet, um Bogen mit fortlaufenden Etiketten – z. B. 30 pro Bogen – zu drucken.
Im folgenden Beispiel gehen wir davon aus, dass bei YesNon Etikettenbögen mit 2 Kolonnen zu je 6 Etiketten verwendet werden, z. B. «Zweckform»-Etiketten Nr. 3659. Hier ist die einzelne Etikette 97x42,3 mm groß. Je nach Etikettenhersteller müssen Sie im nachfolgenden Beispiel die Maße auf Ihre Bedürfnisse abstimmen.
Öffnen Sie ein neues Layout, löschen Sie den Textrahmen und ziehen Sie einen neuen Rechenblattrahmen in beliebiger Größe auf. Sie können auch den vorhandenen Textrahmen einfach in ein Rechenblatt umwandeln. In der Palette «Objektkoordinaten» geben Sie dann alle Angaben ein, um das Rechenblatt in Größe und Position den Gegebenheiten anzupassen (siehe auch Abb. 2.111). Wählen Sie im Rechenblatt mit dem Zeiger sechs Zeilen und vier Spalten aus, und geben Sie in der Palette «Objektkoordinaten» 42,3 mm für die Höhe und 97 mm für die Breite ein. Für den Absender auf den Etiketten ziehen Sie einen neuen Rahmen auf – Sie können auch den bestehenden Rahmen duplizieren – und geben ihm die Inhaltsart «Zeichnung».
Öffnen Sie die Zeichnungskomponente. Platzieren Sie auf ihrem Bildschirm das Fenster mit dem Rechenblatt und das Fenster mit der Zeichnungskomponente nebeneinander, dann öffnen Sie auch das Inventar, und richten es so ein, dass Sie alles überblicken können (siehe Abb. 2.112). Nun importieren Sie in der Zeichnungskomponente das Logo für die Etiketten und schreiben mit Grafischem Text den Absender. Im Inventar geben Sie der Zeichnungskomponente beispielsweise den Namen «Absender». Ziehen Sie die Zeichnungskomponente vom Inventar in Zelle A1. Jetzt können Sie, während Sie in der Zeichnungskomponente in einem größeren Maßstab arbeiten, jederzeit beobachten, wie viel Platz der Absender auf der Etikette braucht. Wenn Sie mit der Gestaltung zufrieden sind, verringern Sie die Spaltenbreite A wie es nötig ist. Notieren Sie sich diese Spaltenbreite.
In Abb. 2.112 ist das Ergebnis der folgenden Schritte kumuliert dargestellt. – Die beiden Spalten haben jetzt zusammen nicht mehr die gewünschte Etikettenbreite von 97 mm. Arbeiten Sie mit vergrößerten Darstellungsmaßstab, z. B. 150%. Wählen Sie die beiden Spalten aus und öffnen Sie «Rechenblattinformation ➝ Anordnung». Unter «Breite/Total» heißt es dann «in 2 Spalten», und im Eingabefeld tragen Sie die 97 mm ein. Schließen Sie die Rechenblattinformation und ziehen Sie im Spaltenkopf die Trennlinie zwischen den beiden immer noch ausgewählten Spalten so weit nach links, bis die mitlaufende Anzeige mit der notierten Breite für die Spalte A übereinstimmt.
Wählen Sie jetzt die Spalte B aus und geben Sie in der Rechenblattinformation für den linken Rand 5 mm und für den rechten mindestens 2 mm ein. Das ergibt für die Adresszeilen die Begrenzung links und rechts. Damit hier unsere Formeln wirksam werden, ist es nötig den Zellen die Inhaltsart «Mehrzeiler» zuzuweisen. Schließen Sie die Rechenblattinformation. Kopieren Sie die Spalten A und B, wählen Sie Spalte C aus – oder die Trennlinie vor dieser Spalte – und setzen Sie die Zwischenablage dort ein, damit diese Spalten die gleichen Formatierungen erhalten. Löschen Sie das Duplikat der „Absender-Zeichnung“ in Zelle C1. Damit auf allen Etiketten der gleiche Absender verwendet wird, setzen Sie in Zelle A2 als Formel eine absolute Referenz zu Zelle A1 ein und kopieren Sie diese Zelle in die Absenderfelder aller anderen Etiketten. Wenn Sie jetzt noch etwas am Absender ändern, so erfolgt die Änderung in allen zwölf Etiketten gleichzeitig. Eine solche Änderung können Sie übrigens überall vornehmen: In einer der Rechenblattzellen oder in der Zeichnungskomponente selbst, immer wirkt sich die Korrektur simultan aus.
In jede Adresszelle kommt die Adresse durch einen bestimmten Index zu stehen, der sich aus der Seitennummer (DruckNr), Spalte und Zeile ergibt. Dieser Index wird in jeder Adresse mehrfach benützt. Es wäre nicht sehr elegant, ihn in der gleichen Zelle mehrmals zu berechnen. Benutzen wir dafür die Zellen B11:B16 und D11:D16, also die hellblau eingefärbten Zellen in unserem geöffneten Rechenblatt (siehe Abb. 2.113).
In Zelle B11 soll der Index der ersten Adresse in der Adresstabelle stehen – beim ersten Blatt also 3, damit die Kopfzeile ausgelassen wird. Mit jedem ausgedruckten Blatt muss diese Nummer um 12 (Anzahl Etiketten) höher liegen. Die Formel in Zelle B11 entspricht deshalb Formel 2.19.
In den übrigen Zellen kann auf diese Zelle B11 Bezug genommen werden, und zwar mit der Formel: «B11+1» in Zelle D11 und «D11+2» in Zelle B12 Wenn Sie diese Formeln jeweils in den Spalten nach unten kopieren, sollten nun in den entsprechenden Zellen fortlaufend die Werte 3 bis 14 stehen.
In Zelle B20 fügen wir noch die Formel für den Druckstopp ein (Formel 2.20). Diese Formel hält den Druck an, sobald die durch B11 referierte Zeile der Adresstabelle keine Adresse mehr enthält. Die Formeln für die Adressen in den Rechenblattzellen lauten nun ähnlich wie diejenigen des letzten Serienbriefes (vergleiche Formel 2.18). Einzig die Referenz in der Indexfunktion muss anders lauten. Hier muss auf die Zelle Bezug genommen werden, in der der zugehörige Adressindex berechnet wurde.
Damit die Formel für die Adresse nur einmal geschrieben werden muss und dann in die übrigen Zellen kopiert werden kann, berechnen wir die ganze Adresse wieder mit einer einzigen Formel (auch hier wieder aus Platzgründen abgekürzt «YesNon.rtd», wo eigentlich die komplette Referenzadresse wie in Formel 2.20 stehen müsste). Diese Formel kann nun mit Ziehen und Kopieren in alle Adresszellen übertragen werden.
In der in Abb. 2.113 gezeigten Formel sind noch zwei Leerzeilen vorangestellt, um die Adresse in der Zelle vertikal richtig zu positionieren. Zudem zeigt Abb. 2.113 die Formel in Zelle D6 und nicht Formel 2.21 in Zelle B3. Es wäre zwar möglich gewesen, die Adresse wie im Serienbrief zeilenweise aufzubauen. In der Formelpalette hätte dafür bei der Eingabe für jede Formel die Option «Text in der Zelle» gewählt sein müssen. Dieses Vorgehen hat aber einen gewichtigen Nachteil! Relative Adressen in solchen Formeln werden beim Kopieren in andere Zellen nicht automatisch angepasst. Deshalb hätte jede Formel mühsam korrigiert werden müssen. Da ist die etwas große und deshalb nicht sehr übersichtliche Formel vorzuziehen.
Zum Schluss können Sie noch die Schriftvorlage für die Adresszellen anpassen; in der Regel genügt eine 11-Punkt-Schrift.
Damit genug zu Serienbriefen, obwohl es noch eine Reihe von Spezialfällen gibt. Wenn Sie obiges Beispiel studiert haben, dann verfügen Sie jetzt über das nötige Rüstzeug, ums selbst zurechtzukommen.
● Erstellen Sie Serienbriefformeln wenn immer möglich durch Ziehen und Ablegen. ● Stellen Sie Adressen für Serienbriefe in Textcontainern oder Mehrzeiler-Zellen in Rechenblättern zusammen, nicht in mehreren Rechenblattzellen (mit automatischer Inhaltsermittlung oder Inhalt Text). ● Für Etiketten benutzen Sie immer Rechenblätter mit Mehrzeiler-Zellen. ● Benutzen Sie «Verbinden(Zeichen(13);…)», um Leerzeilen in Adressen zu vermeiden und den Doppel-Und-Operator «&&», um Lücken innerhalb von Zeilen zu vermeiden. ● Zum Blättern von Brief zu Brief oder zum selektiven Ausdrucken einzelner Briefe benutzen Sie statt der Serienbrieffunktion besser die Funktion «DruckNr» (vergessen Sie dabei den «DruckStopp» nicht). ● Stellen Sie die Adressen in einem Rechenblatt in einem separaten Dokument zusammen, sodass Sie die Adressliste problemlos ausdrucken können
Unsere Schule hat verschiedene Standorte; und die SchülerInnen sollen wissen, wo Sie die jeweilige YesNon-Schule finden. Situations-, Standort- und Zufahrtspläne sind fast für jedes Unternehmen und jede Veranstaltung unumgänglich. Wir wollen die Schule in München als Beispiel nehmen.
Das Vorgehen als klassischer Fall: Man besorgt sich eine Vorlage des Stadtplans bzw. des notwendigen Ausschnittes und überzeichnet die gewünschten Teile. Wer professionell viel mit Plänen und geografischen Karten zu tun hat, wird sich wohl mit entsprechenden Programmen oder Erweiterungen versorgen oder man besorgt sich Karten von spezialisierten Anbietern (z. B. www.geoas.de). Wer geografische Karten als Grundlage für Statistiken und Auswertungen braucht, für den wird unter Umständen auch die RagTime-Erweiterung «GeoInsight» nützlich sein (www.mettre.de).
Holen Sie sich vom Internet einen passenden Kartenausschnitt oder scannen Sie den gewünschten Stadtplan ein. Es spielt in diesem Falle keine Rolle, welches Dateiformat Sie verwenden, solange es ein Format ist, das von RagTime „verstanden wird.“ In unserem Beispiel ist es eine PICT-Datei (eine Bildschirmfoto einer Internetseite). Öffnen Sie eine neue Zeichnungskomponente und ziehen Sie das entsprechende Bild in dieses Fenster. Ziehen Sie den Rahmen der Bildkomponente etwas weiter auf und fixieren Sie das Bild im Rahmen (Doppelklick ins Bild und unter «Bildinformation ➝ Anordnung» das Häkchen bei «Fixiert» setzen). Danach fixieren Sie auch den Rahmen mit Doppelklick auf den Rahmen: Unter «Zeichnungsinformation ➝ Objekte». Damit versichern Sie sich, dass während der Zeichenarbeit die Vorlage nicht verschoben wird.
Speichern Sie Ihr Dokument und holen Sie sich dann unter «Fenster ➝ Paletten» die zum Zeichnen wichtigen Paletten (siehe Abb. 2.114). Zur Erinnerung: Wenn Sie als Mac-Benutzer diese Paletten nicht dauernd brauchen und sie Ihnen im Weg sind, können Sie im Palettenkopf auf den grünen Knopf klicken. Dann erscheint eine weitere Palette, die sozusagen ein Inhaltsverzeichnis der bereitgestellten Paletten darstellt (siehe Abb. 2.115). Bei Bedarf können Sie die kurzzeitig versteckten Paletten wieder „hervorklicken“ – sie erscheinen dann dort auf dem Bildschirm, wo sie zuletzt platziert waren. Wenn Sie viel mit Zeichnungen arbeiten, lohnt es sich auch hier, sich einige Tastaturkürzel zu erstellen. Nun können Sie natürlich sofort beginnen, die Häuserblocks in Polygonen und Bézierkurven nachzufahren. Wir haben uns für einen anderen Arbeitsvorgang entschieden: Unsere Polygone und Elemente für den Standortplan zeichnen wir in einer zweiten Zeichnungskomponente: Ziehen Sie einen Rahmen auf über dem Stadtplan, der den Kartenausschnitt begrenzen soll. Geben Sie diesem Rahmen die Komponente Zeichnung, weisen Sie ihm eine transparente Füllung zu und formatieren Sie den Containerrand mit einer kontrastreichen Farbe. Dann fixieren Sie auch diesen Rahmen, damit er nicht verschoben werden kann. Sie zeichnen also nun Ihre Polygone und Stadtplanelemente in einer Zeichnungskomponente, die in einer Zeichnungskomponente steckt und über der Vorlage des Stadtplanes liegt. Einem Vorgehen, dass dem Durchpausen mit Transparentpapier nicht unähnlich ist. Der Vorteil dieses Vorgehens: Sie können während des Zeichnens schnell die Ebene wechseln und haben alle Objekte, die Sie anlegen, sofort in einer unabhängigen Komponente beieinander. Das Wechseln der Ebenen werden Sie häufig brauchen. Darum legen Sie sich am besten hier zwei Tastaturkürzel an: Eine für «Zeichnung ➝ Stapelung ➝ Nach vorn holen» und eine für «Zeichnung ➝ Stapelung ➝ Nach hinten bringen».
Im Abschnitt Tastaturkürzel setzen haben wir das Vorgehen beschrieben. Wenn Sie beispielsweise für «Nach vorn holen» das Kürzel A“1J/•“16 setzen und für «Nach hinten bringen» A“1H/•“17. Damit können Sie ein ausgewähltes Objekt mit dem Tastenwechsel blitzschnell nach vorne oder hinten stellen. Siehe dazu die „Tastaturkürzel-Tabellen“ in Anhang B „Tastaturkürzel“.
Was Sie noch beachten sollten: Durch eine Zeichnungskomponente mit transparenten Rahmen können Sie „hindurchklicken“, also dahinter liegende Objekte auswählen. Das gleiche gilt für alle transparenten Rahmen (Rechtecke, Polygone usw.) Dieses Verhalten kann manchmal sehr irritierend sein. Wenn Sie Objekte in der Zeichnung anklicken wollen, müssen Sie also sehr präzise arbeiten.
Neben der Lupe und der Vergrößerung der Bildschirmdarstellung über die Symbole in der linken unteren Fensterecke gibt es noch eine weitere Größeneinstellung: «Fenster ➝ Darstellungsmaßstab ➝ Andere». Hier können Sie auch ganz individuelle Maßstäbe eingeben. Im Beispiel gemäß Abb. 2.115 ist 195% natürlich recht speziell.
Nun definieren Sie für alle Objekte, die Sie zeichnen werden — Gebäude, Grünflächen, Hintergrund (der als Straßenfarbe gilt), Parkhaus- und U-Bahn-Hinweise – je eine Füllvorlage und gegebenenfalls Linienvorlagen. Ebenso Schriftvorlagen für die Straßen-Namen und das «P» für Parkhaus bzw. das «U» für U-Bahn. Jetzt sind Sie bereit, um mit dem Zeichnen des Standortplanes zu beginnen. Wenn Sie mit der Komponente Zeichnung noch nicht so vertraut sind, bringen die nächsten Abschnitte Grundlegendes, Tipps und Tricks. Mit dem Standortplan München geht es in Kapitel 2.7.8 „Ein paar Häuserblocks weiter“ weiter.
Die Zeichnungswerkzeuge von RagTime ersetzen natürlich kein ausgewachsenes Illustrationsprogramm. Doch wer weniger als Illustrator arbeitet, dafür mehr mit übergreifenden Funktionen, der findet in RagTime eine ganz ordentliche Erstausstattung zum Zeichnen.
Ganz abgesehen davon, dass eine Zeichnungskomponente einen raffinierten „Koffer“ darstellt, in den neben Zeichnungselementen alle möglichen anderen Komponenten eingepackt werden können, lassen sich mit Bézierkurven, Polygonen, Kreissegmenten und anderen vorgegebenen Formen praktisch alle grundlegenden Zeichnungen erstellen. Auch hier wird das Raffinierte von RagTime sichtbar: Jeder geschlossene Linienzug – egal ob geometrisches Vieleck oder freier Linienverlauf – bildet einen Rahmen, der auch einen Inhalt haben kann (jede beliebige Komponentenart) und damit zum Container wird. Ja sogar nicht geschlossene Polygone und Bézierkurven werden mit einer imaginären Linie zwischen den beiden Endpunkten geschlossen und können so zum Container werden. Darum wird ein Rechteck, ein Polygon, ein Bézierkurvenobjekt usw., welches direkt im Layout erstellt wurde, nicht im Inventar angezeigt: Eben weil es RagTime erst einmal als leeren Rahmen, bzw. als Zeichnungsobjekt im Layout betrachtet. Nur, wenn eine Komponente zugewiesen, beziehungsweise ein entsprechender Inhalt importiert wird, ist im Inventar das zugehörige Symbol zu sehen. Am Anfang scheint es widersprüchlich, dass eine Zeichnungskomponente Infografiken, Rechenblätter oder Texte enthalten kann und die Komponente trotzdem als «Zeichnung» gilt. Umgekehrt aber Objekte, die wie eine Zeichnung aussehen (wie in Abb. 2.116) für RagTime einfach eine Reihe von leeren Rahmen sind (immerhin mit interessanten, teilweise zweifarbigen Füllungen und Rändern, bleiben es dennoch einfache Rahmen). Wie gesagt: Erst wenn einem Rahmen die Inhaltsart «Zeichnung» zugewiesen wird, ganz gleich, welche Füllung er hat (siehe Abb. 2.117), führt RagTime dieses Objekt im Inventar als Zeichnung mit dem bekannten Symbol
auf. (Die Beispiele sind übrigens dem Dokument «Hausplaner» von Bernhard Storch auf den Expertenseiten von RagTime.de entnommen.) Wir haben diesen Aspekt absichtlich so ausführlich beschrieben, weil auch erfahrene Benutzer dieses Prinzip von RagTime manchmal vergessen.
Diese Philosophie von RagTime hat unter anderem den Vorteil, dass einige Funktionen und Werkzeuge, die man gewöhnlich nur fürs Zeichnen braucht, auch für das Layouten bestens verwendet werden können. Eine davon ist beispielsweise das Ausrichten von Objekten, greifbar mit «Zeichnung ➝ Ausrichten». Denn diese Funktion lässt sich beim Layouten wunderbar für das Anlegen von Textspalten auf der Layoutseite und das Ausrichten verschiedenster Komponenten nützen. Allerdings führt obiger Befehl nur zum allgemeinen Ausrichten-Dialog. Die Zeichnungsbefehlspalette bietet dagegen direkten Zugriff zu vielen Ausrichtearten. Für ein Organigramm oder Flussdiagramm sind z. B. die Befehle «Horizontal, bzw. Vertikal mittig ausrichten» besonders nützlich, sodass es sich lohnen kann, für diese – und andere vielbenützte Ausrichtungsbefehle – je ein eigenes Tastaturkürzel zu definieren (siehe Anhang B „Tastaturkürzel“).
In Abb. 2.118 sieht man, wie sich die Rahmen vergrößern und verkleinern lassen und dabei beim Zeiger immer die momentane Größe des Rahmens in einem Anzeigefeld mitläuft. In Abb. 2.119 geht es um das Duplizieren von Objekten. Unter «Extras ➝ Grundeinstellung ➝ Zeichnung» lässt sich definieren, wie groß der Abstand sein soll, den das duplizierte Objekt vom Ursprungsobjekt haben soll. Da dies unter «Zeichnung» zu finden ist, könnte man vermuten, dass dies nur für die Zeichnungskomponente gilt. Auch diese Funktion gilt für alle Objekte. In den Eingabefeldern kann auch 0 oder ein negativer Wert stehen.
Äußerst nützlich ist die Palette «Objektkoordinaten». Bei fast allen Komponenten kann sie „mitbestimmend“ werden; sogar bei Rechenblattzellen oder -spalten. Diese Palette sollten Sie immer im Paletten-Dock und beim Zeichnen und Layouten sogar geöffnet haben. In Abb. 2.120 wird beispielsweise damit erreicht, dass drei unterschiedliche Rahmen die gleiche Breite erhalten und alle die gleiche Position vom oberen Rand einnehmen.
«Ausrichten…» ist ein Befehl, der logischerweise nur aktiv ist, wenn mehr als ein Objekt ausgewählt ist. Dann öffnet sich das Fenster «Objekte ausrichten». Neben den klaren Auswahlmöglichkeiten «Zentriert», «Links», «Oben» usw., die jeweils mit drei Strichen symbolisiert sind
gibt es noch zwei bemerkenswerte Optionen. In Abb. 2.121 sind alle vier Objekte ausgewählt, der Einstellungsbefehl dazu heißt: Richte alle Objekte in der Vertikalen mittig aus und ordne sie so, dass der Abstand zwischen allen Objekten 12 pt ist (da in den Maßvorgaben «cm» eingestellt war, zeigt RagTime hier 0,42 cm an).
Eine Reihe der Paletten und Funktionen, die beim Zeichnen zum Einsatz kommen, sind generell für das Arbeiten mit Objekten sinnvoll. Wer nicht so oft mit der Zeichnungskomponente arbeitet, kann hier plötzlich auf bisher übersehene Funktionen stoßen, die das Arbeiten in Zukunft wesentlich erleichtern.
Die Ausrichtung der Objekte sieht dann wie in Abb. 2.122 aus. Auch eine weitere Einstellmöglichkeit kann besonders beim Layouten Sinn machen: Gesetzt den Fall Sie haben einen definierten Satzspiegel und möchten Ihren Text dreispaltig setzen. Ziehen Sie einen Rahmen am linken Satzspiegelrand auf, duplizieren Sie ihn zwei Mal und bewegen Sie eine der Kopien zum rechten Satzspiegelrand. Wählen Sie alle drei Objekte aus und definieren im Fenster «Objekte ausrichten» die Einstellung «Horizontal ➝ Verteilen» und «Vertikal ➝ Ausrichten ➝
». Der Abstand zwischen den Spalten wird automatisch von RagTime eingerichtet. Das ist natürlich auch mit vier oder mehr Objekten und ebenso in der Vertikalen möglich. So können Sie visuell schnell entscheiden, ob Spaltenbreite und Spaltenabstand Ihren Vorstellungen entsprechen.
In Abb. 2.122 wurden, um die Pipelinefunktionen zu demonstrieren, vier Rahmen ohne Inhalt mit einer Pipeline verknüpft und dann versucht, einen der Rahmen als Zeichnungskomponente zu definieren. Natürlich erscheint eine Fehlermeldung: Zeichnungskomponenten können nicht mit einer Pipeline verbunden werden. Aber – und das kann für das kreative Layouten ebenfalls sehr hilfreich sein – von Komponenten innerhalb der Zeichnungskomponente können Pipelines wegführen und auch dort hinführen. Beispielsweise haben Sie einen Textrahmen im Layout und einen, vielleicht eine Bildlegende, in der Zeichnungskomponente. Beide Textrahmen können mit einer Pipeline verbunden sein. Dasselbe gilt natürlich auch für Rechenblattrahmen.
Auch Lineale und Raster sind grundsätzlich für alle Komponenten einsetzbar. Beim Layouten und Zeichnen machen sie wohl am meisten Sinn. Unter «Fenster ➝ Zeigen» können Lineale und Raster sichtbar/unsichtbar gesetzt werden und der Raster magnetisch eingestellt werden, sodass die gezeichneten Objekte schon bei einer geringen Nähe zur Rasterlinie dort einrasten (siehe Abb. 2.123 und Abb. 2.124).
In Abb. 2.124 ist die Palette «Hilfslinien» geöffnet. Hier können – unabhängig vom Raster – Hilfslinien in selbst definierten Farben vertikal und horizontal gesetzt werden: «Fenster ➝ Paletten ➝ Hilfslinien». Hilfslinien können Sie auch einzeln aus den angezeigten Linealen ins aktive Fenster ziehen – oder wieder ins Lineal zurück, um sie zu löschen. Ein Doppelklick auf eine Hilfslinie öffnet ein kleines Fenster in dem die genaue Position und die Farbe der Linie gewählt werden können.
Dass bei RagTime horizontale und vertikale Rasterlinien getrennt behandelt werden zeigt Abb. 2.125. Das hier sichtbare Fenster «Lineal- und Rastereinstellungen» lässt sich mit dem gleichnamigen Menübefehl (eingekreist in Abb. 2.123) öffnen. In diesem Fenster lässt sich auch einstellen, ob nur die vertikalen oder nur die horizontalen Rasterlinien magnetisch sein sollen. Außerdem kann hier der Nullpunkt individuell verändert werden. Um die Rasterabstände zu verstellen müssen Sie mit dem Einblendmenü ein anders Lineal wählen, oder gar ein neues definieren und dann auswählen.
Rasterlinien werden verständlicherweise beim Drucken nicht angezeigt. Manchmal ist es aber angebracht, mit permanent sichtbaren und druckbaren Rastern zu arbeiten. Da kommt eine der RagTime-Qualitäten wieder zum Zug: Das Kombinieren von verschiedenen Komponenten. In Abb. 2.126 haben wir drei Ebenen: Ein Rechenblatt im Hintergrund, das mit den Zeilenhöhen und Spaltenbreiten zum gewünschten Raster eingestellt wird.
Dabei müssen Sie die Zellränder mit druckenden Linien versehen. Darüber legen Sie „großflächig“ einen Rahmen ohne Inhalt, der die Füllvorlage «Transparent» erhält. In der Abbildung haben wir ihm eine halbtransparente, hellblaue Füllung gegeben, damit er für das Beispiel sichtbar wird. Auf der obersten, dritten Ebene können Sie nun Ihre Zeichnungen anlegen oder auch Textkomponenten einrichten. Je nach Bedarf fixieren Sie die einzelnen Container bzw. gruppieren Sie diese.
Die Werkzeuge und Hilfsmittel zum Zeichnen sind bei RagTime nicht – wie in einem klassischen Zeichenprogramm – übersichtlich nebeneinander zu finden. Man muss sie sich leider etwas zusammensuchen (siehe Abb. 2.127). Beachten Sie in der Abbildung die Anordnung in der Zeichnungsbefehlspalette: Nur in dieser Anordnung sind die neun Ausrichtebefehle rasch und intuitiv zu finden, und darunter noch die beiden für das horizontale/vertikale mittig Ausrichten. Diese Anordnung wird durch Verändern der Palettengröße erzielt. Die wichtigsten Objektformen wie Rechteck, abgerundetes Rechteck, Oval, Kreissegment, Bogensegment Linie, Polygon, Bézierwerkzeug und Vieleck sind im Zeichnungs- und Layoutmodus alle in der Werkzeugleiste verfügbar. Die Werkzeug- und andere Paletten lassen sich unabhängig zur Werkzeugleiste auf den Bildschirm holen («Fenster ➝ Paletten»). Siehe dazu auch den Anhang A „Paletten“.
Fast alle Werkzeuge haben zusätzliche Besonderheiten: Mit dem Rechteck-Werkzeug lassen sich Quadrate zeichnen, wenn während des Zeichnens die 1/1-Taste gedrückt wird. Mit dem Ellipsen-Werkzeug werden auf die gleiche Art Kreise erzeugt, für Linien gilt ein Raster von 15°.
Beim Werkzeug «Abgerundetes Rechteck» erscheint rechts unterhalb der Zeichnung ein Punkt. Klickt man ihn an und schiebt bei gedrückter Maustaste den Zeiger, so verändern sich die Radien des Objektes. So kann in der weitesten Ausrichtung auch wieder ein Rechteck entstehen (siehe Abb. 2.128 oben). Ähnliches entsteht bei Objektarten, die mit dem Sektoren- oder dem Bogenwerkzeug gezeichnet wurden.
Der Sektor bzw. der Bogen lässt sich nachträglich erweitern oder verengen. Überhaupt ist jedes gezeichnete Objekt in ein anderes umwandelbar. Unter «Zeichnung ➝ Objektart» kann eine Palette abgerissen werden. Bei ausgewähltem Objekt ist in dieser Palette die gewünschte Objektart anzuklicken. Fertig gezeichnete Objekte können über die Palette «Zeichnungsbefehle» gespiegelt, gekippt, ausgerichtet, gruppiert, als Gruppe wieder aufgelöst, und in den Ebenen bewegt werden. (Abb. 2.127 links).
Mit den Werkzeugen der Palette «Kurvenbearbeitung» sind (von links nach rechts), die nachfolgend beschriebenen Funktionen möglich:
Der Zeiger links hilft, gezeichnete Objekte, Linien und Ankerpunkte auszuwählen und zu verschieben. Je nach angeklicktem Objekt ändert sich der Zeiger in ein Kreuz
oder in ein
. Das zweite Werkzeug, das «Kurvenschneidewerkzeug» kann direkt auf den Linienrand von Polygonen oder mit Bézier-kurven gezeichnete Objekte angesetzt werden (ohne diese Objekte vorher ausgewählt zu haben). Sollen die Linien anderer Objekte getrennt, bzw. „zerschnitten“ werden, müssen sie zuerst umgewandelt werden. Leider bewegt sich der Zeiger in Form des Schneidemessers ohne Positionsanzeige. Auch in der Palette «Objektkoordinaten» werden keine Positionen angezeigt. Das Zerschneiden eines Objektes an zwei Punkten ergibt zwei nicht geschlossene Objekte (siehe Abb. 2.131).
Die beiden mit einer Füllfeder symbolisierten Werkzeuge haben bei RagTime Bandwurmnamen. «Kurvenpunkt-Einfügen-Werkzeug» heißt die Feder mit dem Pluszeichen. Damit werden auf Linien Ankerpunkte gesetzt, die mit Tangentenlinien ausgestattet sind, um Bézierkurven zu zeichnen (siehe Abb. 2.131, rechte Einkreisung). «Kurvenpunkt-Entfernen-Werkzeug» heißt die Feder mit dem Minus-Zeichen; sie löscht solche Ankerpunkte.
Das «Kurvenpunktknickwerkzeug» (5. von links) verwandelt Ankerpunkte, um einen spitzen Winkel in einem Polygon- oder einem Bézierkurven-Objekt zu erlauben. Damit werden also keine Ankerpunkte gesetzt, sondern bestehende verändert, indem der Zeiger an den Endpunkten der Tangentenlinien angesetzt und bewegt wird (siehe Abb. 2.130 und Abb. 2.134). Wird der Zeiger am Bézier-Ankerpunkt angesetzt, strecken sich die Tangentenlinien wieder auf eine Achse.
Das sechste Symbol auf der Palette «Kurvenbearbeitung» schließt offene Zeichenobjekte. Umgekehrt kann mit diesem Werkzeug bei geschlossenen Zeichenobjekten der letzte Linienteil wieder geöffnet werden (siehe Abb. 2.133).
Zwei Zeichenobjekte können miteinander verbunden werden, wenn beide Objekte nicht geschlossen sind. Dabei wird der Endpunkt des einen Objektes erfasst und dann mit gedrückten 3“/•“-Tasten auf den Endpunkt des anderen Objektes bewegt. Es erscheint ein dicker Punkt mit einem kleinen Kreis, wenn sich die beiden Enden treffen (siehe Abb. 2.132). Im selben Moment übernimmt das zuletzt bewegte Zeichenobjekt die Linien- und Füllvorlagen des gerade verbundenen Zeichenobjektes. Wären in der Abb. 2.132 zwei verschiedene Füll- oder Linienvorlagen zugeordnet gewesen, so würde das rechte Objekt die Füllvorlage des linken Objektes übernehmen.
Achtung: Wenn einem Zeichenobjekt ein Inhalt also eine Komponente zugewiesen wurde (zum Beispiel Text) sieht RagTime dieses Objekt als geschlossen an, auch wenn der Linienrand nach wie vor offen dargestellt wird. Dann lässt sich dieses Objekt nicht verbinden. Das kann bei einem leeren Textcontainer zu Verwirrung führen, da er auf den ersten Blick gleich aussieht wie ein Zeichenobjekt.
In Kapitel 2.7 „Zeichnen von Standortplänen“ haben wir begonnen, den Standortplan München zu zeichnen. Hier in Abb. 2.135 sind wir schon ein Stück weiter.
Da es bei einem solchen Plan nicht um alle Details, aber um eine gute Gesamtwirkung geht, ist die hinterlegte Bitmap-Grafik manchmal störend. Ein einfacher Trick: Schieben Sie ein weißes Blatt Papier dazwischen. Nein, natürlich nicht wörtlich. Aber im übertragenen Sinn ist der Effekt der gleiche. Wir haben die Zeichnungskomponente mit dem Bild des Stadtplanes, wir haben im Ausschnitt darüber einen weiteren transparenten Rahmen mit einer Zeichnungskomponente und beide sind fixiert.
Wenn Sie jetzt das Fenster verkleinern, können Sie neben der oberen Zeichnungskomponente einen Rahmen mit weißer Füllung aufziehen, ihn eine Ebene zurücksetzen und dann soweit nach links schieben, bis Sie die Details auf weißem Grund besser nachzeichnen können (wie in Abb. 2.135 der parallele Verlauf der Straßenkurve).
Noch ein kleiner Tipp zum schnelleren Arbeiten: Um bei einem Bézierkurven- oder Polygon-Objekt die Linien zu bearbeiten, müssen Sie nicht unbedingt jedes Mal das Werkzeug «Kurve bearbeiten»
anklicken: Sie können auch, bei aktivem Objekt, einfach die Eingabetaste der Zahlenblock-Tastatur drücken, oder auf einer Linie des Objekts doppelklicken.
Wenn alle Häuserblocks und Grünflächen gezeichnet sind – vergessen Sie nicht, immer wieder zwischendurch zu sichern –, setzen wir in unserem Standortplan noch die nächstliegenden U-Bahnstationen und Parkhäuser ein. Das können Textfelder mit blauer Füllung sein, aber auch erneut Zeichnungskomponenten mit Grafischem Text.
Die Positionsangabe mit dem Logo ist ein gezeichnetes Polygon, in welches das Logo hineingezogen wurde. Das Polygon wird damit automatisch zur Bildkomponente. Jetzt brauchen wir in der Zeichnungskomponente mit unseren Häuserblocks und Grünflächen nur noch über alles einen rechteckigen Rahmen aufzuziehen, der mit entsprechender Füllung als Hintergrund die Straßen und Plätze markiert. Selbstverständlich geben wir auch dieser Füllung eine Vorlage, um bei Bedarf die Farbgebung des Planes schnell anzupassen. Der Rahmen wird auf eine hintere Ebene verlagert «Zeichnung ➝ Stapelung ➝ Eine Ebene zurück».
Mit dem Werkzeug «Grafischer Text» werden noch die wichtigsten Straßen- und Platznamen geschrieben und mit durchsichtiger Hintergrundfüllung platziert. Wo nötig sind sie zu drehen. Das geht am einfachsten indem man das Textobjekt als Ganzes am Mittelpunkt packt – der Zeiger wird dabei zum Drehsymbol
–, mit dem Zeiger etwas vom Zentrum wegfährt und dann dreht. Dabei wird der Umriss des gedrehten Objektes sowie der aktuelle Rotationswinkel angezeigt (siehe Abb. 2.137). Für die Feinabstimmung von Rotationswinkel und Position dient die Palette «Objektkoordinaten»: Für den Winkel ist das Eingabefeld links unten maßgebend (siehe Abb. 2.138). Dieses Vorgehen gilt natürlich auch für alle anderen Objekte, die man drehen will.
Unser Standortplan ist fertig. Da wir alle dazu gehörigen Elemente in der gleichen Zeichnungskomponente haben, können wir diese aus dem Inventar in ein neues Layout oder in ein neues Inventar ziehen. Die Vorlage mit dem Stadtplan kann dann gelöscht werden. Aber Achtung: Löschen Sie diese nicht zu früh: Denn wir hatten unseren Situationsplan (als komplette Zeichnungskomponente) wiederum in einer Zeichnungskomponente mit der Vorlage des Stadtplanes von München aufgebaut. Wenn Sie die übergeordnete Komponente löschen – und die darin befindliche zweite Zeichnungskomponente im Inventar ein Häkchen hatte – ist auch diese mit gelöscht.
Haben Sie die Komponente des Standortplanes in einem Layout platziert, so können Sie diese auch Drehen und Scheren (siehe Abb. 2.139), also in eine perspektivische Dimension verziehen (auch das ideal mit Eingaben auf der Palette «Objektkoordinaten»). Das Interessante an dieser Möglichkeit ist, dass sich Schriften und alle gezeichneten Objekte in gleicher Weise mit verziehen. Aber: Wenn Sie die Zeichnungskomponente als eigenes Fenster öffnen, werden Sie alle Objekte darin noch genauso vorfinden, wie Sie sie gezeichnet haben. Es verändern sich also nicht die Objekte, sondern die Komponente als Ganzes. Das funktioniert übrigens genau gleich wie bei Bildkomponenten, die sie ebenfalls scheren und drehen können ohne das eigentliche Bild zu verändern.
● Wenn Sie mit RagTime oft Zeichnungen erarbeiten, dann versehen Sie alle wichtigen Zeichenbefehle mit Tastaturkürzeln. Das erleichtert die Arbeit ungemein. ● Insbesondere das Verstellen der Darstellungsgröße (Tastaturkürzel ➝ Fensterbefehle ➝ Darstellungsmaßstab) in zwei oder drei Prozentgrößen sollte zu Ihren Kürzeln gehören. ● In der Formatierungspalette ist unter «Anzeige» ebenfalls eine Größeneinstellung möglich, sogar mit differenzierter Eingabe und mit raschem Wechsel auf Seiten- oder Fenstergröße. ● Mit der Lupe können Sie gezielt eine bestimmte Stelle Ihres Layouts oder Ihrer Zeichnung vergrößert anzeigen lassen. ● Das Palettendock ist auf dem Mac ein nützliches Hilfsmittel, um die wichtigen Paletten schnell griffbereit zu haben. ● Die Einstellungen für Maßstäbe, Hilfslinien (magnetisch) und Hintergrundraster (magnetisch möglich) sollten Sie sich unbedingt ansehen, um damit zu arbeiten. ● Um Polygone und andere gezeichnete Objekte schnell veränderbar zu machen: Linie doppelklicken, oder Objekt auswählen und </T-Taste drücken. Erneutes Drücken der </T-Taste wählt das Zeichnungsobjekt wieder als Ganzes. Wenn Sie ein Objekt im Layout oder einer Zeichnung ein zweites Mal benötigen, so ziehen Sie es mit gedrückter Maus- und “/”-Taste an den gewünschten Ort. ● Nutzen Sie die Möglichkeit der Umwandlung von Objektarten, z. B. um aus einem abgerundeten Rechteck oder Oval eine Sprechblase zu machen: In ein Polygon oder eine Bézierkurve wandeln, Punkte einfügen und den Keil so einfügen. ● Nützen Sie die Möglichkeit, mit mehreren transparenten oder halbtransparenten Containern übereinander zu arbeiten, um etwas „durchzupausen“. ● Durch einen leeren, transparenten Rahmen können Sie ein dahinter liegendes Objekt auswählen. ● Das kann auch verwirren, wenn Sie das gewünschte Objekt nicht erreichen: Prüfen Sie, welche Objekte eine transparente Füllung haben. ● Verwenden Sie die Zeichnungskomponente als Sammelcontainer, um verschiedene Elemente miteinander anzuzeigen. Der Zeichnungscontainer kann dann auch für den „Bildausschnitt“ der Elemente benutzt werden. ● Arbeiten Sie auch bei Zeichnungen konsequent mit Farb-, Füll-, Linien- und Schriftvorlagen.
Das bedeutet Planen! Basis für jede Planung ist eine Agenda, ein Kalender. Wir planen langfristig und möchten immer die Übersicht behalten, rollend über die nächsten anderthalb Jahre. Die Agenda soll immer am Anfang der aktuellen Woche beginnen. – Damit die Formeln gut lesbar sind, geben wir den viel referierten Komponenten in unserem neuen Dokument «Planung» nur kurze Namen. Wir benützen im Folgenden intensiv die Suchlauffunktionen. Wenn Sie damit noch nicht vertraut sind, schauen Sie zuerst Kapitel F3 an.
Unser Kalender braucht einen Kopf, der aussehen soll wie in Abb. 2.140. Die ersten vier Zeilen des neu angelegten Rechenblatts «Agenda» sind als Titelzeilen definiert, damit sie beim Ausdrucken des Planungskalenders oben auf jeder Seite wieder erscheinen. Unser Logo platzieren wir in den vereinigten Rechenblattzellen A2:A3. Was nicht zu sehen ist, da wir für diese Zelle «Sichtbarkeit: Nirgends» eingestellt haben: In Zelle A1 steht das Datum des Montags der laufenden Woche. Dieses Datum wird mit der folgenden Formel ermittelt:
Zuerst wenden wir uns der Gestaltung des Kalenders des Rechenblatts «Agenda» zu. Ziel ist ein Kopf wie in Abb. 2.140 gezeigt. In Zeile 1 stehen, abwechselnd farbig hinterlegt, die Monatsnamen, in Zeile 2 die Kalenderwoche, in Zeile 3 der Wochentag und in Zeile 4 das Tagesdatum. In Zeile 4 sollen alle Tage rot angezeigt werden, an denen die Schule geschlossen hat. Das sind alle gesetzlichen Feiertage, auch lokale, die Wochenenden, dann aber z. B. auch die Woche zwischen Weihnachten und Neujahr.
Als Erstes wollen wir die Spalten für eine Woche formatieren. Wählen Sie die 7 Spalten B:G aus und weisen Sie dem rechten Zellrand mit «Rechenblatt ➝ Zellränder… ➝ Rechter Rand» eine Linienvorlage zu, die Sie zu diesem Zweck erstellt haben. Eine andere Linienvorlage weisen Sie dem rechten Rand von Spalte H zu. Wir haben uns für eine feine rosa Linie und eine feine schwarze Linie (je 0,25 pt.) entschieden. Dank der Verwendung von Vorlagen können Sie alles zentral ändern, wenn Ihnen – oder der auftraggebenden Stelle – die fertige Agenda nicht gefällt.
Wählen Sie nun die Spalten B:H aus. Ein kleiner Hinweis: Wenn Sie mal eine große Zahl von Spalten auswählen müssen und das mühselige Rollen nach rechts vermeiden wollen, so geht das am einfachsten, indem Sie in das entsprechende Feld in der Werkzeugleiste den gewünschten Bereich eingeben (Abb. 2.141). Mit Klick auf
wird die Eingabe als Bereichsauswahl übernommen und gleichzeitig die Rechenblattinformation geöffnet. Lassen Sie sich nicht verwirren: Im eben benützten Eingabefeld wird jetzt nur noch die erste Zelle (B1) des ausgewählten Bereichs angezeigt. Ein Blick aufs Rechenblatt bestätigt Ihnen aber, dass die Auswahl trotzdem richtig ausgeführt wurde.
Bei den folgenden Dimensionierungen gehen wir von der Schrift «Arial» mit Größe 10 pt aus, für die wir eine Vorlage «Kalender» angelegt haben.
Kontrollieren Sie in der Tafel «Anordnung» der Rechenblattinformation die Anzahl der ausgewählten Spalten (siehe Abb. 2.142). Geben Sie die Spaltenbreite mit 0,5 cm an, den Abstand von den Zellrändern links und rechts mit 0, die horizontale Ausrichtung mit «Zentriert».
Schließen Sie das Infofenster und kopieren Sie den immer noch ausgewählten Bereich mit den Spalten B:H. Wählen Sie die erste Spalte rechts von diesem Bereich und setzen Sie die Spalten dort wieder ein. Machen Sie das so oft, wie Sie Wochen in Ihrem Kalender dargestellt haben möchten. Natürlich können Sie, wenn Sie mal die Spalten für 5 Wochen erzeugt haben, sämtliche dazu gehörenden Spalten auswählen und dann mit dem analogen Vorgehen jeweils gleich 5 Wochen dazu fügen. Wir haben das so lange gemacht, bis unser Kalender 80 Wochen = 560 Spalten umfasst hat. Die letzte Spalte des Kalenders ist dann die Spalte UO.
Wählen Sie die Zeile 3 aus und öffnen Sie das Infofenster erneut (siehe Abb. 2.143), geben Sie für die horizontale Ausrichtung «Linksbündig» ein, für die Zeilenhöhe 1,75 cm, und für die «Orientierung» wählen Sie die zweite Option, mit von unten nach oben laufender Schrift. Solange Zeile 3 noch ausgewählt ist, ordnen Sie dieser auch noch ein Werteformat «Wochentag» zu, das mit «TTTT» definiert ist.
Sie benötigen noch weitere Vorlagen: Eine Schriftvorlage «Monat», z. B. geerbt von «Kalender» aber «Fett» und mit der Farbe «Weiß». Weisen Sie die Vorlage «Kalender» dem ganzen Rechenblatt zu, die Vorlage «Monat» danach der ersten Zeile. Legen Sie eine Füllvorlage «Monat0» an, basierend auf «Rote Füllung», aber mit nur 40% Dichte, und eine zweite, «Monat1», geerbt von «Schwarze Füllung», ohne daran etwas zu ändern. Natürlich können Sie auch andere Farbtöne für diese Füllungen wählen. Wichtig sind die Namen, da wir diese so in Formeln brauchen werden. Teilen Sie für die weitere Arbeit das Fenster mit der Rechenblattkomponente «Agenda» so, dass Sie links die ersten und rechts die letzten paar Spalten des eben dimensionierten Bereichs sehen können.
Natürlich könnten wir in die Zellen B1:B4 je eine Formel eingeben und diese, so weit nötig, nach rechts kopieren. Das wäre nicht sehr elegant und bläst das Dokument mit all den Formeln unnötig auf.
Zur Verbesserung der Übersicht legen wir für die Formeln ein eigenes Rechenblatt «Kalenderberechnung» an. Damit nehmen wir allerdings in Kauf, dass jede Referenz zu einer Zelle oder einem Bereich im Rechenblatt «Agenda» um den Komponentennamen verlängert wird. Es ist offensichtlich, dass wir eine ganze Serie von Suchläufen benötigen werden, die wir in getrennten Formeln unterbringen wollen. Wir benützen die Technik der Formelverkettung mit gegenseitiger Auslösung, die im Formelkapitel F3 eingehend behandelt wird.
Im Rechenblatt «Kalenderberechnung» benützen wir die Spalten wie folgt (siehe Abb. 2.144): In Spalte A stehen die Formeln. Der Wert, der sich bei Ausführung der Formel ergibt, ist nicht von Belang und kann höchstens verwirren. Wir schalten deshalb die Sichtbarkeit des Zellinhaltes für diese Spalte, abgesehen von Zelle A1, in der Rechenblattinformation auf «nirgends». In Zelle B2 fügen wir eine einfache Formel mit der MetaFormel-Funktion «FormelVon» ein. Damit wird in Zelle B2 die Formel sichtbar, die in Zelle A2 steht (Formel 2.23).
Aufgepasst: Die angezeigte Formel wird erst nachgeführt wenn die Formel in der „überwachten“ Zelle eine Wertänderung ergibt. Legen Sie in «Rechenblattinformation ➝ Zellinhalt ➝ Inhalt» fest, dass die Formel bei Werteingaben erhalten bleibt. So können Sie, falls die Formel nicht selbst zu einer Wertänderung führt, nach einer Formelkorrektur nur einen Wert in der Zelle eingeben – und schon wird die Formelanzeige nachgeführt.
Eine Warnung: Die Versuchung ist groß, eine Änderung in der angezeigten Formel vorzunehmen, statt in der eigentlichen Formel. Sie sollten deshalb unbedingt für die Zellen in Spalte B den Schutz aktivieren – mit «Extras ➝ Schutz ➝ Formel geschützt» und dann noch «Extras ➝ Schutz ➝ Dokument sperren» – am einfachsten ohne Passwort. Dies ist sinnvoller, als einfach – wie vorhin in Spalte A – die Formel bei Werteingaben zu erhalten. Eine in Spalte B geänderte Formel – es handelt sich ja nur um deren Anzeige, nicht um die eigentliche Formel – würde bei der Eingabe nicht auf korrekte Syntax geprüft und müsste anschließend erst noch als eigentliche Formel in Spalte A übertragen werden. – Natürlich kopieren wir die Zelle B2 in Spalte B so weit nötig nach unten.
Auch der umgekehrte Weg wäre zwar möglich: Die Formel als Text einzugeben und mit der MetaFormel-Funktion «RechneText» berechnen zu lassen. Aber auch so fehlt die Syntaxprüfung. Bei syntaktisch unkorrekter Eingabe würde zwar eine Fehlermeldung angezeigt, aber Sie würden keinen Hinweis erhalten, wo der Fehler zu suchen ist.
Damit wir jede Formel auch später noch verstehen können, erläutern wir deren Aufgabe in Spalte C. Weitere Kommentare können zusätzlich helfen. Auf eine eingehendere Dokumentation der Formeln verzichten wir hier.
Die Spalte D nutzen wir für die gegenseitige Verriegelung und Auslösung der Formeln: Die Formel in Spalte A wird immer nur dann ausgeführt, wenn die Zelle in Spalte D eine 1 enthält. Und als erstes wird durch die Formel diese Zelle gelöscht, um sicherzustellen, dass die Formel nur ein einziges Mal ausgeführt wird. Gleichzeitig wird die Formel in der folgenden Zeile zur Ausführung freigegeben. – In den Spalten E und F legen die Formeln Werte ab, die später wieder benötigt werden.
Die Formel 2.24 in Zelle A2 und weitere Formeln können wir zwar auch in Abb. 2.144 ff. sehen. Aber dort wird sie so umbrochen, dass sie nur mit Mühe interpretiert werden kann. Die ersten zwei Zeilen der Formel zeigen die Verriegelung mit dem Wert in Zelle D2, die Löschung dieses Wertes und das Entriegeln der Formel in der folgenden Zeile mit dem Wert 1 in Zelle D3.
Der Formelteil der ersten zwei Zeilen von Formel 2.24 wiederholt sich in allen folgenden Formeln in analoger Form. Er ist hiernach deshalb nur noch mit «…» angedeutet.
Auf diesen „Standardteil“ folgt der horizontale Suchlauf, für welchen der Bereich B1:UO1 angegeben wird. Dieser Bereich ist einzig dafür verantwortlich, dass der HSuchlauf über alle Spalten unseres Kalenders läuft. Welche Zeile des Rechenblatts dabei „abgesucht“ wird, ist völlig belanglos. Die Ausführung der „Folgewert-Formel“ ist an keine Voraussetzung geknüpft, deshalb die «1» als «Bedingung». Als Anfangswert dient der Vortag (deshalb «-1») des Datums in Zelle A1 des Rechenblatts «Agenda». Dieses Datum wird also zu Beginn der Ausführung des HSuchlaufs dem Wert «LfdResultat» zugeordnet. In jeder vom HSuchlauf durchlaufenen Spalte wird «LfdResultat», also das Datum, zuerst um einen Tag erhöht und dann in Zeile 3 eingesetzt.
Dort wird aber nicht das Datum als solches angezeigt, weil wir der Zelle ein Werteformat «Wochentag» zugeordnet haben. Trotzdem: Der Wert der Zelle ist das Datum und nicht etwa der Text des Wochentages. Das benützen wir in weiteren Formeln: In Zeile 2 soll immer am Montag die Wochennummer angezeigt werden.
Der HSuchlauf von Formel 2.25 in Zelle A3 sucht Zeile 3 aller Spalten der Agenda ab und überträgt, falls es sich um einen Montag handelt, das Datum aus Zeile 3 in Zeile 2. Sonst wird die Zelle gelöscht. Der Zeile ist das Werteformat «Datum KW» zugeordnet, das kurz und bündig mit «W» definiert ist. Erneut enthält die Zelle ggf. das Datum, das aber dank des zugeordneten Werteformates auf eine spezielle Art zur Anzeige gebracht wird. Es besteht somit keine Notwendigkeit, die Formel mit der Funktion «Kalenderwoche» zu ergänzen.
Für die nächste Formel, die den Tag in Zeile 4 überträgt, müssen wir nochmals etwas vorbereiten. Wir wollen ja alle Tage, an denen die Schule geschlossen ist, rot anzeigen lassen. Da gibt es zwar einerseits die nützliche Funktion «KlWerktagGER», bzw. «KlWerktagSUI», welche die Werktage in Deutschland und der Schweiz erkennt – allerdings, in Abhängigkeit von der benutzten Sprachversion, immer nur in einem der beiden Länder. Aber selbst innerhalb eines Landes gibt es oft zusätzliche regionale Feiertage. Dazu kommen die Tage, an denen unsere Schule geschlossen ist, obwohl es Werktage sind. Und schließlich haben wir auch eine Schule in Malta, RagTime aber keine Werktagsfunktion für dieses Land. Die im Folgenden beschriebene Lösung ist universell einsetzbar, also auch für München oder Malta und die dortigen Schulen.
Die maltesischen Feiertage finden wir mit Google und der Eingabe «Feiertag Malta» sofort. Wir übertragen diese in ein neues Rechenblatt «Feiertage». Die in Abb. 2.145 gezeigte Tabelle enthält nur diese Feiertage und müsste also noch durch die weiteren Tage ergänzt werden, an denen unsere Schule geschlossen ist.
Ob Sie die Feiertage einzeln eintippen oder für das zweite und dritte Jahr mittels Formeln aus dem ersten ableiten ist hier zwar nicht von Belang. Wir wollen aber die benötigten Formeln doch angeben. Formel 2.26 für Neujahr in Zelle A1 bezieht sich auf das Datum in Zelle A1 der Agenda.
Damit passt sich auch die Feiertagstabelle alljährlich automatisch dem rollenden Kalender an. Für die Feiertage mit konstantem Datum, z. B. für «St. Pauls Schiffbruch» am 10.2., lautet die Formel im ersten Jahr:
In der „Neujahrszeile“ des zweiten Jahres steht die Formel 2.28, die – dank der Verwendung relativer Adressierung – in alle Zeilen des zweiten und dritten Jahres kopiert werden kann.
Ein Spezialfall ist natürlich der Freiheitstag, der seinen Platz je nach Jahr mit dem Karfreitag tauschen kann. Zwar würde die Berechnung immer korrekt erfolgen, egal ob die Tage in der richtigen oder falschen Reihenfolge in der Tabelle stehen. Trotzdem ist die falsche Reihenfolge unschön und irritierend. In der Zeile für den ersten der beiden Tage steht die Formel 2.29 und für die zweite die Formel 2.30.
Die zwei letzten Formeln können – ebenfalls da sie relative Adressierung für den Bezug auf den Jahresanfang benützen – in die entsprechenden Zeilen der folgenden Jahre kopiert werden und dort die vorher eingesetzten Formeln ersetzen. Ergänzen Sie die Tabelle mit den Tagen, an denen die Schule sonst noch geschlossen ist. Dabei können Sie durchaus eine Zeile der Tabelle leer lassen, damit sich diese Tage deutlich von den Feiertagen abheben.
Und nun die Formel, die diese Tage in unseren Kalender überträgt und dort, zusammen mit den Wochenenden, rot anzeigen lässt. Erneut benützen wir ein Werteformat – das wir der Zeile 4 im Rechenblatt «Agenda» zuordnen – um die Darstellung zu beeinflussen. Diesmal wird es allerdings nicht um eine Darstellungsform des Datums gehen. Wir benutzen die Möglichkeit, negative Zahlen automatisch rot anzeigen zu lassen. Das Werteformat «Feiertage» definieren wir dafür wie Formel 2.31.
Also müssen wir dafür sorgen, dass in Zeile 4 an allen Tagen, die rot angezeigt werden sollen, eine negative Zahl steht. Dafür ist die Formel 2.32 in Zelle A4 des Rechenblatts «Kalenderberechnung» verantwortlich (siehe auch Abb. 2.146). Der HSuchlauf durchsucht Zeile 3. Aus dem dort gefundenen Datum wird mit der Funktion «TagVon» der Tag als reine Zahl extrahiert. Mit der Wenn-Funktion werden zwei Bedingungen – mit der Funktion «Oder» verknüpft – geprüft. Ist der Wochentag >5, so handelt es sich um einen rot anzuzeigenden Wochenendtag. Ebenfalls rot anzuzeigen sind die Tage, die in der eben erstellten Feiertagstabelle vorkommen.
Um das zu ermitteln wird die Suchlauf-Funktion in der Feiertagstabelle benützt. Es handelt sich also um verschachtelte Suchläufe, bei denen die «LfdZelle» des äußeren Suchlaufs – also des HSuchlaufs über Zeile 3 des Rechenblatts «Agenda» – mit «LfdZelle(1)» referiert wird und die geprüfte Zelle des inneren Suchlaufs – derjenigen in Spalte A der Feiertagstabelle – einfach mit «LfdZelle».
Diese beiden Werte werden verglichen. Stimmen sie überein, so ist der Tag ein Feiertag. Vor der Wenn-Funktion steht ein Multiplikationszeichen. Der mit «TagVon» ermittelte Tag wird je nach Ergebnis der Wenn-Prüfung mit -1 oder 1 multipliziert. Das Resultat wird in Zeile 4 eingesetzt. Damit Sie sehen, dass die Formeln tatsächlich richtig funktionieren, setzen Sie in Zelle D2 des Rechenblattes «Kalenderberechnung» mal eine 1 ein. Sofort werden die Formeln eine nach der anderen ausgeführt, so wie wir das programmiert haben, und der in Zelle D2 eingesetzte „Auslöser“ gleich wieder gelöscht.
Die Formel 2.33 in Zelle A5 ist geradezu trivial und bedarf keiner Erläuterung.
Das vorangehende Löschen der ganzen Monatszeile vereinfacht die folgende Formel, mit der jeweils nur zur Monatsmitte das aktuelle Datum eingesetzt und, dank des zugeordneten Werteformates «März», als Monatsname angezeigt wird. Einen kleinen „kosmetischen Luxus“ wollen wir uns noch leisten: Der Monat September benötigt am meisten Platz – 5 Spalten. Für den Fall dass für den ersten Monat weniger als 5 Tage angezeigt sind, wollen wir diesen Monatsnamen unterdrücken. Und wenn, dann soll er in der Mitte des angezeigten Bereichs erscheinen. Für die übrigen Monate zeigen wir den Monatsnamen immer am 15. des Monats an.
Die Formel 2.34 in Zelle A6 bearbeitet alle Monate außer dem ersten. Dieser HSuchlauf hat, im Gegensatz zu den vorangehenden, eine klare Bedingung: Der Formelteil für den Folgewert wird nur ausgeführt, wenn die betrachtete Zelle der 15. eines Monats ist. Ob aber das Datum aus Zeile 3 in Zeile 1 übertragen wird, hängt zusätzlich davon ab, ob die obige Bedingung nicht zum ersten Mal erfüllt ist (LfdZähler>1) oder der Basistag des Kalenders nach der Monatsmitte liegt (TagVon(Agenda!$A$1)>15).
Dann liegt der erste Treffer, der die Bedingung des Suchlaufs erfüllt, bereits im zweiten angezeigten Monat, dessen Name auf jeden Fall angezeigt werden muss. Die Formel 2.35 in Zelle A7 besteht im Grunde genommen aus zwei Teilen und hätte somit auch nochmals aufgeteilt werden können.
Eingangs wird ermittelt, welches der letzte Tag des ersten Monats des Kalenders ist. Dabei wird indirekt vorgegangen: Zuerst wird mit der SetzeZelle-Funktion das Datum des ersten Tages des folgenden Monats berechnet und davon dann ein Tag abgezogen. Von diesem Wert, wenn der erste Monat des Kalenders ein August ist also «31», wird der Tag des Basisdatums des Kalenders abgezogen. Damit ist bekannt, wie viele Tage dieses ersten Monats im Kalender sichtbar sind. Dieser Wert wird in Zelle E7 des Rechenblatts «Kalenderberechnung» zur späteren weiteren Benutzung abgelegt.
Der zweite Teil der Formel (ab «Wenn») prüft zuerst, ob mehr als 4 Tage des ersten Monats angezeigt sind. Ist diese Bedingung erfüllt, dann wird das Basisdatum in Zeile 1 der Agenda eingesetzt. Und zwar in derjenigen Spalte, die durch den die gerundete Hälfte des in Zelle E7 von «Kalenderberechnung» abgelegten Wertes indiziert wird. Dieses Basisdatum liegt auf jeden Fall im ersten angezeigten Monat. Dass daraufhin die Daten in den Zeilen 1 und 3 nicht übereinstimmen, ist belanglos, es wird ja nur der Monatsname angezeigt. Nun gilt es, die ersten Tage des Monats zu ermitteln.
Formel 2.36 in Zelle A8 legt zuerst den Index der ersten Kalenderspalte, also 2, in Zelle E9 der «Kalenderberechnung» ab. Beginnend bei dieser Zeile, werden für jeden gezeigten Monat die Indizes der ersten und der letzten Spalte in den Spalten E und F abgelegt. Dazu sucht der HSuchlauf alle Monatsersten. Bei jedem Treffer entspricht der «LfdIndex» des Suchlaufs dem Index der Tabellenspalte des Monatsletzten des Vormonats. Er wird in Spalte F abgelegt. Beachten Sie, dass der im zweiten SetzeZelle-Befehl angegebene Bereich erst in Zeile 10, also eine Zeile weiter unten beginnt. Deshalb wird der Index der Spalte des Monatsersten in der folgenden Zeile, Spalte E abgelegt. Mit jedem Treffer erhöht sich, dank der Verwendung der Trefferzahl («LfdZähler»), der Index zu dieser Hilfstabelle um 1. Da für den letzten angezeigten Monat das Monatsende außerhalb des abgesuchten Bereichs liegt, wird mit dem letzten Teil der Formel, dem dritten SetzeZelle-Befehl, der Index zur letzten Spalte des Kalenders, also zur Spalte UO, laufend in der folgenden Zeile der Hilfstabelle eingetragen.
Weshalb die Endzeile 47 bei den angegebenen Bereichen in Formel 2.36? Reiner Zufall! Vermutlich haben wir bei der Erstellung des Beispielsdokumentes als Bereichsende mal die Zeile 50 angegeben, danach 3 Zeilen gelöscht, und die Formeln wurden automatisch angepasst. Hauptsache, der angegebene Bereich ist mindestens so groß wie die Tabelle mit den Hilfszellen.
Als „Nachspeise“ folgen die Formeln in den Zeilen 9 bis 28 von «Kalenderberechnung». Mit ihnen wird die unterschiedliche Einfärbung der Monate in Zeile 1 erzeugt. Jede Formel ist für die Einfärbung der Spalten verantwortlich, die in der eben erzeugten Hilfswert-Tabelle in den Spalten E und F angegeben sind. Die Tabelle hat einen kleinen „Haken“: Je nach Basisdatum des Kalenders ist ein Monat mehr oder weniger im Kalender sichtbar, die Tabellenlänge also um eine Zeile länger oder kürzer. Diesem Umstand trägt die allerletzte Formel in Zelle A28 Rechnung (Abb. 2.148).
Könnten all diese Formeln in den Zeilen 10 bis 28 nicht durch eine einzige, von einem Suchlauf gesteuerte Formel ersetzt werden? Schon möglich – aber diese Konstruktion wäre wohl so kompliziert, dass selbst Experten ins Schwimmen geraten könnten. Manchmal gilt es abzuschätzen, ob sich der Aufwand für einen Versuch lohnt. Wir haben in diesem Fall verzichtet.
Formel 2.37 gilt für die erste dieser Zeilen, Zeile 9. Sie ist so formuliert, dass sie nach unten kopiert werden kann. Eine Voraussetzung dafür sind die Namen der beiden zuzuordnenden Füllvorlagen. Diese Namen – «Monat0» und «Monat1» – unterscheiden sich nur im letzten Zeichen, 0 oder 1. Um die korrekte Bezeichnung für einen variablen Bereich zu ermitteln, gibt es die MetaFormel-Funktion «Bereich», um eine Füllvorlage einem Bereich zuzuordnen, die Power Function «SetzeBereichFüllung».
Aufgepasst: Diese Funktionen können nicht einfach verschachtelt werden. Da hilft nur ein Trick! Wir lassen die ganze Formel als Text berechnen, in dem der zu füllende Bereich in der syntaktisch korrekten Form enthalten ist. Dieser Text wird dann als Argument in der MetaFormel-Funktion «RechneText» verwendet, die genau das macht, was ihr Name besagt – sie berechnet die durch den Text angegebene Formel genau so, wie wenn dieser Text in der Formelpalette der betreffenden Zelle angegeben gewesen wäre. Die Funktion «RechneText» wird immer dann benutzt, wenn Argumente einer Formel, wie in unserem Fall, zuerst berechnet werden müssen.
Interessant natürlich noch, wie wir die Abwechslung der Füllung bewirkt haben. Der Funktion «IstGerade(Zeile)» liefert den Wert 0 oder 1, je nachdem, ob die Formel in einer geraden oder ungeraden Zeile steht. Bei der Berechnung des Textes für die Formel wird damit automatisch zwischen den Füllvorlagen «Monat0» und «Monat1» abgewechselt. Natürlich hätten wir auch mit «Rosa Füllung» und «Schwarze Füllung» arbeiten können. Dann hätte aber entweder nur jede zweite Formel gleich gelautet, oder die Formel hätte mit einer zusätzlichen Wenn-Funktion die Namen der beiden Füllvorlagen zuordnen müssen. Die geschickte Namengebung für die beiden Füllvorlagen hat das Problem also vereinfacht.
Wenn Sie den Fall betrachten, der sich in unserem Beispiel, mit dem Basisdatum vom 7.8.2006 ergeben hat, so sehen Sie in Abb. 2.148, dass die beiden letzten Bereiche – gemäß den in den Zeilen 27 und 28 angegebenen Grenzen – überlappen. Mit diesem Basisdatum ist ein Monat weniger als maximal möglich in unserem Kalender sichtbar. Dem zweiten dieser beiden Bereiche darf also keine Füllung mehr zugewiesen werden. Deshalb sieht Formel 2.38 etwas anders aus als die vorangehenden. Die erste Abweichung hat allerdings einen anderen Grund. Es ist die letzte Formel unserer Sequenz. Sie muss also keine nachfolgende Formel mehr auslösen und der zweite SetzeZelle-Befehl fehlt deshalb im Vergleich mit den vorangehenden Formeln. Dann aber wird der Hauptteil der Formel nur ausgeführt, wenn die in den Zeilen 27 und 28 in Spalte F angegebenen Werte nicht übereinstimmen. Für «ungleich» kann entweder der Operator «≠» oder die Kombination «<>» verwendet werden. Sie sind gleichbedeutend. Die zweite Möglichkeit stammt aus früheren Zeiten, als viele Computer das Zeichen «≠» noch nicht kannten, ist aber deshalb verdienten Programmierern oft noch vertrauter.
Jetzt fehlt nur noch der Auslöser für das Rollen unseres Kalenders. Wir setzen die dafür benötigte Formel in Zelle A4 der Agenda. Sie erinnern sich: In Zelle A1 steht dank Formel 2.22 immer das Datum des Montags der aktuellen Woche.
Anfangs nächster Woche steht dort also ein „größeres“ Datum als in Zelle B3, wo der angezeigte Kalender beginnt. Also muss der Kalender jetzt rollen. Das macht er dank Formel 2.38.
Sobald eine solche Datumsdifferenz besteht, wird der Auslöser für die erste Formel unserer Sequenz in Zelle D2 des Rechenblatts «Kalenderberechnung» gesetzt. Für einen Testlauf der Formelsequenz können Sie ganz einfach selbst eine 1 in diese „Auslöserzelle“ eintragen. Und los geht's! Da gibt es so viel zu rechnen, dass sogar schnelle Computer einen Moment benötigen! Haben Sie Geduld! Nach ein paar Sekunden ist alles so angezeigt, wie wir es uns vorgenommen haben.
Natürlich gibt es viele Arten von Kalendern, bei denen es ganz andere Aspekte zu berücksichtigen gilt. Obige Anleitung kann Ihnen aber helfen, sich die Lösung selbst zu erarbeiten. Dazu gibt es ja noch die Expertenseiten bei RagTime.de, in denen Sie weitere Lösungen für Kalender finden. Dort sollten Sie sowieso immer wieder mal reinschauen.
Eigentlich befinden sich die Daten unserer Schüler im Dokument mit den Adressen, das wir früher in diesem Kapitel benützt haben. Im Formelkapitel F3 wird erläutert, wie Tabellen mir RagTime extrahiert, übertragen und sortiert werden können. Ebenso gut könnten Ihre Schüler in einer richtigen Datenbank erfasst sein, also mit FileMaker oder einer Datenbank, die eine ODBC-Schnittstelle aufweist. Dann kann RagTime mit «FileTime» oder mit «RagTime Connect» auf die Daten zugreifen.
Wie Sie zu den Daten kommen, ist aber für die Planung, auf die wir uns hier konzentrieren wollen, nicht von Belang. Gehen wir also davon aus, dass die Teilnehmerdaten mit folgenden Angaben im Rechenblatt «Tln» (kurz für «Teilnehmer») aufgeführt sind (siehe Abb. 2.149): In den Spalten A und B die Namen und Vornamen, das Datum des Kursbeginns in Spalte C, und dasjenige des Kursabschlusses in Spalte D. In Spalte E steht schließlich noch das Kursniveau. Die Tabelle ist nach Kursniveau («Level») und Kursbeginn sortiert. Hat ein Teilnehmer oder eine Teilnehmerin zwei Kursmodule gebucht, dann hat es dafür auch zwei Tabelleneinträge.
Im Level 1 kann nur zwei Mal jährlich an fest vorgegebenen Terminen für ein ganzes Semester eingetreten werden. In den übrigen Kursen kann dagegen jede Woche begonnen werden, da sie modular aufgebaut sind. Die Belegungsdauer ist aber konstant, immer ein halbes Jahr. Für das nachfolgende Vorgehen macht das allerdings keinen Unterschied. Diesem Umstand muss bereits bei der Erfassung der Teilnehmerdaten Rechnung getragen werden. Jeder Kurs umfasst maximal 12 Teilnehmer.
In Malta wird jeder Kurs nur einfach durchgeführt. Wir reservieren also in unserer Planungsagenda jeweils 12 Zeilen für einen Kurs und geben diesen Blöcken eine abwechselnde Hintergrundfüllung. Damit farblich keine Unruhe entsteht, benutzen wir dazu die gleichen Füllvorlagen wie im Kalenderkopf. Der leere Kalender ohne Belegungs- oder Planungseinträge sieht damit aus wie in Abb. 2.150.
In dieser Übersicht sollen die Teilnehmer mit ihren Namen eingetragen werden – wenn sie an einem Kurs teilnehmen, der in der ersten gezeigten Woche beginnt, oder der schon begonnen hat, soll der Name in Spalte A eingetragen werden. Ein Balken, der aber die Kalenderstruktur sichtbar lässt, soll die Kursdauer anzeigen. Für alle später beginnenden Kurse soll der Teilnehmernamen am Anfang des Belegungsbalkens erscheinen. Die Lösung benutzt dafür zwei verschiedene Formeln. Zwar wäre es möglich, diese Formeln so zu formulieren, dass sie jeweils alle vier Kurslevels behandeln. Davon wollen wir aber absehen – die Formeln sind ohnehin recht kompliziert, wie Sie gleich sehen werden. Wir zeigen und erläutern hier nur die Formeln für das erste Kursniveau im Detail und geben an, was in den Formeln für die anderen Levels zu ändern ist.
Wir benutzen wieder die gleiche Methode, wie bei der Berechnung der Kalenderdaten. Am einfachsten, wir legen im Inventar eine Kopie des Rechenblatts «Kalenderberechnung» an (einfach im Inventar packen und mit gedrückter “/”-Taste ein wenig ziehen) und nennen das Duplikat «Belegungsberechnung». Natürlich löschen wir die Einträge ab Zeile 2 in Spalte A (Formeln) und in den Spalten C:F (Kommentare und Hilfswerte). Die Formeln in Spalte B, welche ihrerseits die Formeln in Spalte A sichtbar machen, können wir dagegen stehen lassen. Auch in diesen Formeln stehen immer am Anfang die Verriegelungs-Funktion «SpezialWenn» sowie die beiden SetzeZelle-Befehle, mit denen die Aktivierung gelöscht und die nachfolgende Formel ausgelöst wird, in den nachfolgenden Formeldarstellungen wieder nur mit «…» angedeutet. Die ersten vier Formeln zeigt. Während der Formelerstellung kann ein Testlauf ausgelöst werden, indem die „Auslöserzelle“ auf 1 gesetzt wird.
Im ersten Schritt wollen wir also eine Formel erarbeiten, welche die Teilnehmer sucht und in die Agenda einträgt; und zwar die Teilnehmer, die einen Kurs belegen, der entweder schon begonnen hat, oder in der ersten gezeigten Woche beginnt. Letzteres ist im gezeigten Beispiel der Fall. Aber bei geeigneter Formulierung können diese beiden Fälle gemeinsam behandelt werden. Sie erahnen es schon und sehen es jetzt in Abb. 2.151, dass die Formel nicht einfach ist. Aber erschrecken Sie nicht, wir werden diese Schritt für Schritt durchgehen. Auf der ersten Zeile von Formel 2.40 (siehe Formel 2.41) wird ganz einfach der ganze Planungsbereich gelöscht, ab Zeile 5, der ersten Zeile von Level 1, bis Zeile 52, der letzten Zeile von Level 4, und von Spalte A, mit den Namenseinträgen, bis Spalte UO, der letzten Spalte des rollenden Kalenders.
Ein vertikaler Suchlauf steuert danach den ganzen Ablauf. Abgesucht wird die Teilnehmerliste «Tln». Gesucht werden diejenigen Einträge die gleich mehreren Bedingungen entsprechen, die mit «Und» verknüpft sind (siehe Formel 2.42). Die erste der Bedingungen lautet, dass nur Teilnehmer von Level 1 gesucht werden, also Zeilen mit dem Wert 1 in Spalte E (siehe Formel 2.43). «LfdIndex» liefert immer den Index zur gerade untersuchten Teilnehmerzeile.
Beachten Sie, dass dabei die Kopfzeile der Tabelle nicht explizite übersprungen wird. Diese Bedingung ist in der Kopfzeile sicher nicht erfüllt.
Als zweite Suchbedingung muss der Kursbeginn vor dem Basisdatum des Kalenders liegen, oder auf diesen Termin fallen, also der Wert in Spalte C kleiner oder gleich diesem Basisdatum in der Zelle A1 der Agenda sein (siehe Formel 2.44). Schließlich sollen aber auch Kursteilnehmer nicht erfasst werden – dies die dritte Bedingung – die ihren Kurs bereits beendet haben. Also muss das Schlussdatum in Spalte D größer sein als das Kalenderbasisdatum. Darum Formel 2.45. Auf diese dritte Bedingung folgt die schließende Klammer der Und-Funktion. Der Startwert des Suchlaufs ist bedeutungslos und wird einfach auf 0 gesetzt.
Nun soll also der Name des gefundenen Teilnehmers in Spalte A unserer Agenda eingetragen werden, und zwar natürlich auf die erste freie Zeile. Das Einsetzen erfolgt natürlich mit einem SetzeZelle-Befehl.
Bevor wir den Namen holen möchten wir hier, gleich wie im Formelkapitel F3, darauf hinweisen, dass wir die Funktion «Spaltenwert» bewusst vermeiden. Hätten wir z. B. in der Bedingung gemäß Formel 2.43 statt der etwas aufwändigen Index-Funktion die scheinbar einfachere Spaltenwertfunktion (also «Spaltenwert(5) für Spalte E) benutzt, und dann plötzlich in der Tabelle aus irgend einem Grund noch eine Spalte eingefügt, so wäre unser ganzes Formelgebäude in sich zusammengebrochen! RagTime kann nicht wissen, dass die absolute Zahl «5» eigentlich relativ gemeint ist, und sie bei einer solchen Änderung automatisch anpassen. Haben Sie schon mal versucht, einen solchen Fehler zu identifizieren, und dann auch noch alle Stellen zu finden, die korrigiert werden müssen? Da geben wir der Index-Funktion, deren Spaltenreferenz ggf. automatisch angepasst wird, klar den Vorzug.
Den Vornamen holen wir aus Spalte B, den Familiennamen aus Spalte A. Da Spalte A sicher die erste Spalte des Suchbereichs ist, können wir hier, statt einer Indexreferenz, die Funktion «LfdZelle» benützen. Die beiden Namensteile verknüpfen wir mit dem &&-Operator, der automatisch ein Leerzeichen einfügt (siehe Formel 2.46).
Der Name muss natürlich in Spalte A des Rechenblatts «Agenda» eingefügt werden, und zwar ab Zeile 5. Nun liefert unser Suchlauf mit der Funktion «LfdZähler» immer die Anzahl bereits gefundener Teilnehmer, beim ersten Teilnehmer, der alle Bedingungen erfüllt, also den Wert «1». Mit der Adressierung in Formel 2.47 wird also beim ersten Treffer der Name in Zeile 5 von Spalte A geschrieben, beim zweiten Treffer in Zeile 6, usw.
Sollen wir wieder, wie für die Monatszeile bei der Kalendererstellung, mit dem Befehl «SetzeBereichFüllung» arbeiten? Das wäre zwar eine Möglichkeit. Aber vielleicht haben Sie es beim Testen bemerkt – die Konstruktion mit «RechneText» und den variablen Bereichen, scheint sehr viel Rechenzeit zu beanspruchen. Und wir werden gleich noch einen zweiten Grund feststellen, warum wir einer anderen Lösung den Vorzug geben!
Wir haben uns für einen Pseudo-Balken entschieden, der dadurch entsteht, dass in jede Tageszelle eine Zeichenfolge gesetzt wird, welches – aneinander gereiht – eine Art Balken ergibt. Wir haben dafür in Zelle F2 und F3 je einen Text gelegt, den einen für weißen, den anderen für rosa Hintergrund gedacht. Die Tatsache, dass wir nicht den Hintergrund verändern, sondern den Zellen einen Inhalt geben, hilft uns später, um herauszufinden, ob ein bestimmter Termin schon besetzt ist oder nicht. Dazu hilft uns der Funktionsteil in Formel 2.48.
Der „abgesuchte“ Bereich für den horizontalen Suchlauf, mit dem der Balken erzeugt wird, ist eigentlich bedeutungslos. Wichtig ist, dass er in der ersten Kalenderspalte beginnt und genügend weit nach rechts läuft. Mit UO, der letzten Spalte des Kalenders, liegen wir weit hinter dem Endpunkt des zu erzeugenden Balkens, der ja ab Kalenderbeginn maximal ein halbes Jahr weit reichen wird. Die Ausführung der Folgewert-Formel des HSuchlaufs ist an keine Bedingung gebunden, deshalb die «1». Der Startwert ist auch hier bedeutungslos.
Mit dem SetzeZelle-Befehl wird die erwähnte Zeichenfolge samt Formatierung (dank dem «#») aus der Hilfszelle F2 übernommen. Als Zielbereich wird die gesamte Agenda für Level 1 bis 4, also von Spalte B bis Spalte UO, und bis Zeile 52 angegeben, damit dieser Formelteil beim Kopieren nicht geändert werden muss (siehe Formel 2.49).
Die Zeile, in welcher eingesetzt werden muss wird durch den äußeren, vertikalen Suchlauf gegeben. Weil zwei Suchläufe ineinander verschachtelt sind, muss die Funktion «LfdIndex» mit der «Schachtelungsebene» (1) ergänzt werden. Die Spalte ist durch den laufenden Index des horizontalen Suchlaufs gegeben (siehe Formel 2.50).
Zwei Sachen sind Ihnen vielleicht aufgefallen. Erstens wäre die «+4» in Formel 2.50 unnötig gewesen, wenn wir den Bereich in Formel 2.49 statt mit B1 mit B5 hätten beginnen lassen. Stimmt! Aber beim Kopieren der Formel für die anderen Kurslevel ist die Stelle, wo angepasst werden muss, auf diese Art leichter zu finden. Zweitens haben wir die SetzeZelle-Funktion „bedingungslos“ ausgeführt. Deshalb brauchen wir jetzt für den horizontalen Suchlauf eine Abbruchbedingung (Formel 2.51).
Der Suchlauf wird abgebrochen, sobald das Datum in Zeile 3 des Kalenders gleich oder größer ist als das beim Teilnehmer in Spalte D angegebene Schlussdatum. Auch hier müssen wir der Schachtelungsebene wieder Rechnung tragen. Und wir stellen fest: Es war doch richtig, für den Suchlauf die Zeile 3 als Suchbereich zu definieren. Nur so konnten wir das Datum der Spalte einfach mit «LfdZelle» referieren. Die vielen Klammern am Ende dieser Zeile schließen die Schachtelungsebene von LfdIndex, die Index-Funktion und den horizontalen Suchlauf.
Auch für den vertikalen Suchlauf in der Teilnehmerliste brauchen wir ein Abbruchkriterium (siehe Formel 2.52). Da diese Tabelle ja nach Level sortiert ist, können wir einfach feststellen, ob in Spalte E auf der nächsten Zeile ein Teilnehmer von Level 2 steht. Da wir hier nicht mehr innerhalb des inneren, horizontalen Suchlaufs sind, können wir wieder einfach mit «LfdIndex» adressieren. Haben wir nicht etwas übersehen? Um tatsächlich die nächste Zeile auf dieses Abbruchkriterium zu untersuchen, hätten wir doch «LfdIndex+1» schreiben müssen. Stimmt! Trotzdem wird nichts Falsches passieren, weil zwar diese Zeile noch bearbeitet wird. Sie fällt aber bei der kombinierten Bedingung des Suchlaufs durch und wird deshalb nicht verarbeitet.
Diese Formeln können Sie erst mal für den Levels 2 nach unten kopieren. Dort entfernen Sie die LöscheBereich-Funktion ganz am Anfang. Diese Formel können Sie dann weiter, für Level 3 und 4, nach unten kopieren. Was müssen Sie anpassen?
Wir beziehen uns hier auf die sezierten Teilformeln, obwohl die Anpassungen natürlich in der Formel als Ganzes gemacht werden müssen. Im Vergleich von Formel 2.43 muss statt «1» der jeweilige Level stehen. In den beiden Formeln, in denen zum LfdZähler jeweils 4 addiert wurde, FFormel 2.47 und Formel 2.50, muss dieser Wert pro Level um jeweils 12 erhöht werden. In Formel 2.49 passen Sie für Level 2 und 4 noch die Referenz zum einzusetzenden Zeichen an: Zeile 3 statt Zeile 2, damit das Zeichen zum Hintergrund passt.
Und schließlich muss im Abbruchkriterium des äußeren Suchlaufs (Formel 2.52) bei Level 2 und 3 jeweils mit dem nächsten Level, also 3 und 4 verglichen werden. In der entsprechenden Formel für Level 4 in Zelle A5 steht ein anderes, viel einfacheres Abbruchkriterium, wie in Formel 2.53. Hier müssen wir nicht mehr den Level in Spalte E prüfen, sondern können einfach schauen, ob die nächste Tabellenzeile leer ist, also auch in Spalte A keinen Namen mehr enthält. Da dies die erste Spalte des Suchlaufs ist, genügt «LfdZelle» als Referenz. In Formel 2.53 schließen die drei Klammern die IstLeer-Bedingung, den vertikalen Suchlauf und die SpezialWenn-Verriegelungsfunktion.
Jetzt sieht unsere Planung schon ganz ordentlich aus (Abb. 2.152). Wirklich spannend wird's aber erst in den hinteren Regionen, wo sich bei den höheren Leveln die Kursbelegungen überlappen.
In den höheren Kursmodulen können wir bei Treffern nicht mehr einfach einen Teilnehmer in der nächsten Zeile einsetzen, sondern müssen die erste freie Zeile erst suchen. Trotzdem wiederholen sich die Strukturen der eben analysierten Formel. Vieles wird uns bekannt vorkommen. Auch hier erläutern wir wieder nur die Formel für Level 1 (Formel 2.54; Abb. 2.153) im Detail.
Die einleitenden Befehle sind auch hier wieder nur angedeutet. Der Suchbereich des vertikalen Suchlaufs und die erste seiner drei Bedingungen stimmen mit Formel 2.42 und Formel 2.43 überein. Die zweite Bedingung (Formel 2.55) verlangt, dass der Kursbeginn nach dem Basisdatum des Kalenders liegen muss, und die dritte (Formel 2.56) stellt sicher, dass keine Kurse erfasst werden, die erst nach der Planungsperiode beginnen, deren Startdatum also größer ist als das Datum in der letzten Kalenderspalte (siehe Formel 2.56).
Da die Spalte mit dem Datum des Kursbeginns noch mehrfach gebraucht wird, legen wir sie mit einem SetzeZelle-Befehl in der Hilfszelle E6 ab. Dieser Spaltenindex ergibt sich aus der Differenz des Datums des Kursbeginns und dem Basisdatum des Kalenders (errechnet mit der Funktion «DTag») mit einer Korrektur um 1 (siehe Formel 2.57).
In dieser Spalte muss dann nach der ersten freien Zeile im Bereich der Level-1-Kurse gesucht werden, also ein vertikaler Suchlauf über die Zeilen 5 bis 16 des Planungsbereichs (siehe Formel 2.58).
Die Zelle in der Spalte, deren Index wir eben in der Hilfszelle E6 abgelegt hatten, muss leer sein. Um diese Bedingung zu formulieren eignet sich die Funktion «Spaltenwert» (siehe Formel 2.59).
Nein, wir mussten nicht über unseren Schatten springen, um diese Funktion zu verwenden. Hier benutzen wir sie ja nicht mit einem absoluten Spaltenindex, der bei einer Tabellenänderung zu Fehlern führen kann, sondern mit dem eben ermittelten, sicher korrekten in Zelle E6 abgelegten Index.
Den Index der gefundenen ersten leeren Zeile legen wir in Hilfszelle F6 ab. Mit der gefundenen leeren Zeile (1. Treffer) wird der Suchlauf abgebrochen (siehe Formel 2.60).
An diesem entscheidenden Punkt, wollen wir aber kurz innehalten und uns ansehen, weshalb denn diese Zeile leer sein kann oder etwas enthält. Ist auf der gleichen Zeile schon ein Teilnehmer für den Kurs eingeplant, so haben wir ja mit Formel 2.49 einen „Balken“ erzeugt, indem wir Zeichen in die Zellen geschrieben haben, so weit wie der Kurs dauerte. Die Sache hat allerdings einen Haken. Für die Kurse, die nicht mit dem Kalenderbeginn zusammenfallen, soll ja am Balkenbeginn der Name des Kursteilnehmers stehen. Den werden wir mit der nächsten Formel dort einsetzen. Damit er aber auch angezeigt wird, müssen die nächsten Zellen leer sein. Der nächste Kursteilnehmer kann aber frühestens am folgenden Montag beginnen. Wir müssen also nur dafür sorgen, dass diese Zelle, eine Woche nach Kursbeginn, sicher belegt ist.
Doch zuerst wollen wir den Namen einsetzen. Der Vorname wird gleich aus der Teilnehmertabelle geholt wie in Formel 2.46. Warum können wir den Familiennamen nicht wie dort mit der Funktion «LfdIndex» holen?
Das hat mit dem Rest des eingesetzten Wertes zu tun! Dem Namen fügen wir nämlich ein Leerzeichen und sieben Mal das Balkenzeichen bei – mit Formatübernahme (siehe Formel 2.61). Wenn der Vornamen und Namen nicht auch mit Format übernommen werden, dann dominiert das Format des „Balkenzeichens“. Und die Funktion «LfdZelle» liefert immer nur einen formatlosen Wert. Da nützt auch kein davor gesetztes «#»-Zeichen. Mit den sieben „Balkenzeichen“ überbrücken wir auch bei kurzen Namen die leeren Zellen der ersten Kurswoche - die eben leer gelassen werden müssen, damit der Name überhaupt angezeigt wird.
Bei ganz kritischer Betrachtung der Ausgangsdaten werden Sie feststellen, dass ein Kursteilnehmer im Level 4 mit Kursbeginn 2. Januar 2007 eingetragen ist. Das ist aber kein Montag, sondern der Dienstag nach Neujahr. Vielleicht will es der Zufall, dass ein anderer Kursteilnehmer im Level 4 am folgenden Montag beginnen möchte. Hier würde unsere Planung den Kurs doppelt belegen. Sollen wir also unsere Administration anweisen, den Kursbeginn immer auf Montag zu terminieren, auch wenn dieser Tag ein Feiertag sein sollte? Wohl kaum, denn da sind Fehler vorprogrammiert. Wer denkt schon immer an eine derartige Weisung! Wir wollen hier die erforderlichen Anpassungen nicht in der Hauptformel vornehmen, sondern sie nur skizzieren:
Die Berechnung des in Hilfszelle E7 abzulegenden Spaltenindexes (Formel 2.57) muss so korrigiert werden, dass der Spaltenindex des vorangehenden Montags ermittelt wird, falls der Tag des Kursbeginns kein Montag sein sollte. Das ist gar nicht so kompliziert. Statt Formel 2.57 müsste es wie Formel 2.62 heißen. Zurück zum Namen mit dem anschließenden kurzen Balken, den wir noch einsetzen müssen. Die Adresse lautet wie in Formel 2.63. Also der Kalenderbereich für Level-1-Kurse, indiziert durch die beiden in den Hilfszellen E6 und F6 abgelegten Werte.
Wie bereits ausgeführt: Damit der Name angezeigt wird, müssen die nächsten paar Zellen leer gelassen werden. Damit der Kurs aber nicht plötzlich eine Woche später nochmals belegt wird, muss der folgende Montag wieder mit dem „Balken“ besetzt sein. Dem tragen wir in der Bedingung Rechnung, die für den horizontalen Suchlauf gilt, der den Balken erzeugt. Abgesehen von der Bedingung in Formel 2.64 entspricht der Suchlauf demjenigen in der ersten Formelgruppe, Formel 2.48 und Formel 2.49, nur dass wir in der zweiten dieser Formeln den Bereich auf die Zeilen unseres Kurs-Levels beschränken müssen (siehe Formel 2.65).
Die Abbruchkriterien der Suchläufe sind identisch mit denjenigen in der ersten Formelgruppe. Die für die anderen Kursmodule in den kopierten Formeln erforderlichen Anpassungen sind ähnlich wie in der ersten Formelgruppe. Finden Sie diese nötigen Anpassungen selbst – Abb. 2.154 kann Ihnen dabei behilflich sein!
Ganz am Schluss müssen wir noch dafür sorgen, dass nicht nur der Kalender rollt, sondern auch die Planung mitrollt. Fügen Sie also dort, wo in allen vorangehenden Formeln eine SetzeZelle-Befehl zur Auslösung der nächsten Formel steht, in Formel 2.38 auch einen solchen ein, der die Zelle D2 im Rechenblatt «Belegungsberechnung» auf 1 setzt. So löst das Ende der Kalender-Neuberechnung auch eine Neuberechnung der Planung aus. Wenn Sie erfolgreich waren, dann sieht ihre Planung im hinteren Bereich jetzt so aus wie in Abb. 2.150.
Sind Sie ins Schwitzen gekommen? Ihr Computer auch! Auf einem MacBook Pro mit 1,83 GHz Intel Core Duo-Prozessor und 2 GB RAM dauerte die Berechnung von Kalender und Planung mit den in Abb. 2.145 gezeigten Teilnehmerdaten immerhin 35 Sekunden.
Und schließlich noch eine kritische Bemerkung zur Formeldarstellung in RagTime – am Schluss dieses formellastigen Abschnitts über Kalender und Planung sicher angebracht: Es wäre schon sehr nützlich, wenn die Formeln in der RagTime-Formelpalette umbrochen werden könnten, ähnlich wie wir das hier gemacht haben. Und automatisch mehrfarbige Klammern, immer die gleiche Farbe für die zusammengehörenden Klammern, wünschen wir uns auch schon lange! Auf der positiven Seite verbuchen wir die beeindruckende Leistungsfähigkeit der Funktionen und Formeln. Wer ein paar Übungen durchexerziert, kommt immer wieder ins Staunen – aber auch immer wieder auf Ideen, wie sich Probleme optimaler lösen lassen.