4D v14.3Variablen |
||
|
4D v14.3
Variablen
Variablen
Eine Variable ist eine Speicheradresse. Sie sprechen sie mit ihrem Namen an und weisen ihr einen Wert zu. Beispiel: Sie haben zwei Datenfelder: Nettobetrag ohne MwSt. und MwSt.-Betrag. Sie benötigen nun kein drittes Datenfeld mehr, um den Bruttobetrag mit Mehrwertsteuer zu speichern. Es genügt eine Variable, in der der Brutto-Betrag immer neu berechnet wird. Ein Variable kann von folgendem Datenfeldtyp sein:
(*) Im Unicode Modus sind Variablen vom Typ String oder Text identisch. Im ASCII-Kompatibilitätsmodus ist ein String eine feste alphanumerische Zeichenkette bis zu 255 Zeichen. Sie können Variablen (außer Zeiger oder BLOB) auf dem Bildschirm darstellen, Daten darin eingeben und sie in Berichten drucken. Variablen mit eingebbarem oder nicht-eingebbarem Bereich verhalten sich wie Datenfelder. So sind auch dieselben Eingabekontrollen verfügbar:
Variablen können auch folgende Aktionen ausführen:
Sie können eine Variable einfach durch Benutzen erzeugen. Sie müssen sie nicht formal wie bei Datenfeldern anlegen. Beispiel: Für eine Variable, die das aktuelle Datum plus 30 Tage angibt, schreiben Sie: vDate:=Current date+30 4D erstellt vDate und gibt das entsprechende Datum an. Der Code liest “vDate gibt das aktuelle Datum plus 30 Tage an”. Sie können diese Variable in Ihrer Datenbank beliebig verwenden, also z.B. in einem Datenfeld vom gleichen Typ speichern: [MyTable]MyField:=vDate In einigen Fällen benötigen Sie Variablen, die als ganz bestimmter Typ definiert sind. Weitere Informationen zu Variablen in einer Datenbank finden Sie im Kapitel Compiler. Sie können Daten in Variablen einsetzen oder herauskopieren. Im ersten Fall weisen Sie Daten einer Variablen zu. Dafür verwenden Sie den Zuordnungsoperator (:=). Mit diesem Operator weisen Sie auch Daten einem Datenfeld zu. Schreiben Sie den Namen der zu erstellenden Variablen auf die linke Seite des Zuordnungsoperators. Die Anweisung vNumber:=3 erstellt die Variable vNumber und setzt die Zahl 3 ein. Existiert die Variable vNumber bereits, wird nur die Zahl 3 eingetragen. Natürlich sollten Sie aus Variablen auch Daten entnehmen können. Wieder verwenden Sie den Zuordnungsoperator. Wollen Sie den Wert von vNumber in das Datenfeld [Products]Size, einsetzen, schreiben Sie die Variable vNumber auf die rechte Seite des Zuordnungsoperators:
Wichtig: Verwechseln Sie nicht den Zuordnungsoperator (:=) mit dem Vergleichsoperator (=). Zuordnen und Vergleichen sind ganz unterschiedliche Vorgänge. Weitere Informationen dazu finden Sie im Abschnitt Operatoren. Der Geltungsbereich einer Variablen bestimmt die Ebene(n), in denen ihr Wert sinnvoll ist. 4D kennt drei unterschiedliche Variablen:
Eine lokale Variable gilt nur für die Methode, in der sie benutzt wird. Sie verwenden eine lokale Variable, um:
Der Name der lokalen Variablen beginnt immer mit einem $-Zeichen und kann bis zu 30 Zeichen lang sein. Längere Namen werden entsprechend gekürzt. In einer Datenbank mit vielen Methoden und Variablen benötigen Sie eine Variable oft nur in der gerade benutzten Methode. Sie können eine lokale Variable in der Methode erstellen und einsetzen, ohne prüfen zu müssen, ob Sie denselben Variablennamen schon anderweitig verwendet haben. Ein Benutzer benötigt in einer Datenbank oft nur eine ganz bestimmte Information. Das ist z.B. über den Befehl Request möglich. Dieser zeigt eine Meldung an, die der Benutzer beantworten muss. Der Befehl gibt dann die vom Benutzer eingegebene Information zurück. Diese Information muss normalerweise nicht sehr lange in der Methode verbleiben. Das ist eine typische Anwendung für eine lokale Variable. Hier ein Beispiel: $vsID:=Request("Geben Sie Ihre Kennung ein:") Diese Methode fordert den Benutzer auf, eine Nummer einzugeben, setzt die Antwort in eine lokale Variable, $vsID und sucht dann nach der eingegebenen Nummer. Die lokale Variable $vsID wird aus dem Speicher entfernt, sobald die Methode endet. Das ist korrekt, denn die Variable wird nur einmal und nur in dieser Methode verwendet. Eine Prozessvariable ist nur dem Prozess bekannt, in dem sie geschrieben wurde. Sie ist für die Prozessmethode und alle Methoden verfügbar, die von diesem Prozess aus aufgerufen werden. Eine Prozessvariable hat kein Zeichen vor dem Namen und kann bis zu 30 Zeichen lang sein. Im interpretierten Modus werden Variablen dynamisch verwaltet, d.h. sie werden im Speicher “on the fly” erstellt und wieder entfernt. Im kompilierten Modus teilen sich alle erstellten Prozesse (Benutzerprozesse) dieselbe Definition der Prozessvariablen, wobei jeder Prozess für jede Variable eine andere Instanz hat. So ist die Variable myVar eine Variable im Prozeß P_1 und eine andere im Prozess P_2. Ein Prozess kann mit den Befehlen GET PROCESS VARIABLE und SET PROCESS VARIABLE Prozessvariablen aus einem anderen Prozess “peek and poke”. Verwenden Sie diese Befehle beim Programmieren nur für die von 4D dafür vorgesehenen Situationen:
Weitere Informationen finden Sie im Kapitel Prozesse und in der Beschreibung dieser Befehle. Interprozessvariablen sind allen Prozessen der Datenbank mit ihrem Wert bekannt. Sie dienen hauptsächlich zum Informationsaustausch zwischen den einzelnen Prozessen. Ihr Name beginnt mit den Symbol <>, ein “kleiner als” Zeichen gefolgt von einem “größer als” Zeichen. Er kann bis zu 30 Zeichen lang sein. Hinweis: Diese Syntax gilt für Windows und Macintosh. Auf Macintosh kann auch das Zeichen ◊ benutzt werden, dieses erhalten Sie mit der Tastenkombination Umschalt-/Wahltaste + v. Im Client/Server-Betrieb greifen alle Rechner (Client und Server) auf dieselbe Definition der Interprozessvariablen zu, aber jeder Rechner hat für jede Variable eine andere Instanz. Im Formulareditor werden beim Benennen von aktiven Objekten — Schaltfläche, Optionsfeld, Kontrollkästchen, rollbarer Bereich usw. — automatisch Variablen mit demselben Namen angelegt. Erstellen Sie z.B. eine Schaltfläche mit dem Namen MyButton, wird eine Variable mit Namen MyButton angelegt. Verwechseln Sie bitte nicht den Namen der Schaltfläche mit deren Inhalt. Mit Variablen für Formularobjekte steuern und verwalten Sie die Objekte. Wurde z.B. die Schaltfläche angeklickt, wird die dazugehörige Variable auf 1 gesetzt; ansonsten hat sie den Wert 0. Über eine einem Thermometer zugeordnete Variable können Sie die aktuellen Einstellungen ablesen und ändern. Ziehen Sie z.B. ein Thermometer auf eine neue Einstellung, ändert sich der Wert der Variablen, um die neue Einstellung anzuzeigen. Genauso wird, wenn eine Methode den Wert der Variablen ändert, das Thermometer neu gezeichnet, um den neuen Wert anzuzeigen. Weitere Informationen zu Variablen und Formularen finden Sie im Handbuch 4D Designmodus und im Kapitel Formularereignisse. Sie können es 4D überlassen, Variablen zu Ihren Formularobjekten (Schaltflächen, eingebbare Variablen, Optionsfelder, etc.) dynamisch und gemäß Ihren Bedürfnissen zu erstellen. Dafür lassen Sie in der Eigenschaftenliste das Feld "Variablenname" für das Objekt leer: Ist beim Laden des Formulars eine Variable nicht benannt, erstellt 4D eine neue Variable für das Objekt, mit einem berechneten Namen, der im Bereich der Prozessvariablen des Interpreters einmalig ist (d.h. diese Funktionsweise ist sogar im kompilierten Modus verwendbar). Diese temporäre Variable wird beim Schließen des Formulars zerstört. Damit dieses Prinzip im kompilierten Modus funktioniert, müssen dynamische Variablen explizit typisiert werden. Dafür gibt es zwei Möglichkeiten:
Im 4D Code ist der Zugriff auf dynamische Variablen durch einen Zeiger möglich, der über den Befehl OBJECT Get pointer aufgerufen wird. Zum Beispiel: // Der Variablen für das Objekt "tstart" die Zeit 12:00:00 zuweisen Diese Funktionsweise hat zwei Vorteile:
Hinweis: Gibt es keinen Variablennamen, wird der Objektname in im Formulareditor in Anführungszeichen angezeigt (wenn das Objekt standardmäßig einen Variablennamen anzeigt). Einige Variablen legt 4D selbst an. Sie dürfen nicht neu definiert oder neu typisiert werden. Sie sind beim ersten Öffnen der Datenbank noch nicht angelegt. Sie werden erst beim ersten Aufruf der Aktion, die die Variable erzeugt, von 4D definiert. Die wichtigste Systemvariable ist OK. Diese Variable aktualisiert 4D laufend. Mit ihr fragen Sie ab, ob eine Eingabe bestätigt oder abgebrochen wurde, also ob der Datensatz gesichert wurde oder ob der Importvorgang abgeschlossen wurde. Wurde ein Vorgang erfolgreich abgeschlossen, hat die Systemvariable OK den Wert 1, ansonsten den Wert 0. Weitere Informationen über Systemvariablen finden Sie im Abschnitt Systemvariablen. |
EIGENSCHAFTEN
Produkt: 4D SIEHE AUCH
Ablaufsteuerung ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v12.4) Geerbt von :
Variablen ( 4D v11 SQL Release 6) |