[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    727

    UIM Menü Panel

    Lang lang ist's her ...

    Wie kann ich in einem UIM Menü die Menü-ACTIONS un deren Beschreibung variabel gestalten?
    (z.B. durch Lesen aus einem MSGF oder einer PF)


    Code:
    .* -------------------------------------         
    .* Specify the action to be taken for each option
    .* -------------------------------------         
    :MENUI    OPTION=1                               
              ACTION='CMD &CMD1'  <-- ???                
              HELP='menu/option1'.&CMDD1    <-- ???
    Danke Sven

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    Dies geht nur mit einem Programm, dass das UIM-Menü als Panel eröffnet und die Variablen mittels API füllt.
    Als eigenständiges UIM-Menü gibt es keine variablen ausser der angegebenen Kommandozeile um mittels ergänzungen Kommandos zu vervollständigen (siehe z.B. WRKSPLF mit Auswahl "2" über mehrerer Zeilen und Ergänzung OUTQ(xxx) in der Kommandozeile).

    Ansonsten kann mittls &MSGID eine Nachricht zur Erstellzeit eingebunden werden. Dies wirkt wie MSGCON in DSPF's und PRTF's. Deshalb sind auch die UIM-Menüs des OS in den Sprachlibs jeweils vorhanden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    727
    Vielen Dank Baldur,

    Dann hilft wohl nur ein generisches Programm, analog :

    Code:
    :COND NAME=OPT1
          EXPR='chkpgm("MENUOPTCHK")'.
    :COND NAME=OPT2
          EXPR='chkpgm("MENUOPTCHK")'.
    ...
    .* -------------------------------------         
    .* Specify the action to be taken for each option
    .* -------------------------------------         
    :MENUI    OPTION=1
              COND=OPT1                     
              ACTION='CMD call menupgm ''OPTION1"'                
              HELP='menu/option1''.&MSG(OPT0001).
    :MENUI    OPTION=2
              COND=OPT2                                                   
              ACTION='CMD call menupgm ''OPTION2"'                
              HELP='menu/option2''.&MSG(OPT0002).
    Wobei in menupgm der Parameter &OPTION abgefragt wird und ggf über MSGF/MSGID das eigentliche Menüprogram + Parameter ermittelt und aufgerufen wird.
    Der Menütext der Option wird leider nur zur Compile-Zeit gesetzt, aber damit könnte ich noch leben.

    Ich muss zumindest nichts "fest" in der Source codieren, sondern ggf. nur das Menü-Panel neu kompilieren.
    Die Anzeige/Einschränkung der erlaubten Menüpunkte kann ich dann über ein :COND CHKPGM/CHKOBJ/CHKUSRCLS steuern, da ich 15 Optionen fest hinterlegt habe, welche momentan nicht alle benutzt werden bzw. nicht von allen Anwendern benutzt werden dürfen.

    Sven

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    Naja, ganz so würde ich es nicht steuern.
    Generische Menüs machen eigentlich überhaupt keinen Sinn.
    Sinn und Zweck einen Menüs ist doch wohl, ganz bestimmte Auswahlen in einen Zusammenhang zu bringen und für den Anwender leicht zugänglich zu machen.
    Dabei kann eigentlich die Auswahl selbst nicht dynamisch sein. Die Auswahlpunkte sind also starr kodiert.
    Was die Möglichkeit der Auswahl betrifft, so hast du Recht dies über COND zu steuern, wobei CHKPGM eigentlich nur die Verfügbarkeit eines Objekts prüft. Bei *PUBLIC *USE wird das meistens doch positiv.

    Was das Tag &MSG angeht, so ist dieses eigentlich nur für verschiedene Sprachen sinnvoll, so dass je Sprache zur Compile-Zeit die entsprechende Lib der MSGF vorgeschaltet wird und das Menü in die Sprachlib gestellt wird.

    Für wiederkehrende Definition solltest du dir halt Copystrecken mit ".im" reinziehen (z.B. COND und Keylisten).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    727
    Hallo Baldur,
    eigentlich hatte ich ja ein Problem... ;-)
    aber mit COND und CHKPGM bist du im Irrtum. Hier kann ein Exit-PGM aufgerufen werden und über den Rückkehrcode die CONDition gesetzt werden.
    Leider ist das nicht in "..Display Programming .." beschrieben sondern nur hier :

    http://publib.boulder.ibm.com/iserie...s/xuiconde.htm

    Also ich möchte über eine externe Benutzerverwaltung 15 Menüpunkte dynamisch verwalten.
    Und das sollte so wie oben beschreiben funktioneren, also

    - Menütexte im MSGF
    - Aufruf-CMDs ebenfalls in MSGF über dyn. Menuepgm
    - Berechtigungen mit Benutzer und 15 Menüpunkten in sql-Tabelle, Abfrage mit chkpgm("MENUOPTCHK")

    Ein Panel-Programm wollte ich bewusst nicht schreiben.

    Trotzdem Danke
    Sven

Similar Threads

  1. UIM Menü
    By Thimi in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 18-07-20, 16:46
  2. Fehlermeldung 0000003 bei IPL auf Panel
    By schwenth in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-07-06, 17:22
  3. Panel Groups
    By oopsy-dear in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 19-10-04, 14:42
  4. DST Menü ohne IPL?
    By asb_salem in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 15-06-04, 09:56
  5. Menü erstellen mit Art=*MENU UIM
    By FRIHO in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-04-02, 08:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •