Automatisch Notes-Applikationen generieren
Remo Gisi 7 May 2015 16:50:42
Wir Informatiker möchten immer möglichst viel automatisieren - das gilt natürlich auch für unsere eigene Arbeit, die Programmierung.Bei Notes-Applikationen können wir dies mittels Meta-Programmierung.
Von Meta-Programmierung sprechen wir dann, wenn unser Programm nicht mit normalen Daten (Mails, Dokumenten, Zahlen) arbeitet, sondern mit Programmen.
Mittels Meta-Programmierung können wir also automatisch neue Programme erstellen oder bestehene Programme verändern.
Hier ein Beispiel:
Für eine neue Applikation haben wir bereits einige Entitäten definiert, die jeweils eine zugehörige Maske haben:
Auf jeder dieser Maske haben wir spezielle Felder definiert, z.B. bei der Maske Person die Textfelder für Vorname und Nachname:
Nun möchten wir die zugehörigen Ansichten dazu erstellen, und da es sich um mehr als 2 Masken handelt sind wir - klar - zu faul, dies von Hand zu machen.
Die selbe Arbeit können wir mit einem simplen Agenten erledigen, hier in Pseudocode:
CreateViewsForAllForms:
thisDatabase.Forms.Foreach { CreateViewForForm }
CreateViewForForm(form):
view = thisDatabase.CreateView
view.Name = form.Name
view.SelectionFormula = "SELECT Form = " + form.Name + " & DeletionStatus != deleted "
form.Fields.foreach { CreateColumnForField }
CreateColumnForField(field):
column = view.createColumn
column.Title = field.Name
column.Formula = field.Name
Im Handumdrehen haben wir so für jede Maske eine simple Ansicht erstellt und können uns wieder komplexeren Problemen widmen.
Comments Disabled