Schritt 15: Makros

Top  Previous  Next

Je weiter eine Anwendung fortschreitet, desto mehr Features und Annehmlichkeiten möchte man dem Benutzer bieten. Obwohl Ihre TurboDB Studio Applikation schon von Beginn an alles hat, was man zum Pflegen und Auswerten der Daten benötigt, kommt man irgendwann bei den  Zusatzfunktionen und maßgeschneiderten Eingabehilfen einmal an den Punkt, wo man wirklich selbst Hand anlegen muss. Mit Hilfe von Makros, selbstdefinierten Schaltern und schließlich auch eigenen Menüpunkten können Sie fast alle Ihre Wünsche erfüllen.

Als kleines Beispiel versehen wir das Kunden-Formular mit einigen Knöpfen zur vereinfachten Bedienung. Einer soll die Suche nach einem bestimmten Kunden vereinfachen, der andere den Serienbrief ausdrucken.

1.Entwerfen Sie das Kundenformular.
2.In der Palette sehen Sie auf der Seite der Standard-Elemente ein Symbol mit der Beschriftung Schalter. Ziehen Sie zwei davon auf Ihr Formular.
3.Bei den Eigenschaften des ersten Schalters tragen Sie bei der Eigenschaft Text den Text Suchen... ein.
4.Weiter oben finden Sie die Eigenschaft BeimAnklicken, das die Befehle aufnehmen soll, die beim Anklicken ausgeführt werden. Hier tragen Sie folgendes ein:
Run("KUNDEN.Rundschreiben", 2)
5.Beim zweiten Schalter schreiben Sie Suchen... in das Feld der Eigenschaft Text.
6.Da dieser Schalter mehr als einen Befehl enthält, wäre es recht unübersichtlich, wenn man das alles in die kurze Zeile quetschen würde. Doppelklicken Sie deshalb die Eigenschaft BeimAnklicken oder wählen Sie aus dem Kombinationsfeld den Eintrag <neues Makro>. Es öffnet sich der Texteditor und TurboDB Studio legt im Modul auch gleich einen sogenannten Funktionsrumpf für Sie an: Das Gerüst eines Makros, das Sie nur noch mit Inhalt füllen müssen.
7.Schreiben Sie nun folgende Befehle zwischen die Zeilen procedure und endproc:
VarDef name: String;
Input('Name des gesuchten Kunden:', '', 0, name);
Suchen("Kunden.id", name);
8.Speichern Sie das Modul und schließen Sie den Editor.
9.Wenn Sie wollen, können Sie noch den Rahmen der Schalter anpassen, damit sie optisch zum Rest des Formulars: UltraFlach.
10.Speichern Sie Ihre Änderungen am Formular und testen Sie es dann durch einen Klick auf den Formular Testen-Schalter oder durch die [F9]-Taste.
11.Der Schalter Drucken öffnet die Druckvorschau und zeigt Ihnen das Rundschreiben an die Kunden.
12.Versuchen Sie nun den Schalter Suchen.... Ein Dialogfeld mit Eingabefeld fordert Sie auf, einen Namen einzutragen. Tippen Sie Renn ein und drücken Sie dann Ok. Im Formular wird ein passender Eintrag gesucht und "Eddi Rennfahrer" gefunden. Falls Sie stattdessen eine Fehlermeldung erhalten, vergleichen Sie die obigen Angaben noch einmal mit Ihrem Formular.

 

Tut_15_FormWithButtons

Mit Schalter können Sie selbst erstellte TurboPL-Makros auslösen und so dem Benutzer die Arbeit erleichtern

 

Was steckt dahinter? Hier der Blick hinter die Kulissen:

Beim ersten Schalter genügt ein einziger Aufruf, um die gewünschte Aktion auszulösen. Der TurboPL-Befehl Run führt einen Bericht oder Datenbankjob aus. Welchen, das bestimmen Sie indem Sie den vollständigen Namen des Berichts bzw. Datenbankjobs in Klammern hinter den Befehl schreiben. Alles was in Klammern hinter einem TurboPL-Befehl steht, wird als Parameter (auch als Argument genannt) übergeben und bestimmt, was genau der Befehl machen soll. Der zweite Paramter des Befehls bestimmt, wohin der Ausdruck erfolgen soll. Mit 0 wird der Druck-Dialog aufgerufen, 1 druckt den Bericht ohne Nachfrage auf dem in Windows eingestellten Standard-Drucker, 2 startet ohne Nachfrage die Druckvorschau und 3 druckt gar nicht, sondern leitet die Ausgabe in eine Datei um, deren Format Sie vorher mit mit dem Befehl SetzeAusgabeDatei festlegen können.

Beim zweiten Schalter passiert schon etwas mehr. Die verwendeten Befehle sollen nun etwas ausführlicher erklärt werden.

VarDef teilt TurboDB Studio mit, dass es eine Variable anlegen soll. VarDef name bedeutet folglich, dass die angelegte Variable unter dem Bezeichner name zur Verfügung stehen soll. VarDef name: String teilt TurboDB Studio mit, dass in der neuen Variable eine Buchstabenkette (engl.: String = Zeichenkette)  - also Text - gespeichert werden soll.
Input öffnet ein Fenster mit einem Text und einem Eingabefeld. In dieses trägt der Benutzer etwas ein und drückt dann Ok oder Abbruch. Was er eingetippt hat steht anschließend in unserer Variablen name und kann weiterverarbeitet werden. Das Dialogfeld von Input hat normalerweise keine Überschrift, Sie können jedoch eine festlegen, indem Sie hinter dem ersten Text noch einen zweiten angeben:

Input("Name des gesuchten Kunden:", "Nach einem Kunden suchen", 0, name);

Die 0 nach dem Text für die Überschrift bedeutet, dass es sich bei dem eingetippten Text nicht um ein Passwort handelt. Schreibt man an diese Stelle eine 1, so wird der eingegebene Text als Sternchen dargestellt, so wie das bei Passworteingaben unter Windows üblich ist.

Die Prozedur (anderes Wort für Funktion, Befehl) Suchen entspricht dem Menüpunkt Suchen. Eine Index-Suche nach dem angegebenen Text wird durchgeführt. Der zu verwendende Index steht im ersten Argument des Aufrufs, der Suchbegriff im zweiten. In unserem Beispiel wird nach einem Eintrag gesucht, bei dem der Name mit einer bestimmten Zeichenkombination beginnt. Die Indexdatei Kunden.id enthält einen Index über Name und Vorname und kann also gut verwendet werden. Der Suchbegriff selbst wurde von der Funktion Input in die Variable name eingetragen und kann direkt an die Funktion Suchen weitergegeben werden.

Sie sehen, auch die Arbeit mit Makros ist mit TurboDB Studio sehr einfach. Die Makrosprache umfaßt einige hundert verschiedene Befehle von A wie ActivateForm (öffnet ein Formular) bis Z wie Zurückblättern (zeigt die vorherige Seite im Formular an). Eine vollständige Liste nach Sachgebieten geordnet finden Sie in der Hilfe unter TurboPL Referenz.

Mehr über TurboPL und das Schreiben von Makros erfahren Sie in der Hilfe im Kapitel Aufgaben / Makros und Programme einsetzen.