Modulare Parameter für allegro-C - technische Dokumentation - Die dynamischen Menüs
Abschnitt 3.4
Die Auswahl der Inhalte für die dynamischen Menüs erfolgt in Abhängigkeit von:
- den Bestandteilen des Dateinames der FLX-Dateien,
- der Art des Aufrufs (Paramter),
- den Merkmalen des gerade angezeigten Datensatzes
- den aktuellen Rechten das angemeldeten Benutzers
Sortiert werden die Menüzeilen nach
- dem in den FLX-Dateien abgelegten SRT-Parameter
- nach dem Dateinamen (bei gleichem SRT-Parameter)
Die Steuerung der Menüs wird über folgende Flex-Dateien realisiert:
- mp-fkt.flx startet über MP_FuncList() aus MP_FktLst.flb das Menü
- onerror.flx startet mp-fkt.flx mit dem Inhalt des Schreibfelds, hiermit können Flex-Funktionen über die Eingabe eines Kürzels im Schreibfeld aufgerufen werden. Die Kürzel sind in den Funktionsflexen festgelegt und sollten mit einem "-"-Zeichen beginnen. Kürzel ohne führendes "-"-Zeichen sind noch funktionsfähig, aber werden in der nächsten MpdPar-Version nicht mehr zulässig sein.
- onkontext.flx startet mit dem über MP_RecordTypGet ( Flex-Bibliothek MP_Satztyp.flb) ermittelten Satztyp-Kürzel mp-fkt.flx zur Anzeige des Menüs
- onf8.flx startet onkontext.flx (nicht unter alcarta)
- onhelp.flx realisiert den Aufruf von menüpunktspezifischen Hilfedateien
Es werden folgende Szenarien für die Funktionsauswahl unterstützt;
- alle Funktionen, deren Aktivierungsbedingung erfüllt ist, werden angeboten
- alle Funktionen wie 1) werden angeboten, die außerdem im Dateinamen den Teilstring (kürzel) enthalten
Der Inhalt jeder Flexdatei in {DB} wird zeilenweise ausgewertet, bis eine Leerzeile oder die Zeichenkombination @@ auftritt.
Dabei werden alle Zeilen interpretiert, die ein Menü-Steuertoken aus der folgenden Tabelle enthalten:
Menü-Steuertoken in Flex-Dateien
Token |
Bedeutung / Syntax |
CHR |
Char-Set, in dem die Beschreibungen und Texte codiert sind. Werte: ansi oder ascii
default: ascii |
FKT |
Zeile enthält die Bezeichnung der Funktion so, wie diese in der angebotenen Auswahl angezeigt werden soll |
HELP |
rtf- oder hml-Datei, wird im Menü über dem jeweiligen Funktionseintrag angezeigt
für Anzeige: rtf-Datei (ohne Endung angeben)
für janas: html-Datei (mit Endung)
Beispiele:
HELP: Name.html
oder
HELP: Name
|
PAR |
Parameter, der an die Funktions-Flexdatei in der iV übergeben werden soll |
SRT |
Wert, nach dem die Einträge der fertigen Liste sortiert werden; Wertebereich: (0 ... 65535)
Fehlt SRT, gilt SRT: 0.
Folgende Bereiche dienen der Gliederung nach Funktionsgruppen (ab MP V3.x, vorher noch nicht so systematisch ;-):
von |
bis |
Bereich/Gruppe |
0 |
399 |
Hilfe |
400 |
499 |
usr-Hilfen |
500 |
999 |
Service- (unterstützende Hilfsfunktionen)
600 - 699 Mail |
1000 |
1999 |
Katalogisierung |
2000 |
2999 |
Exportfunktionen
2001 Neuerwerbung
2500 Listen
2600 Schriftverkehr
|
3000 |
3999 |
Import |
4000 |
4999 |
Statistiken/Auswertungen |
5000 |
5999 |
Leihfunktionen (FlexLend)
5200 Mahnfunktionen
5300 Kasse |
6000 |
6999 |
Bestellfunktionen (FlexOr) |
7000 |
7499 |
ZS-Verwaltung/Abos |
7500 |
7999 |
Umlaufverwaltung |
8000 |
8999 |
Einstellungen
8000 - private Einstellungen
8800 - Web-OPAC
8900 - Zweigstellen |
9000 |
9999 |
Systemfunktionen
9000 - Systemkonfiguration
9900 - Zweigstellen |
10000 |
10999 |
Ânwender-Prüffunktionen |
11000 |
11999 |
System-Prüffunktionen
11950 - Index-Checks |
|
MNU |
Kontextmenü bedingt unterdrücken
0 - Kontextmenü verbieten, wenn nur eine Auswahl möglich ist
1 - Kontextmenü erzwingen - auch, wenn nur eine Auswahl möglich ist
default: durch globale Variable gesteuert |
ACC |
mindestens erforderlicher Berechtigungs-Level |
REQ |
Bedingungen, die für die Aufnahme der Funktion in die Auswahl erfüllt sein müssen. Eine Bedingung kann wie folgt definiert werden:
[!]{(feld)[$(teilfeld)][(op)(teilstring)]|(if-bedingung)}
(feld) |
Kategorie oder Variable, z.B: #20, #u11, $xyz |
(teilfeld) |
Teilfeldzeichen |
(op) |
Operator
= - beginnt mit
% - enthält |
(teilstring) |
Zeichenkette, die in der Kategorie bzw. in deren Teilfeld gesucht werden soll; darf keine Leerzeichen enthalten |
(if-bedingung) |
unterstützt wird als (if-bedingung):
main
New
hasAuf
hasAuf[@({registernummer}|{register})],
hasVol[@({registernummer}|{register})],
fe{dir}={Dateiname};
{dir} kann sein: P, D, W oder M, oder
B – Tools-Verzeichnis ({BIN})
F – Flex-Verzeichnis ({FX})
H – Help-Verzeichnis ({HP})
L - Html-Verzeichnis
Beispiel: feB=SendEmail.exe
ChkReg@{cstring}
prüft, ob Registereintrag vorhanden ist; {cstring} in Syntax , der mit var in einen Parameter für MP_ChkReg umgewandelt werden kann: Beispiel
ChkReg@#00(e"+") 64 124 "9" 64 "1"
ergibt
{teil-id aus #00}@|9@1
in cstring dürfen nicht vorkommen: [|;=@ \x09\x0d\x0a] (durch codes ersetzen)
EM
Ergebnismenge muss vorhanden sein
|
- Mehrere Bedingungen werden durch ';' (AND) oder '|' (OR) getrennt.
- Die Funktion wird nur aufgelistet, wenn die definierte(n) Bedingung(en) durch den aktuell geladenen Satz erf³llt ist/sind.
- Rang der Operatoren (aufsteigend): |;!=%
- Leerzeichen sind im Ausdruck nicht erlaubt, Klammerungen werden nicht unterstützt.
Beispiele:
#9B muß vorhanden sein und mit 0 oder 1 beginnen: |
REQ: #9B=0|#9B=1 |
#9B muß vorhanden sein, darf aber nicht mit 2 beginnen: |
REQ: #9B;!#9B=2 |
Im Satz solle #00 und #20 oder #00 und #19 enthalten sein |
REQ: #20;#00|#19;#00 |
Test auf verknüpft gespeicherten Aufsatz ('*' in #00) |
REQ: #00%* |
Einschränkung auf Suchkürzel:
Da ohne (kürzel) alle Flexe aktiviert werden, deren Bedingung erfüllt ist, werden u.U. zu viele Funktionen angeboten.
Damit ein Funktionsflex nur angeboten wird, wenn ein (kürzel) als Parameter angegeben wurde, kann mittels REQ: #uÆp=( kürzel) genauer eingegrenzt werden. (Variablenname #uÆp ist ascii-codiert)
Beispiel:
wahr, wenn als Such(kürzel) 'new' angegeben wurde |
REQ: #uÆp=new |
Mehrere REQ:-Zeilen werden aneinandergehängt. Folge-Zeilen muessen demzufolge mit "|" oder ";" beginnen.
|
|
|
Kommentare:
Zeilen, die mit "//" beginnen, wirken als Leerzeile und beenden die Auswertung der aktuellen Flexdatei
Besonderheit vor a99, V27.2:
In Anzeigeparametern muss ein Abschnitt #-ì (236 dez) enthalten sein, der die Umwandlung der Var. #uÆp in Kleinschreibung realisiert:
;------- Abschnitt zur Umcodierung, verwendet in MP_FuncList -----------
#-ì
!uÆp y2 dÆp aÆp // Æ = Code 146dez
#+#
Artikel zuletzt bearbeitet am: 04.12.2024 09:07