Module Formulare Geschätzte Lektüre: 22 Minuten Einführung LIMBAS Formulare stellen die zuvor angelegten Tabellen grafisch dar und erlauben die Tabellenfelder zu füllen oder zu ändern. In LIMBAS gibt es Standardformulare und benutzerdefinierte Formulare. Beide Arten haben gewisse Vor- und Nachteile je nach Anwendungszweck. Standardformulare Für jede angelegte Tabelle existiert ein Standardformular, das von LIMBAS dynamisch generiert wird. Damit ist es ohne Erstellung eines individuellen Formulars möglich, mit den Tabelleninhalten zu arbeiten. Ein großer Vorteil des Standardformulars ist, dass ein neu erstelltes Tabellenfeld sofort im Formular verfügbar ist. Grundsätzlich werden alle Felder untereinander angezeigt. Felder können sortiert und gruppiert werden, wobei Gruppierungen durch Reiter oder Überschriften dargestellt werden. Zusätzlich hat man die Möglichkeit Felder nebeneinander oder in Untergruppen zu legen. Alle diese Einstellungen werden direkt bei der Tabellendefinition, wo auch die Felder hinzugefügt werden, vorgenommen. Weitergehende Gestaltungsmöglichkeiten sind nur über das LIMBAS-Layout möglich. Benutzerdefinierte Formulare Eine zweite Möglichkeit bietet LIMBAS über seinen Formulareditor. Dieser ermöglicht es sehr komfortabel, eigene individuelle Formulare zu erstellen. Es können beliebig viele Formulare für eine Tabelle erzeugt werden. Änderungen bei der Tabellendefinition müssen allerdings selbst in die Formulare eingepflegt werden. Das bedeutet, dass neue Felder von den Formularen nicht automatisch übernommen werden, sondern je nach Wunsch einzeln hinzugefügt werden müssen. Formulare können auch für Kalendertabellen oder das Filesystem genutzt werden. Für das Filesystem muss das Formular für die Tabelle „ldms_files“ erstellt werden. Listenformulare Listenformulare sind für die Darstellung und Bearbeitung mehrerer Datensätze und bieten eine Alternative zur Listendarstellung. Sie bestehen aus dem Listenformular, dem äußeren Formular (Abb1) und den einzelnen Listenelementen, dem inneren Formular (Abb2). Im inneren Formular (z.B. Kontaktlistenelement) wird der einzelne Kontakt dargestellt. Zur Erstellung eines äußeren Formulars wird ein inneres Formular benötigt (siehe Abb1). Siehe auch Verknüpfung von Listenformularen. Abb1 Abb2 Formulareditor Beim Aufruf des Formulareditors erscheint eine nach Tabellen sortierte Auflistung der vorhandenen Formulare mit der Möglichkeit weitere Formulare hinzuzufügen. ID: Eindeutige Identifikation für das Formular. Beim Hinzufügen eines neuen Formulars wird diese ID von LIMBAS selbst gesetzt. Durch Mausklick auf das Editier-Symbol lässt sich das entsprechende Formular bearbeiten, vorausgesetzt es ist nicht in PHP als Erweiterung implementiert. löschen: Durch Mausklick auf das Papierkorb-Symbol wird das entsprechende Formular nach Rückfrage gelöscht. Formular: Name des Formulars erstellt von: Name des Benutzers, der das Formular erstellt hat. für Tabelle: Tabelle, die mit dem Formular bearbeitet werden kann. Erweiterung: Name der Datei, in welcher das Formular implementiert ist (nur wenn das Formular als PHP-Datei erstellt ist). Formular hinzufügen Name: siehe oben „Formular“ Tabelle: siehe oben „für Tabelle“ kopieren: Name eines bereits vorhandenen Formulars, dessen Formularelemente im neuen Formular übernommen werden. Vorwahl: Diese Beschreibung berücksichtigt vorerst nur die Einstellung „Entwurf einspaltig“. Bei „Entwurf Liste“ gibt es Abweichungen bei der Werkzeugleiste des Formulareditors als auch bei den Formularelement-Typen. Erweiterung: Name einer PHP-Datei ./dependent/EXTENSIONS/*.ext, in welcher das neue Formular implementiert ist Bei Mausklick auf den Button „neues Formular“ wird das neue Formular in die Auflistung der Formulare mit aufgenommen und kann bearbeitet werden. Formular bearbeiten Auf der linken Seite des Formulareditors befindet sich die jeweils aktuelle Formularansicht. Ein gerade neu angelegtes Formular ist hier noch leer. Auf der rechten Seite des Formulareditors befindet sich die Werkzeugleiste mit folgender Unterteilung: Name des Formulars und der Tabelle, die mit dem Formular bearbeitet werden soll Koordinaten, Breite und Höhe des selektierten Formularelements Globale Formulareinstellungen: Class: Ist eine CSS-Stylesheets-Datei (aus dem Pfad ./dependent/EXTENSIONS/css) ausgewählt, so wird diese im Formular mit eingebunden und kann für die Formatierung der Formularelemente herangezogen werden (siehe Class). Zeichensatz: Der hier eingestellte Zeichensatz und die hier eingestellte Zeichengröße werden als Voreinstellung für Formularelemente, die Text beinhalten und dem Formular neu hinzugefügt werden, verwendet. Raster: Der Wert gibt an, wie weit Einrastpunkte auseinanderliegen. Das Einrasten bewirkt einheitliche Abstände zwischen den einzelnen Elementen und somit ein geordnetes Layout. Proportionen erhalten: Ist diese Eigenschaft gesetzt, so können Höhe und Breite des selektierten Formularelements nur so geändert werden, dass dabei die Proportionen erhalten bleiben. Ansonsten können Höhe und Breite des selektierten Formularelements auch unabhängig voneinander geändert werden. Z-Index berücksichtigen: siehe zIndex Z-Index erneuern: siehe zIndex Buttons zum Hinzufügen von Formularelementen: Wird der Mauszeiger für kurze Zeit auf einem Button belassen, so wird die Funktionalität des Formularelements eingeblendet. Button „übernehmen“ zum Speichern des Formulars Tabelle mit Auflistung der verwendeten Formularelementen: Die Tabelle zeigt für jedes im Formular verwendete Formularelement den zIndex-Wert (siehe zIndex) den Typ des Formularelements einen Hinweis auf den Inhalt des Formularelements Hinzufügen eines Formularelements Bei Mausklick auf einen Button zum Hinzufügen eines Formularelements wird ein entsprechendes Element in der Ansicht in der oberen linken Ecke hinzugefügt, und zwar mit den für das jeweilige Element gültigen Default-Eigenschaften. Die Eigenschaften eines Formularelements sind Typ-abhängig und lassen sich wie unten (Einstellen/Ändern der Eigenschaften eines Formularelements) beschrieben ändern. Soll sich ein Element innerhalb eines anderen Elements befinden (z.B. ein Text-Eingabefeld innerhalb eines Tabulators), so muss zuerst das äußere Formularelement angelegt werden. Vor dem Hinzufügen des inneren Formularelements muss das äußere Formularelement selektiert sein. Das innere Formularelement wird dann in der oberen linken Ecke des äußeren Elements platziert. Die folgenden Elemente werden vom LIMBAS Formulareditor zur Platzierung auf einem benutzerdefinierten Formular angeboten: Textblock freier Text Dateninhalte Bei Mausklick auf den Button für „Dateninhalte“ wird in der Werkzeugleiste unterhalb der Buttons ein Baum der Tabellenfelder eingeblendet. Erst bei Mausklick auf eines dieser Tabellenfelder wird das Formularelement in der Formularansicht hinzugefügt. Verknüpfte Tabellen können aufgeklappt und deren Felder ebenfalls ausgewählt werden. Zu beachten ist das Verknüpfte Felder nur dann Sinn machen wenn sie nicht mehr als 1 Datensatz beinhalten. Verknüpfungstabellen Eine Datensatzliste für mehrere verknüpfte Datensätze kann über das Verknüpfungsfeld selbst hinzugefügt werden. Dadurch wird eine Tabelle im vorgegeben Rahmen dargestellt welche auch für Verknüpfungen im Standardformular genutzt wird. Diese Tabelle bringt schon etliche Funktionalitäten zum Verknüpfen mit sich. -> VerknüpfungenZusätzlich können über den Menüpunkt „Parameter“ im Kontextmenü Filter und Darstellungsparameter weiter angepasst werden. Je nachdem werden Standardfunktionalitäten der Verknüpfungstabelle ausgeblendet oder Inhalte gefiltert. Diese Einstellungen gelten nur für das jeweilige Formularelement und nicht Global für alle Verknüpfungstabellen.Die Breite der Felder ist standardmäßig immer gleich und passt sich an die Tabellenbreite an. Durch den Parameter ‚width‘ kann die Breite der Felder aus der Listenansicht der Tabelle übernommen, oder jedem einzelnen Feld eine individuelle Breite zugewiesen werden. Besonderheit:Es existieren 4 unterschiedliche Scroll-Verhalten bei zu großem Inhalt der Tabelle, welche über den Kontextmenüpunkt ‚Form‘ ausgewählt werden können: auto – Die vorgegebene Größe bleibt erhalten, Überläufe werden mit Scrollbalkenlmb_gtabDetailIFrame versehen. Der Tabellenkopf bleibt beim Scrollen stehen. Scollbare Überbreiten sind nicht möglich. Die Breite der Spalten passen sich an die maximale Breite des Elements an. Der Filter-Parameter ‚width‘ wird nicht interpretiert scrollbar – Die vorgegebene Größe bleibt erhalten, Überläufe werden mit Scrollbalken versehen. Der Tabellenkopf scrollt beim Scrollen mit. Überbreiten können nach rechts gescrollt werden. sichtbar – Die Größe wird ohne Scrollbalken auf die maximale Größe vergrößert. Weitere Formularelemente können überlagert werden. abgeschnitten – Die Größe wird auf die vorgegebene Größe abgeschnitten Filterparameter: gsr: Filtern der Ergebnisliste no_add: keinen neuen Datensatz anlegen no_new: keinen neuen Datensatz anlegen über Listenfunktion (nur im Editiermodus verfügbar) no_edit: Datensätze nicht editieren no_replace: Datensätze nicht ersetzen no_search: Datensätze nicht dursuchen no_copy: Datensätze nicht kopieren no_link: keine Schnellverknüpfung no_openlist: Kein öffnen der Tabellenliste no_fieldselect: keine Feldauswahl no_delete: kein löschen von Datensätzen no_sort: kein Sortieren von Datensätzen no_menu: keine Menüleiste search: erzwingt die Suchleiste showall: zeige alle gefundenen Datensätze getlongval: zeige Inhalt von Long Spalten indicator: aktiviert indicator Erweiterung falls vorhanden nogresult: zeigt Tabelle ohne Ergebnisse (gilt nur für Unterformulare) edit: editieren von definierten Spalten order sortieren der Ergebnissliste showfields: zeige Felder width: Feldbreite anpassen no_calendar: zeige Kalenderfunktionen nicht an (nur bei Kalendertabelle) show_inframe: Details öffnen per Doppelklick oder Anlegen im gleichen Fenster. Mögliche Werte sind div : in neues div iframe : in neuen iframe same : im gleichem Fenster [tag-name] : in vorhandenes div oder iframe. tag-name ist id des Elementes [leer] : in neuem Fenster formid: Details öffnen in spezifisches Formular show_relationpath: Anzeigen des Verknüpfungspfades im Standardformular oder im Formular mit entsprechendem Element. Korreliert mit viewmode. viewmode: überschreibt die Darstellung des Feldtyps. Mögliche Werte sind single_ajax, multi_ajax, dropdown, default count: Anzahl anzuzeigender Datensätze. Zahl oder ‚all‘ für alle Datensätze pagination: aktiviert das Blättern der Ergebnisse. Standardmäßig ist diese deaktiviert und es werden alle Ergebnisse angezeit. ondblclick: überschreibt den dblclick Event Beispiel: $gsr[4][22][0] = $ID; return array( 'no_add' => 1, 'no_new' => 1, 'no_edit' => 1, 'no_search' => 1, 'no_replace' => 1, 'no_copy' => 1, 'no_link' => 1, 'no_openlist' => 1, 'no_fieldselect' => 1, 'no_delete' => 1, 'no_sort' => 1, 'no_menu' => 1, 'search' => 1, 'showall' => 1, 'getlongval' => 1, 'indicator' => 1, 'nogresult' => 0, 'edit' => array(16,19,23), 'order' => array(array(4,2,'DESC'),array(4,3,'DESC')), 'showfields' => array(1,2,3,4,5), 'width' => array(1=>10,2=>10,3=>50,4=>50,5=>30), 'show_relationpath' => 1, 'show_inframe' => 'div', 'formid' => 12, 'no_calendar' => 1, 'viewmode' => 'dropdown', 'count' => 15, 'pagination' => 1, 'ondblclick' => 'alert(\'hallo Limbas\')' ); Hinweis: Sollten mehr oder weniger Felder als erwünscht sichtbar sein, liegt es daran, dass individuelle Einstellungen vorliegen. Diese lassen sich im Menü „Ansicht“ der eigentlichen Tabelle über „Ansicht zurücksetzen“ zurücksetzen. Datum Um bei einem Datumsfeld den Datepicker anzupassen, kann in die Parameter ein JavaScript-Objekt geschrieben werden. Eine Liste möglicher Einträge befindet sich in der JQuery Datepicker Doku. Beispiel: Hier wird das früheste auswählbare Datum auf „Heute vor 100 Jahren“ und das späteste auswählbare Datum auf „Heute vor einem Jahr“ gesetzt. { minDate: -36500, maxDate: -365 } Unterformular Bei Mausklick auf den Button für „Unterformular“ wird in der Werkzeugleiste unterhalb der Buttons eine Formularauswahl eingeblendet. Bei Mausklick auf „Übernehmen“ wird das gewählte Unterformular in der Formularansicht hinzugefügt. Dabei müssen Style und Typ des Formulars ausgewählt werden. Style Unterformulare können je nach Anwendungszweck als DIV oder als IFRAME Element hinzugefügt werden. IFRAMES sind unabhängig zum restlichen Formular und sind gut für Unterformulare geeignet die gespeichert oder durchsucht werden sollen ohne das Haupformular zu beeinflussen oder neu zu laden. DIV Elemente integrieren sich dagegen direkt in das Hauptformular und sind demnach schneller geladen. Nach dem Anlegen des Unteformularelements kann über den „URL-Parameter“ des Kontextmenüs weiteres Verhalten zum Element gesteuert werden. IFRAMES können per GET-Parameter gefiltert werden. DIVs können direkt per Übergabevariablen (get_gresult()) gefilter werden. Typ Bei erstellen des Formular können verschiedene Typen zum Verhalten des Formular gewählt werden: benutzerdefiniert Für Style IFRAME wird als URL die in dem Parameter des Kontextmenüs eingetragene URL aufgerufen. Der URL-Parameter kann PHP Code enthalten und wird ausgeführt.Für Style DIV wird als INHALT des DIVs der in dem Parameter des Kontextmenüs eingetragene Inhalt eingetragen. Der URL-Parameter kann PHP Code enthalten und wird ausgeführt. Unterformular Für Style IFRAME wird als URL das gewählte Unterformular in einem IFRAME geöffnet. An die URL wird der in dem URL-Parameter des Kontextmenüs eingetragene Inhalt angehängt.FÜR Style DIV als INHALT das ausgewählte Unterformular in einem DIV eingetragen. Dabei werden die URL-Parameter vor der Erzeugung des Unterformulars konform zur Funktion get_gresult() ausgeführt. Tabelle Für Style IFRAME wird als URL die ausgewählte Tabelle in einem IFRAME geöffnet. Die Darstellung ist konform zur Tabellenliste. An die URL wird der in dem URL-Parameter des Kontextmenüs eingetragene Inhalt angehängt.Für Style DIV wird als INHALT die ausgewählte Tabelle in einem DIV geöffnet. Die Darstellung ist konform zu „Verknüpfungstabellen“. Dabei werden die URL-Parameter vor der Erzeugung des Unterformulars konform zu „Verknüpfungstabellen“ ausgeführt. Besonderheit:Im Allgemeinen wird der Rahmen des Unterformulars in dem gesetzten Style und Größe dargestellt. Für ein Unterformular des Typs „Unterformular“ dargestellt als „DIV“ wird der Style (außer der Positionierung) nur dann übernommen wenn dem Parameter „Form“ (auto/sichtbar/abgeschnitten/scrollbar) ein Wert zugewiesen wurde. Ist kein Wert gesetzt wird das Unterformular in der vollen Größe (also 100% Breite) im Hauptformular dargestellt. Info:Zusätzlich können über den Menüpunkt „Parameter“ im Kontextmenü Filter und Darstellungsparameter analog zu Verknüpfungstabellen weiter angepasst werden. Beispiel zum Filtern eines DIV Elements: (get_gresult()) $gsr[47][11]['txt'][0] = 2; # ganzes Wort suchen $gsr[47][11][0] = $gresult[4][2][0]; # Filter nach Inhalt Beispiel zum Filtern eines Unterformular oder Tabellen IFRAME Elements: (URL_Syntax) return "rgsr[179][12][0]=".$gresult[$gtabid][26][0]."&rgsr[179][12][txt][0]=2"; Beispiel zum Filtern eines benutzerdefinierten IFRAME Elements: (URL_Syntax)Standort eines Kunden auf einer Karte anzeigen. return "https://www.google.com/maps/embed/v1/place?key={YOUR_API_KEY}&q=".$gresult[$gtabid][4][0].",".$gresult[$gtabid][6][0]." ".$gresult[$gtabid][5][0]; //Straße/Nr. holen //PLZ holen //Ort holen oder return "main.php?action=gtab_erg>abid=1&rgsr[1][2][0]=AlfredsFutterkiste&rgsr[1][2][1]= Nudelkisten&rgsr[1][2][andor][1]=2&filter[anzahl][4]=10&filter[page][4]=1"; Hierbei wird die Spalte Vorname der Tabelle Kontakte nach „AlfredsFutterkiste“ und „Nudelkisten“ durchsucht. Nur Datensätze, die einer der beiden Kriterien entsprechen werden angezeigt.Zudem ist angegeben, dass ohne Offset ausgelesen werden soll und max. 10 Ergebnisse angezeigt werden sollen. Verknüpfung von Listenformularen Um ein inneres Formular mit einem äußeren zu verknüpfen, erstellt man im äußeren Formular ein neues Unterformular mit dem Style div, dem Typ Unterformular und gibt als Unterformular das innere Formular an: Siehe auch: Listenformulare Darstellung im Gegensatz zu den anderen Formularelementen können Verknüpfungstabellen nicht direkt über den Formulareditor formatiert werden, da Sie Teil des Standardformulars sind und an das globale Layout gebunden sind. Die Verknüpfungstabelle besteht zudem aus vielen Elementen wie Tabellenkopf, Tabelleninhalte und Menüs. Es besteht aber die Möglichkeit die vorhandenen Styles über eine angepasste CSS-Stylesheets-Datei die dem Formular zugewiesen werden kann zu überschreiben. Beispiel: .gtabFringeRelationBody{ border: 0; background-color: transparent !important; } .gtabHeaderRelationTAB{ padding-bottom: 5px; border: 0; } .gtabBodyTR{ } .gtabBodyTD{ padding: 3px 0; } .lmbfringeGtabBody{ border-radius: 4px; } .gtabHeaderTitleTD{ font-size: 110%; } Alternativ zur Verknüpfungstabelle kann ein Unterformular mit entsprechendem Filter erstellt werden. Verknüpfungen müssen dort dann aber durch entsprechende Erweiterungen selbst behandelt werden. Datenbezeichnung Bei Mausklick auf den Button für „Datenbezeichnung“ wird in der Werkzeugleiste unterhalb der Buttons ein Baum der Tabellenfelder eingeblendet. Erst bei Mausklick auf eines dieser Tabellenfelder wird das Formularelement in der Formularansicht hinzugefügt. Graphik Bei Mausklick auf den Button für „Graphik“ wird in der Werkzeugleiste unterhalb der Buttons ein Feld zur Eingabe einer Datei mit Pfad eingeblendet. Ist ein gültige Grafik-Datei eingetragen, so wird diese bei Mausklick auf „übernehmen“ in der Formularansicht hinzugefügt. Tabelle Mit diesem Element kann eine html-Tabelle hinzugefügt werden. Spalten und Zeilen können frei definiert werden. Elemente werden durch Klick auf die gewünschte Zelle und dann auf das Element in die Tabelle eingefügt. Hinzugefügt oder gelöscht werden Zeilen immer nach der aktuell selektierten Zeile. Es ist möglich Tabellen zu verschachteln sowie Ramen und Gruppierungselemente in Zellen zu nutzen. Wird im Kontextmenü der Tabelle der Menüpunkt „Typ“ nicht ausgewählt, richtet sich die Höhe der Tabelle nach Ihrem Inhalt. Wird statt dessen „auto, sichtbar oder abgeschnitten“ ausgewählt, wird die definierte Höhe der Tabelle berücksichtigt und je nach ausgewältem „Typ“ (entspricht css style overflow) dargestellt. Datum Datums-Auswahlfeld Rechteck Rechteck zur Layoutgestaltung Menü-Leiste Gruppiert Mit Hilfe dieses Rahmens können Elemente Gruppiert werden. Sparten werden automatisch als Reiter angelegt. Tabulator-Rahmen Mit Hilfe dieses Rahmens können ebenfalls Elemente Gruppiert werden. Tabulatoren können aber individuell definiert werden. Tabulatoren können links oder oben positioniert werden Gruppierungs-Rahmen Einfachster Gruppierungsrahmen ohne Tabulatoren. Dient zur schnellen Gruppierung von Elementen. Submit-Button sendet das Formular Scroll-Leiste zum Blättern der Datensätze Einzelne Fußleiste zum Weiterblättern Text-Eingabefeld eigenes Formularelement. Textarea-Eingabefeld eigenes Formularelement. Select-Auswahlfeld eigenes Formularelement. möglich sind Werte durch Komma getrennt oder eine vorhandene Select-Pool ID Checkbox-Element eigenes Formularelement. Radio-Element eigenes Formularelement. Hidden-Input eigenes Formularelement. Diagramm zeigt ein bereits erstelltes Diagramm. Wiedervorlage erstellt einen Button um im Formular schnell eine Wiedervorlage anzulegen. Als Parameter können bestimmte Voreinstellungen in Form eines Arrays angegeben werden: return array( 'datetime' => '10.03.2017 22:55', /* datetime string */ 'usergroups' => '1_u', /* e.g. '33_u;22_g;55_u' or '' for current user */ 'remark' => 'testtttt', /* string */ 'mail' => 0, /* 0 or 1 */ 'category' => 2, /* id of category */ 'hidecurrent' => 1 /* hides currently active reminders */ ); Workflow-Historie zeigt eine Historie von Ereignissen des Workflows. Html-Templates Beschrieben unter Html-Templates. Um Dateninhalte schreibbar (z.B. als Input-Feld und nicht nur als Text) anzuzeigen, kann im Daten-Platzhalter das flag [w] (für writeable) angehängt werden: ${->Kunde->Name[w]} Es können auch eigene CSS-Klassen an Dateninhalte übergeben werden. Diese werden je nach Feldtyp an unterschiedlicher Stelle eingesetzt: ${->Kunde->Name[class=border-red]} Java-Script freies Javascript für eigenen Erweiterungen. PHP-Script freies PHP für eigene Erweiterungen. Auch include() oder Funktionsaufrufe möglich. return 'hello world'; Beispiel: Einbinden eines Diagrammes (veraltet) Mithife eines PHP-Scripts kann ein Diagramm, das mit dem LIMBAS Diagramm-Editor erstellt wurde, in ein Formular eingebunden werden. In folgendem Beispiel soll in der Tabelle Aufträge ein Kuchen-Diagramm darstellen, von welcher Art die verknüpften Positionen sind (Hardware/Software/Hosting/Serviceleistungen). Um das Diagramm einzubinden müssen 3 Dinge erstellt werden: Eine Abfrage Ein Diagramm basierend auf der Abfrage Ein PHP-Script, das das Diagramm darstellt Zunächst muss also wie in der Dokumentation des Diagramm-Editors beschrieben eine Abfrage erstellt werden: Die Abfrage stellt (gruppiert nach der Auftrags-ID) die Anzahl der verschiedenen Arten dar. Danach wird ein neues Diagramm erstellt vom Typ Pie-Chart. Dieses erhält von LIMBAS die Tabellen-ID 15. Um das Diagramm in ein Formular einzubinden, wird zuerst ein PHP-Script erstellt und an die gewünschte Stelle gezogen. In diesem Beispiel wird folgender Code benutzt: Einbinden der Datei diag_create.lib um das Diagramm zu erstellen: global $umgvar; include($umgvar["pfad"]."/../limbas_src/admin/diagramm/diag_create.lib"); Filter-Objekt erstellen, um nur die Daten des ausgewählten Datensatzes anzuzeigen. In diesem Beispielt wird festgelegt: Es sollen nur die Datensätze angezeigt werden, deren ID (Aus dem Feld ID (id:2) der Abfrage) der ID des ausgewählten Datensatzes ($gresult[$gtabid][1][0]) entspricht (Syntax ist Äquivalent zum $gsr-Parameter): $gsr=array(); $gsr[58][2][0]=$gresult[$gtabid][1][0]; //ID der Abfrage entspricht ID des Datensatzes $gsr[58][2]['num'][0]=1; //Numerischer Operator: = Das Diagramm durch die Funktion lmb_create_diagram(Diagramm-ID [,Filter-Parameter]) erstellen und zurückgeben (wird kein Filter-Parameter übergeben, werden alle Datensätze der Abfrage berücksichtigt): return lmb_create_diagram(15,$gsr); Abb.: Diagramm für Auftrag-ID 1 Selektieren eines Formularelements Es kann immer nur ein Formularelement selektiert sein. Dieses erkennt man daran, dass es in der Tabelle mit den aktuell verwendeten Formularelementen farblich hervorgehoben ist in der Formularansicht an der unteren rechten Ecke ein Symbol zum auf/zusammenziehen hat Das Selektieren eines Formularelements ist somit möglich durch Mausklick auf den entsprechenden Eintrag in der Tabelle mit den aktuell verwendeten Formularelementen Mausklick auf das entsprechende Element in der Formularansicht Einstellen/Ändern der Eigenschaften eines Formularelements Voraussetzung für das Einstellen/Ändern der Eigenschaften eines Formularelements ist, dass dieses selektiert ist. Die Position lässt sich per Drag&Drop in der Formularansicht oder durch Eingabe der Koordinaten in der Werkzeugleiste ändern. Dabei entspricht X=0, Y=0 der oberen linken Ecke des Formulars. Handelt es sich um ein inneres Formularelement, so entspricht X=0, Y=0 der oberen linken Ecke des äußeren Formularelements. Die Höhe und Breite lässt sich durch auf/zusammenziehen in der Formularansicht oder durch Eingabe entsprechender Werte (in Pixel) in der Werkzeugleiste ändern. Beim Selektieren des Formularelements öffnet sich ein Kontext-Menü, welches die Einstellung weiterer Eigenschaften ermöglicht. Mit halten der STRG Taste können mehrere Elemente gleichzeitig ausgewählt und verschoben oder bearbeitet werden. Zusätzlich kann mit gedrückter Maustaste ein Ramen aufgezogen werden unter dem alle Elemente auf einmal ausgewählt werden. Das Kontextmenü reudziert sich in diesem Fall auf die Funktionen die gleichzeitig für mehrere Elemete ausgeführt werden können. Folgende Menüpunkte/Anzeigen befinden sich bei allen Formularelementen im Kontext-Menü: Die Element-Nr. ist eine eindeutige Identifikation (positive ganze Zahl) für das Formularelement. Beim Hinzufügen eines neuen Formularelements wird diese nicht änderbare ID von LIMBAS selbst gesetzt. Der zIndex-Wert bestimmt bei sich überlappenden Formularelementen, welches Element im Vorder- bzw. Hintergrund dargestellt wird: Dabei gilt, dass ein Element mit höherem zIndex-Wert sich vor einem Element mit niedrigeren zIndex-Wert befindet. Bei identischen Werten ist es dem Zufall überlassen, welches Element im Vorder- bzw Hintergrund gezeigt wird. wird durch die Menüpunkte in den Vordergrund bzw. in den Hintergrund entsprechend verändert. bestimmt, in welcher Reihenfolge Eingabefelder bei Benutzung des Formulars durch die Tabulator-Taste selektiert werden. wird bei gesetzter globaler Formulareinstellung Z-Index berücksichtigen beim Selektieren eines Formularelements auf den im Formular aktuell höchsten Wert gesetzt: Hiermit lässt sich schnell die Reihenfolge, in der Eingabefelder bei Benutzung des Formulars durch die Tabulator-Taste selektiert werden, festlegen. wird durch Z-Index erneuern allen Formularelementen neu zugewiesen, und zwar so dass es keine Lücken bei den zIndex-Werten gibt. Die bisherige Reihenfolge wird beibehalten. Bei löschen wird das Formularelement ohne weitere Rückfrage gelöscht. Folgende Menüpunkte/Anzeigen/Einstellmöglichkeiten befinden sich abhängig vom Typ des Formularelements im Kontext-Menü: Bei kopieren wird das Formularelement mit den eingestellten Eigenschaften kopiert. Bei einigen Formularelementen kann auf die Ereignisse „OnClick“, „OnDblClick“, „OnChange“, „OnMouseOver“ und „OnMouseOut“ mit mittels JavaScript definierten Aktionen reagiert werden. Bei Formularelementen mit Text lässt sich der Font, die Größe, die Darstellung, die Fontfarbe und die Hintergrundfarbe des Textes einstellen. Bei Formularelementen mit Rahmen lässt sich neben der Rahmenfarbe, der Art und der Dicke auch einstellen, welche Kanten (links, rechts, oben, unten) gerahmt werden. Bei Formularelementen, die innerhalb des Rahmens Text oder Grafik zeigen, wird durch Form festgelegt, ob diese Informationen ggf. abgeschnitten werden, falls sie nicht genügend Platz haben, ob sie ggf. über den Rahmen hinaus sichtbar sein sollen, ob ein Scrollbar fest oder automatisch eingeblendet werden soll. Weiter gibt es eine Einstellung für den Mindest-Abstand vom Rahmen zum Text. Bei Tabellen lässt sich mit Rand einstellen, ob der Rahmen der Tabelle ggf. mit dem Rahmen einzelner Tabellenelemente zusammen oder getrennt gezeigt werden soll. Wenn bei den globalen Formulareinstellungen ein CSS-Datei ausgewählt ist, erscheint bei einigen Formularelementen ein zusätzlicher Menüpunkt Class. Wird hier eine CSS-Klasse ausgewählt, so werden für das Formularelement die Formatierungen dieser Klasse verwendet, es sei denn diese werden durch eine andere hier vorgenommene Einstellung überschrieben. Bei Tabellen lässt sich die Anzahl der Spalten und Zeilen einstellen. Das Tabulator-Element kann per neuer Tabulator mit zusätzlichen Tabulatoren erweitert werden. Bei einigen Formularelementen lässt sich per Transp. ein Durchscheinen von anderen im Hintergrund liegenden Formularelementen einstellen. Bei Formularelementen zur Eingabe von Text kann mittels maxlen die maximal zulässige Zeichenzahl eingestellt werden. Beim Unterformular lässt sich in der Ansicht einstellen, ob im Unterformular Eingaben zulässig sind (bearbeiten) oder nicht (detail). Parameter (Unterformular) Bei Menü-Leiste Gruppiert kann über den Parameter eingestellt werden, ob Verknüpfungsreiter, Menüleiste, Symbolleiste und/oder Fußleiste angezeigt/ausgeblendet werden sollen. Auswahl (nur Tabellen) Bei Dateninhalt kann eingestellt werden, ob nur lesen oder auch ändern des Dateninhalts erlaubt ist. Wird bei Dateninhalt das Häkchen für ersetzen gesetzt und sofort danach ein neues Dateninhalt-Formularelement, das mit einem anderen Tabellenelement verknüpft ist, erstellt, so wird das ursprüngliche Formularelement gelöscht und dem neuen werden die Eigenschaften des ursprünglichen zugewiesen. Diese Funktionalität kann zusammen mit der Kopier-Funktion das Platzieren mehrerer Dateninhalt-Formularelemente auf dem Formular erleichtern. Das Häkchen wird automatisch nach der folgenden Aktion gelöscht. Tabulatoren Das Formular hat zwei Möglichkeiten Inhalte in Tabulatorreiter zu untergliedern. Sparte & Hauptmenü-Rahmen Die erste und einfachste Variante ist den Feldtyp „Sparte“ in der Tabelle zu nutzen. Dazu wird ein neues Feld in die entsprechende Tabelle mit dem Typ „Sparte“ hinzugefügt. Das Formular muß ein „Hauptmenü-Rahmen“ Element besitzen. In diesem wird jede „Sparte“ als Tabulator mit dem Namen des Feldes dargestellt. Der erste Tabulator „all elements“ sorgt dafür das seine Unterelemente in allen Tabulatoren angezeigt werden. Zum Hinzufügen von Unterelementen muß der Tabulator ausgewählt werden durch einen rot umrandeten Bereich hervorgehoben wird. Das nun hinzugefügte Element wird relativ zum Tabulatorrahmen angezeigt. Dem „Sparten“ Feld in den Tabellenfeldeinstellungen kann ein JavaScript Click-Event zugewiesen werden was beim drücken auf den Tabulator ausgeführt wird. Die Option „ajaxpost“ sorgt dafür das der Inhalt des Tabulator-Bereichs erst bei Auswahl nachgeladen wird. Das kann bei längeren Abfragen Performance sparen da ja nicht immer alle Bereiche ausgewählt werden. Tabulatorrahmen Dieses Formularelement erlaubt eine freie Auswahl an Tabulatorbereichen zu definieren. Es können zusätzlich Tabulatorrahmen ineinander verschachtelt werden. Außerdem können die Tabulatoren Horizontal oder Vertikal angeordnet werden. Es stehen die Formatierungsoptionen von Formularelementen zu Verfügung.