Modulare Parameter für allegro-C - technische Dokumentation - Die dynamischen Menüs

Abschnitt 3.4



Inhaltsverzeichnis

Abschnitt 3.5: Standard-Mechanismen

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 Hilfe­dateien

Es werden folgende Szenarien für die Funktionsauswahl unterstützt;
  1.  alle Funktionen, deren Aktivierungsbedingung erfüllt ist, werden angeboten
  2.  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