Xmenu

Aus bafbal.de
Zur Navigation springen Zur Suche springen

xmenu - Das Menü

Das Menu dient dazu, Kommandos mit einem Mausklick statt mit der Eingabe des Kommandonamens aufzurufen.

Kategorien

Um die Menupunkte zu gliedern, gibt es die Kategorien. Kategorien sind im Menu (das ja eine Baumansicht ist) Baumknoten, die geöffnet und geschlossen werden können. Es werden die aktive Kategorien angezeigt. Die Kategorien werden entsprechend dem Wert der Spalte Sort sortiert.

Der Name einer Kategorie kann auch eine Funktion beinhalten. Üblicherweise ist das die Funktion $T(), um den Menutitel zu übersetzen.

Eine Kategorie

Um einen neuen Menupunkt anzulegen, wird auf den Button Eintrag hinzufügen geklickt.

Menupunkte

Was Name, Status und Sort anbelangt, so gilt dasselbe wie bei Kategorien.

Ein Menupunkt

In der Zeile Command wird das Kommando genannt (gegebenenfalls inklusive Parameter), das beim Mausklick auf den Menupunkt ausgeführt werden soll. Das Feld Menu Category ID ist beschreibbar - damit können Menupunkte in eine andere Kategorie verschoben werden.

Jeder Menupunkt muss den Gruppen zugeordnet werden, denen er angezeigt werden soll. Er wird dann allen expliziten und impliziten Gruppenmitgliedern angezeigt.

Hinweis: Wird in der User-Liste links unten ein anderer User ausgewählt, so wird das Menu entsprechend dessen Usergruppen neu aufgebaut. Dies ist auch der Weg, mit der Administratoren nach einer Änderung ihres Menus dies aktualisieren: Mit einer Mausklick auf den Button U wird der Login-User eingestellt, dadurch wird das Menu neu aufgebaut.

Tabellen

create table menu_category(
  menu_category_id varchar(40) not null primary key,
  name varchar(40) not null, 
  csort int,
  status int,
  datechg date,
  usrchg varchar(40),
  progchg varchar(40)
);
create table menu_item(
  menu_item_id varchar(40) not null primary key,
  menu_category_id varchar(40) not null,
  name varchar(40) not null, 
  command varchar(40) not null, 
  csort number(2),
  status int,
  datechg date,
  usrchg varchar(40),
  progchg varchar(40)
);
create table menu_item2group(
  menu_item2group_id varchar(40) not null primary key,
  menu_item_id varchar(40) not null,
  user_group_id varchar(40) not null, 
  status int,
  datechg date,
  usrchg varchar(40),
  progchg varchar(40)
);

Code

xmenu

#rights  n=frm   r_user=r  r_user.admin=w
#rights  n=admin   r_user.admin=w
#frm  y=treepage  c=xmenu   flt=xmenu_flt   w=400

#btn  y=save   s=#save  se=c
#btn  y=cancel   s=#cancel  se=cp
#btn  y=back   s=#treeback  se=b
#btn  y=backback   s=#treebackback  se=b
#btn  y=export   s=xmenu_eximport(ex)  se=b
#btn  y=import   s=xmenu_eximport(im)  se=b
#btn   c=$T(Refresh)   se=b   s=#filter   w=100

#filter

Das Kommando xmenu ist ohne Besonderheiten.

xmenu_add