Tabellen-Menüs erweitern
Die Menüpunkte von Tabellenformularen oder Listen können mit eigenen Punkten erweitert werden. Die Erweiterungen können mit Hilfe folgender Skript-Erweiterungen eingetragen werden:
- ext_gtab.inc
- ext_gtab_erg.inc
- ext_gtab_change.inc.
Um in LIMBAS einem Tabellenformular oder einer Liste einen Menüpunkt hinzuzufügen, muss
- eine Funktion (mit beliebigem Funktionsnamen) erstellt werden, die
- die folgenden Parameter übergeben bekommt:
- $gtabid: Tabellen-Id der aktuell gezeigten Tabelle
- $formid: Formular-Id des aktuell verwendeten Formulars, im Falle des Standardformulars „null“
- $ID: Datensatz-Id des aktuell verwendeten Datensatzes, nur für Detailansicht (gtab_change) verfügbar
- &$gresult: Zeiger auf Ergebnis der letzten Datenbank-Abfrage (siehe get_gresult())
- die Darstellung des neuen Menüpunktes erledigt.
- festlegt, welche JavaScript-Anweisung(en) oder -Funktion(en) bei Auswahl des neuen Menüpunktes ausgeführt werden soll(en). Dabei können Information mittels versteckter HTML-Formularelemente (hidden) im HTML-Objekt „span id=“myExtForms““ an LIMBAS zurückgegeben werden.
- die folgenden Parameter übergeben bekommt:
Dafür sind die pop_*-Menüfunktionen aus der Datei ./limbas_src/lib/context.lib zu verwenden. Genauere Einstellungen für die Darstellung sowie die JavaScript-Anweisungen/Funktionen sind der verwendeten Funktion als Parameter zu übergeben.
- die erstellte Funktion über die folgende Zuweisung einer Tabelle und einem Menü, in dem der neue Menüpunkt hinzugefügt werden soll, zugewiesen werden:
if(!$gLmbExt[$menuToBeExtended][$gtabid]){
$gLmbExt[$menuToBeExtended][$gtabid] = $functionName;
}
Dabei entspricht
- $gtabid der Tabellen-Id der Tabelle, für die der Menüpunkt hinzugefügt werden soll
- $menuToBeExtended einem der folgenden Werte, welche das zu erweiternde Menü angeben:
- „menuChangeCInfo“ → Menüpunkt wird dem [Datei]→[Info]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- „menuChangeCContext“ → Menüpunkt wird dem [Datei]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- „menuChangeCDisplay“ → Menüpunkt wird dem [Ansicht]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- „menuChangeCExtras“ → Menüpunkt wird dem [Extras]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- „menuChangeCReport“ → Menüpunkt wird dem [Extras]→[Berichte]-Menü der Bearbeitungs- und Detailansicht hinzugefügt
- „menuChangeItems“ → Menüpunkt wird dem Hauptmenü der Bearbeitungs- und Detailansicht hinzugefügt
- „menuChangeIcons“ → Menüpunkt wird der Symbolleiste der Bearbeitungs- und Detailansicht hinzugefügt
- „menuListCInfo“ → Menüpunkt wird im Kontextmenü der Listenansicht dem [Info]-Menü hinzugefügt
- „menuListCContext“ → Menüpunkt wird dem Kontextmenü der Listenansicht hinzugefügt
- „menuListCDisplay“ → Menüpunkt wird dem [Ansicht]-Menü der Listenansicht hinzugefügt
- „menuListCExtras“ → Menüpunkt wird dem [Extras]-Menü der Listenansicht hinzugefügt
- „menuListCReport“ → Menüpunkt wird dem [Extras]→[Berichte]-Menü der Listenansicht hinzugefügt
- „menuCalExtras“ → Menüpunkt wird dem [Extras]-Menü der Kalenderansicht hinzugefügt
- „menuDMSExtras“ → Menüpunkt wird dem [Extras]-Menü des Filemanagers hinzugefügt
- $functionName der Funktion für die Darstellung des neuen Menüpunktes
Example:
function MyExt_MenuExtras($gtabid,$formid,&$gresult){
$toDoOnClick = "document.getElementById('myExtForms').innerHTML = '<input type=hidden id=myExtForms_testme name=myExtForms[test]>';\
document.getElementById('myExtForms_testme').value='".$gresult[$gtabid][2][0]."';send_form(1);\"";
pop_line();
pop_menu2("menuItemText",null,null,null,"cursor:pointer", $toDoOnClick);
}
if(!$gLmbExt["menuListCExtras"][3]){
$gLmbExt["menuListCExtras"][3] = "MyExt_MenuExtras";
}
if($myExtForms["test"]){
lmb_alert($myExtForms["test"]);
}
Das Beispiel erzeugt einen neuen Menüpunkt im Menü „Extras“ der Listenansicht für die Tabelle mit der ID „3“, welcher das Abfrage-Ergebnis des Feldes mit der ID 2 an das Skript (LIMBAS) zurücksendet. LIMBAS zeigt darauf das Ergebnis in einem eigenem Dialog-Fenster an.