Xmenu: Unterschied zwischen den Versionen

Aus bafbal.de
Zur Navigation springen Zur Suche springen
Zeile 80: Zeile 80:
  
 
===xmenu_add===
 
===xmenu_add===
 +
 +
~ $ICP(0,cat)
 +
#grd_add  i=grid    f_status=1
 +
 +
~ $ICP(0,item)
 +
#tree_add  u=sel    t=menu_item  c=$T(new_menuitem)    c1=name  c2=command    s="#page_fill  d=xmenu_page_item"  si=Y
 +
 +
~ $ICP(0,group)
 +
#grd_add  i=grid   
 +
 +
~~
 +
 +
Wird das Kommando xmenu_add mit dem Parameter ''cat'' aufgerufen, so wird eine neue Kategorie angelegt, mit dem Parameter ''group'' ist es eine neue Gruppenzuordnung eines Menupunktes. In beiden Fällen wird mit #grd_add dem Grid-Segment eine Zeile hinzugefügt. In beiden Fällen wird dabei auch gleich der Status auf den Wert 1 gesetzt - bei den Kategorien dadurch, dass in #grd_add der Parameter f_status=1 gesetzt wird, bei den Gruppen dadurch, dass in der Spaltendefinition #grd_col der Paramezer nv=1 ("NullValue") gesetzt wird. Beide Wege führen zum selben Ergebnis.
 +
 +
Neue Menüpunkte werden dagegen im  Baum angelegt. Die Beschriftung des neuen Baumeintrags wird mit dem Parameter c gesetzt. Die Parameter c1 und c2 sind gesetzt, damit die Beschriftung des Baumeintrags sofort geändert wird, sobald diese Werte im Formular eingegeben werden. (Dazu ist auch noch erforderlich, dass der Parameter t gesetzt wird.)
 +
 +
===xmenu_flt===

Version vom 21. Mai 2021, 10:43 Uhr

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

~ $ICP(0,cat)
#grd_add  i=grid     f_status=1

~ $ICP(0,item)
#tree_add  u=sel    t=menu_item   c=$T(new_menuitem)    c1=name   c2=command    s="#page_fill  d=xmenu_page_item"   si=Y

~ $ICP(0,group)
#grd_add  i=grid    

~~

Wird das Kommando xmenu_add mit dem Parameter cat aufgerufen, so wird eine neue Kategorie angelegt, mit dem Parameter group ist es eine neue Gruppenzuordnung eines Menupunktes. In beiden Fällen wird mit #grd_add dem Grid-Segment eine Zeile hinzugefügt. In beiden Fällen wird dabei auch gleich der Status auf den Wert 1 gesetzt - bei den Kategorien dadurch, dass in #grd_add der Parameter f_status=1 gesetzt wird, bei den Gruppen dadurch, dass in der Spaltendefinition #grd_col der Paramezer nv=1 ("NullValue") gesetzt wird. Beide Wege führen zum selben Ergebnis.

Neue Menüpunkte werden dagegen im Baum angelegt. Die Beschriftung des neuen Baumeintrags wird mit dem Parameter c gesetzt. Die Parameter c1 und c2 sind gesetzt, damit die Beschriftung des Baumeintrags sofort geändert wird, sobald diese Werte im Formular eingegeben werden. (Dazu ist auch noch erforderlich, dass der Parameter t gesetzt wird.)

xmenu_flt