Formeleditor

Im Beitrag Formelberechnung habe ich bereits gezeigt, wie man eigene Formeln verwenden kann. Für eine Anwendung wäre es jedoch schön, wenn der Anwender selbst Formeln erstellen könnte und zwar mit vorgegebenen Feldern und Operationen.

Dies ist möglich mit dem Formeleditor. Gleichzeitig wird hier für die Prüfung und Evaluierung der Formeln keine Funktionsbausteine mehr verwendet, sondern Klassen. Aber der Reihe nach…

Formeleditor

Der Formeleditor wird durch den Funktionsbaustein FOBU_DIALOG_START aufgerufen. Die Verwendung wird in mehreren Beispielprogrammen gut demonstriert (siehe unten).

In einem Eingabefeld kann man die Formel entweder direkt eingeben (Expertenmodus) oder man kann die einzelnen Komponenten per Drag and Drop oder Doppelklick einfügen.

Formeleditor Eingabe

Die Elemente des Editors lassen sich gezielt steuern. In den Beispielprogrammen wird ersichtlich, was wie verwendet werden kann.

Formeleditor

Einige Formeln lassen sich mit einer Hilfefunktion einfügen (Kleines grünes PLUS-Icon rechts neben den Sortieren Buttons):

Formel einfügen

Klassen

CL_FOBU_FORMULA

Um mit dem Editor kommunizieren zu können, wird diese Klasse benötigt.

CL_FOEV_FORMULA

Diese Klasse wird verwendet, um die Formeln zu speichern, zu laden, zu prüfen und auszuwerten.

CL_FOBU_CONNECTOR

Sobald eigene Felder verwendet werden sollen, müssen diese mithilfe der Klasse definiert und bekannt gemacht werden. Für jedes Feld kann ein eigenes Icon definiert werden:

Formeleditor eigene Felder

Demoprogramme

 Programm  Bezeichnung
 SFBE_EXAMPLE1 Beispielprogramme FoBuEv: Einfachst-Aufruf
 SFBE_EXAMPLE2 Beispielprogramme FoBuEv: Aufruf mit eigenen Feldern
 SFBE_EXAMPLE3 Beisp.Prog FoBuEv: Aufruf mitTypprüfung, eigenem GUI-Status und TraceDer Trace wird im Menü eingeschaltet!

Formel_trace

 SFBE_EXAMPLE4 Beisp.Prog FoBuEv: Aufruf mit eigenen Funktionen
 SFBE_EXAMPLE5 Beisp.Prog FoBuEv: Implementierung einer Methode per FoBuEv
 SFBE_EXAMPLE6 Beisp.Prog FoBuEv: Aufruf mit eigenen Drucktasten und IF-Funktion
 SFBE_EXAMPLE8 Beisp.Prog FoBuEv: Rechnen mit Währungsbeträgen, Mengen und Preisen
RS_FOBU_METHOD_EXAMPLE Beispielprogramm für Formula Builder Methoden