PDA

View Full Version : DSPF und die Verwendung von MNUBAR



GutmannHGW
28-04-08, 14:33
Hallo,



A R RECORD1 MNUBAR
A MNUFLD 2Y 0I 1 2
A MNUBARCHC(1 RCDFILE 'File')
A MNUBARCHC(2 RCDEDIT 'Edit')
A MNUBARCHC(3 RCDVIEW 'View')
A MNUBARCHC(4 RCDOPT 'Options')
A MNUBARCHC(5 RCDHELP 'Help')


damit soll es angeblich ein Menü erstellen.
Bei mir steht nur *ERROR im SDA und umwandeln klappt daher auch nicht.

- definiert man ein Menü pro Bildschirm oder ist eine MNUBAR für alle Schirme gültig u. es muss daher oben "Platz" freigehalten werden?

- wie spreche ich die BAR an, d.h. woher weiß ich welche Aktion angeklickt wurde?

auf iSeries Information Center (http://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/rzakc/rzakcmst113.htm)

habe ich das Beispiel von oben kopiert, aber wie gesagt nicht zum Laufen gebracht.

Habt ihr auch Anwendungsbeispiele wo man solch eine MNUBAR nutzen kann, bzw. nutzt ihr diese auch aktiv?

Gruß

Pikachu
28-04-08, 14:54
Wie hast du denn die Formate RCDFILE, RCDEDIT, RCDVIEW, RCDOPT und RCDHELP der einzelnen MNUBARCHC (http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/rzakc/rzakcmst114.htm#HDRMNUBARC) definiert? Diese müssen anscheinend als Formate mit Schlüsselwort PULLDOWN (http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/rzakc/rzakcmst135.htm#HDRPULLD) angelegt werden.

GutmannHGW
29-04-08, 11:17
Hi

ich hab soweit nichts weiter angelegt. (deshalb wirds wahrscheinlich nicht gehen ^^)
Hast du ein Beispiel für ein lauffähiges PGM bzw. MNUBAR?

Robi
29-04-08, 11:49
Hier ein Bsp.:
in einer PF-SRC stehen Je User max. 20 Pulldown Befehle.
PC Aufrufe oder AS400 (muß von der Emulation unterstützt werden)




A************************************************* ***********************
A* *
A* (C) 2002 MEINIKAT INFORMATIONSSYSTEME, 30655 HANNOVER *
A* *
A* PROGRAMMM....: MOOH17FM MODUL.........: *
A* *
A* FUNKTION.....: *
A* *
A* AUTOR........: AZUBISOFT DATUM..........: 23.01.2002 *
A* *
A*----------------------------------------------------------------------*
A* ÄNDERUNG MIT PROJEKT : *
A* VON................. : AM: *
A* INHALT.............. : *
A************************************************* ***********************
A*%%EC
A DSPSIZ(24 80 *DS3 -
A 27 132 *DS4)
A INVITE
A PRINT
A INDARA
A WDWBORDER((*COLOR BLU) (*DSPATR RI))
A MNUBARSW(CA10)
A CF03(03)
A CF05(05)
A CF12(12)
A CA10
*A*-------------------------------------------------------------------------
A* Definition der Menüleiste und der Menüs 1 MENÜPUNKT 20 ZEILEN
*A*-------------------------------------------------------------------------
A R M20CTL
A RTNCSRLOC(&##CSRC &##CSFL &##CSPS)
A N99 DSPMOD(*DS4)
A CLRL(01)
A CSRLOC(##LINE ##POS)
A OVERLAY
A MNUBAR
A MNUBARDSP(&OPT)
A MNUFLD 2Y 0I 1 2MNUBARSEP((*COLOR BLU) (*DSPATR HI)-
A (*CHAR '-'))
A CHCAVAIL((*COLOR WHT) (*DSPATR HI))
A CHCSLT((*COLOR YLW) (*DSPATR HI))
A 10 MNUBARCHC(1 P20CTL &ML)
A ML 30A P
A OPT 2S 0H
A ##LINE 3S 0H
A ##POS 3S 0H
A ##FLD 10A H
A ##CSRC 10A H
A ##CSFL 10A H
A ##CSPS 4S 0H
A MNUCHC 2Y 0H
A R P20CTL
A PULLDOWN
A WDWBORDER((*COLOR BLU) (*DSPATR RI)-
A (*CHAR ' '))
A A20CTL 2Y 0B 1 2SNGCHCFLD
A CHANGE(90)
A CHCUNAVAIL((*COLOR YLW))
A CHECK(ER)
A CHOICE(1 &P20MP101)
A CHCCTL(1 &P20STA101)
A CHOICE(2 &P20MP102)
A CHCCTL(2 &P20STA102)
A CHOICE(3 &P20MP103)
A CHCCTL(3 &P20STA103)
A CHOICE(4 &P20MP104)
A CHCCTL(4 &P20STA104)
A CHOICE(5 &P20MP105)
A CHCCTL(5 &P20STA105)
A CHOICE(6 &P20MP106)
A CHCCTL(6 &P20STA106)
A CHOICE(7 &P20MP107)
A CHCCTL(7 &P20STA107)
A CHOICE(8 &P20MP108)
A CHCCTL(8 &P20STA108)
A CHOICE(9 &P20MP109)
A CHCCTL(9 &P20STA109)
A CHOICE(10 &P20MP110)
A CHCCTL(10 &P20STA110)
A CHOICE(11 &P20MP111)
A CHCCTL(11 &P20STA111)
A CHOICE(12 &P20MP112)
A CHCCTL(12 &P20STA112)
A CHOICE(13 &P20MP113)
A CHCCTL(13 &P20STA113)
A CHOICE(14 &P20MP114)
A CHCCTL(14 &P20STA114)
A CHOICE(15 &P20MP115)
A CHCCTL(15 &P20STA115)
A CHOICE(16 &P20MP116)
A CHCCTL(16 &P20STA116)
A CHOICE(17 &P20MP117)
A CHCCTL(17 &P20STA117)
A CHOICE(18 &P20MP118)
A CHCCTL(18 &P20STA118)
A CHOICE(19 &P20MP119)
A CHCCTL(19 &P20STA119)
A CHOICE(20 &P20MP120)
A CHCCTL(20 &P20STA120)
A P20STA101 1Y 0H
A P20STA102 1Y 0H
A P20STA103 1Y 0H
A P20STA104 1Y 0H
A P20STA105 1Y 0H
A P20STA106 1Y 0H
A P20STA107 1Y 0H
A P20STA108 1Y 0H
A P20STA109 1Y 0H
A P20STA110 1Y 0H
A P20STA111 1Y 0H
A P20STA112 1Y 0H
A P20STA113 1Y 0H
A P20STA114 1Y 0H
A P20STA115 1Y 0H
A P20STA116 1Y 0H
A P20STA117 1Y 0H
A P20STA118 1Y 0H
A P20STA119 1Y 0H
A P20STA120 1Y 0H
A*
A P20MP101 30A P
A P20MP102 30A P
A P20MP103 30A P
A P20MP104 30A P
A P20MP105 30A P
A P20MP106 30A P
A P20MP107 30A P
A P20MP108 30A P
A P20MP109 30A P
A P20MP110 30A P
A P20MP111 30A P
A P20MP112 30A P
A P20MP113 30A P
A P20MP114 30A P
A P20MP115 30A P
A P20MP116 30A P
A P20MP117 30A P
A P20MP118 30A P
A P20MP119 30A P
A P20MP120 30A P
***------------------------------------------------
* ENDE DER DEFINITIONEN ZU EINER MENÜLEISTE
***------------------------------------------------
A R S01F99
A ASSUME
A 5 1' '







Das PGM



H/COPY QCPYSRC,Z_H_ZEILE Standard Header Zeile
************************************************** ********************************************
* *
* (C) 2001 Meinikat Informationssysteme GmbH, 30655 Hannover *
* *
* PROGRAMM...: MOOH17 MODUL......: *NONE *
* *
* FUNKTION...: STEUERUNG DER MENÜLEISTE UND AUSWERTUNG DES MENÜPUNKTES *
* .. *
* AUTOR......: AZUBISOFT DATUM......: 23.01.2002 *
* ------------------------------------------------------------------------------------------ *
************************************************** ********************************************
FMOOH17FM CF E WORKSTN USROPN INFDS(DSPATR) Menüleiste
FSOURCE IF F 202 DISK USROPN
* --------------------------------------------------------------- *
* STD. VARIABLEN FÜR PGM
* --------------------------------------------------------------- *
D DSPATR DS
D SAFO 261 270
D LINE 370 370
D POS 371 371

D PTM1PARM S 2500
D PTM2PARM S 1024
D PTM3PARM S 1024
D LONG S 500
D LONGCMD S 536

D Z S 2 0
D MNU_Z S 2 0
D MNU_ZA S 2
D HK S 1 INZ('''')
D CMD S 200
D SATZ S LIKE(P940SATZ)
D VERLASSEN S 1

D MP_TAB S 30 DIM(30)
D CM_TAB S 132 DIM(30)


/COPY QPRCSRC,QCMDEXEC_
/COPY QPRCSRC,GET_MBRD_

ISOURCE KF
I 13 190 STRING
* ************************************************** ************* *
* (MAIN) H A U P T P R O G R A M M
* ************************************************** ************* *
* LÄUFT SOLANGE BIS F3 ODER ENDE GEWÄHLT WURDE
C DOW *INKL <> *ON AND *INKC <> *ON
C CLEAR OPT

C EXFMT M20CTL
C READ P20CTL 30
* WENN F12, F03 ODER EXITMENÜ
C IF *INKL = *ON OR *INKC = *ON IF: 1 *INKL = *ON OR *INKC = *usw.
C LEAVE
C ENDIF ENDIF: 1 *INKL = *ON OR *INKC = *usw.

C EXSR AUSWER
* ================

C IF VERLASSEN = 'J' IF: 1 VERLASSEN = 'J'
C LEAVE
C ENDIF ENDIF: 1 VERLASSEN = 'J'
* ENDE DER SCHLEIFE
C ENDDO ENDDO: 1 *INKL <> *ON AND *INKC <>usw.

C EVAL *INLR = *ON
* ************************************************** ************* *
* (SUBROUTINE) WERTE DIE TABELLE AUS
* ************************************************** ************* *
C AUSWER BEGSR
C IF %SUBST(CM_TAB(OPT):1:4) = '*PC*' IF: 1 %SUBST(CM_TAB(OPT):1:4) =
C EVAL LONG = 'START ' + %SUBST(CM_TAB(OPT):5)
C EVAL LONGCMD ='CALL OPN_PCDOPR PARM(' + HK + LONG
C + HK + ' N' + ')'
C ELSE ELSE: 1 %SUBST(CM_TAB(OPT):1:4) =
C EVAL LONGCMD =CM_TAB(OPT)
C ENDIF ENDIF: 1 %SUBST(CM_TAB(OPT):1:4) =

C CALLP(E) QCMD(LONGCMD:
* ==== ============
C %LEN(%TRIM(LONGCMD)))

C EVAL *INKL = *OFF

C AUSWE99 ENDSR
* ************************************************** ************* *
* (SUBROUTINE) INZSR
* ************************************************** ************* *
C *INZSR BEGSR

***------------------------------------***
* LEGE DIE BS-GRÖßE FEST
*
* SELBER etwas machen !!!!
*
***------------------------------------***
C IF DSPMOD = ' ' OR DSPMOD = '3' IF: 1 DSPMOD = ' ' OR DSPMOD = usw.
C EVAL *IN99 = *ON
C ELSE ELSE: 1 DSPMOD = ' ' OR DSPMOD = usw.
C EVAL *IN99 = *OFF
C ENDIF ENDIF: 1 DSPMOD = ' ' OR DSPMOD = usw.


*------------------------------------------------------------------------------------------------------------
* Hier auch ewas selber mache, gesucht wird in der Datei (PF-SRC ) das member username oder das menber pulldown

C EVAL MBRD_DS = GET_MBRD('*LIBL':'PULLDOWN':
C ##PGUS)

* --- SRC NICHT GEFUNDEN ---
C IF MBRD_MBR = *BLANK IF: 1 MBRD_MBR = *BLANK
C EVAL MBRD_DS = GET_MBRD('*LIBL':'PULLDOWN':
C 'PULLDOWN')
C IF MBRD_MBR = *BLANK IF: 2 MBRD_MBR = *BLANK
* RETURN
C ENDIF ENDIF: 2 MBRD_MBR = *BLANK
C ENDIF ENDIF: 1 MBRD_MBR = *BLANK

C EVAL CMD = 'OVRDBF FILE(SOURCE) TOFILE(*LIBL/' +
C 'PULLDOWN) MBR('+ %TRIM(MBRD_MBR) +
C ') OVRSCOPE(*JOB)'

C CALLP(E) QCMD(CMD :%LEN(%TRIM(CMD)))
* ==== ============
* ---------------------------------------------------------------------------- *
* ANLESEN UND ANZAHL DER ZEILEN HERAUSHOLEN DIE DANN IM P-MENÜ ANGEZEIGT WERDEN*
* ---------------------------------------------------------------------------- *
C OPEN SOURCE
C READ SOURCE 98 LESE AKTUELLES PGM

C IF *IN98 = *ON IF: 1 *IN98 = *ON
C EVAL *INKC = *ON
C ELSE ELSE: 1 *IN98 = *ON

C EVAL Z = 0
C EVAL MNU_ZA = %SUBST(STRING:40:2)
C EVAL VERLASSEN = %SUBST(STRING:62:1)
C EVAL ML = %SUBST(STRING:1:30)
C MOVEL MNU_ZA MNU_Z

C READ SOURCE 98 LESE AKTUELLES PGM
C DOW *IN98 = *OFF DOW: 1 *IN98 = *OFF
C EVAL Z = Z + 1
C EVAL MP_TAB(Z) = %SUBST(STRING:1:30)
C EVAL CM_TAB(Z) = %SUBST(STRING:38)
C READ SOURCE 98 LESE AKTUELLES PGM
C ENDDO ENDDO: 1 *IN98 = *OFF

C EVAL CMD = 'DLTOVR FILE(SOURCE) LVL(*JOB)'
C CALLP(E) QCMD(CMD :%LEN(%TRIM(CMD)))
* ==== ============
***------------------------------------***
* ÖFFNE MENÜLEISTE UND LEGE FEST WAS
* ANGEZEIGT WERDEN SOLL UND WAS NICHT
***------------------------------------***
C OPEN MOOH17FM

C EVAL P20MP101 = MP_TAB(1)
C EVAL P20MP102 = MP_TAB(2)
C EVAL P20MP103 = MP_TAB(3)
C EVAL P20MP104 = MP_TAB(4)
C EVAL P20MP105 = MP_TAB(5)
C EVAL P20MP106 = MP_TAB(6)
C EVAL P20MP107 = MP_TAB(7)
C EVAL P20MP108 = MP_TAB(8)
C EVAL P20MP109 = MP_TAB(9)
C EVAL P20MP110 = MP_TAB(10)
C EVAL P20MP111 = MP_TAB(11)
C EVAL P20MP112 = MP_TAB(12)
C EVAL P20MP113 = MP_TAB(13)
C EVAL P20MP114 = MP_TAB(14)
C EVAL P20MP115 = MP_TAB(15)
C EVAL P20MP116 = MP_TAB(16)
C EVAL P20MP117 = MP_TAB(17)
C EVAL P20MP118 = MP_TAB(18)
C EVAL P20MP119 = MP_TAB(19)
C EVAL P20MP120 = MP_TAB(20)

C WRITE P201CTL

C SETON 10
C ENDIF ENDIF: 1 *IN98 = *ON

C INZSR99 ENDSR






Die Datei Pulldown, member = Username oder Pulldown

>Befehl 15 VERLASSEN : J
>1. wrksplf wrksplf
>2. wrkactjob wrkactjob
>3. wrkusrjob wrkusrjob
>4. SQL starten STRSQL
>5. PDM starten STRPDM
>6. Msg an alle ?sndbrkmsg tomsgq(*allws)
>7. Senden per FTP FTP
>8. Telnet zu KD ?A170
>9. MO1 für Feld ?ZF
>A. MY3 für Source ?ZP
>B. MO0 für Datei ?ZD
>C. MYD für Source ?ZH
>D. DSPMSG dspmsg
>E. BRKMSG BM ?sndmsg tousr(bm) msgtype(*inq)
>D. WRKJOB WRKjob



--------------------
und die anleitung *
--------------------

Befehl:
Was soll ausgeführt werden (TEXT)
Nach dem '>' kommt die SchnellTaste
12 : Anzahl Befehle in diesem PulldownMenü

Verlassen : N
Soll das Pulldown danach verlassen werden ?
(gilt für alle Befehle)
Muster ist das Member PULLDOWN
Individuell je User zu kopieren als USERNAME

TEXT BEFEHL (? = mit prompt) *PC* = strpccmd

>1. Active Jobs WRKACTJOB
>2. Benutzerjobs WRKUSRJOB
>3. Objektsperren ?WRKOBJLCK
>4. Mit Spool's arb. WRKSPLF
>5. Nachrichten anz. DSPMSG
>6. Mit Jobq's arb. WRKJOBQ
>7. Mit Outq's arb. WRKOUTQ
>8. SQL starten STRSQL
>9. PDM starten STRPDM
>A. Mit Teildateien arbeiten ?WRKMBRPDM
>B. Mit Objekten arbeiten ?WRKOBJPDM
>E. Nochmal wrkactjob ?WA
>F. WORD *PC*WINWORD.EXE

GutmannHGW
29-04-08, 12:27
Okay werde ich mal testen - gibts ne möglichkeit in windows zu programmieren u. das dann zum compilieren u. ausführen auf die AS400 zu "schieben"?

So tippe ich mir einen Wolf um das ganze jetzt lauffähig zu bekommen :)

Pikachu
29-04-08, 12:30
FTP ?

GutmannHGW
29-04-08, 13:26
Habe ich noch nicht probiert, aber gibt es keine richtige Anwendung um auf dem PC zu entwickeln? Womöglich Freeware?