so I'm back to the good old z/VM CMS and VSE after 25 years z/OS. I try to write a REXX Dialog on CMS but I can't find how I can do that. I want open a Panel for some input data's and display other values from a save before.
I need one Panel & a DB or a VSAM File to save the data's. How can build a panel on CMS and how can I call it from my REXX? Maybe there are nothing that's look like in ISPF?
But we don't have ISPF. I need a other solution to display a panel or a table. I need full Dialog in zVM/CMS like how it is in z/OS ISPF. Has someone a idea?
IBM had a product on VM back in the 90s that was free called NEATWIND. You could do dialogs like ISPF ..panels, popups, etc..check with your sys programmer to see if you have it
Code:
/* */
do forever
trace off
'MAKEBUF'
queue "Network Status Controller Name: @@@@@@@@@@ &ASK."
queue " "
'EXEC NEATWIND (DATAENTRY OUTVARS (CTLA)',
'BTITLE (%YCPG Controller Search%!) PFHIGHLITE I/S',
'PF3=Exit PF12=Cancel FORE=B'
$rc = rc
'DROPBUF'
if $rc = 0 then nop
if $rc = 3 then exit
if CTLA = ' '
then exit
else do
ctlb=translate(ctla)
'EXECIO * DISKR COASTAL DBASE * (FINIS LO $'ctlb'$ STEM X'
if rc=0
then do
as=substr(X1,1,10)
ct=substr(X1,11,20)
st=substr(X1,32,2)
lin=substr(X1,35,10)
pu=substr(X1,46,10)
co=substr(X1,57,25)
ph=substr(X1,83,12)
no=substr(X1,97,4)
sw=substr(X1,102,10)
sy=substr(X1,112,10)
'MAKEBUF'
queue '%WSystem %R=> %~'sy'%!'
queue '%WController %R=> %T'as
queue '%WCity, State %R=> %T'ct st
queue '%WLine %R=> %T'lin
queue '%WPU or Router %R=> %T'pu
queue '%WContact %R=> %T'co
queue '%WTelephone %R=> %T'ph
queue '%WNetwork Owner %R=> %T'no
queue '%WSNA Switch Node %R=> %T'sw
queue ' '
'EXEC NEATWIND (BTITLE (%YCPG Controller Info%!) PFHIGHLITE I/S',
'PF3=Exit PF12=Cancel FLARE=G FORE=R'
$rc = rc
'DROPBUF'
if $rc = 3 then exit
if $rc = 12 then exit
end
else do
'MAKEBUF';
queue "&STOP1."
queue "&STOP2.No controller was found matching your entry"
queue "&STOP3.Please reenter."
'EXEC NEATWIND 3 (FORE=TURQ SAA NOWAIT SQUEEZE'
'DROPBUF'
'SLEEP 2 SEC'
end
end
end
exit
Also, you could use Xedit&Rexx to write full screen menus...found this example in one of my saved sources...it uses Xedit and NEATWIND
Code:
/* REXX */
me=userid()
ti=time()
command set ctlchar '%' escape
command set ctlchar '@' protect blue high
command set ctlchar '›' protect green nohigh
command set ctlchar '!' protect white high
command set ctlchar '$' noprotect white underline
command set ctlchar '&' protect red high
command set msgline on 24 overlay
command set color msgline white
command set pre off
message = right('(C) COPYRIGHT IBM Global Services 1997.',40)
do forever
call display_screenrscs
read nochange tag
do queued()
pull key line column string
select
when key = 'RES'
then select
when string = 1 then call r117
when string = 2 then call r18
when string = 3 then call sr2
when string = 4 then call r173
when string = 5 then call r174
when string = 6 then call r84
when string = 7 then call r175
when string = 8 then call ch5
when string = 9 then call chgcoa
when string = 10 then call end
when string = 90 then call bye
otherwise message = right('Specified menu selection is not correct.',42)
end
when key = 'ETK' | string = 'COMMAND' then do
message = right('Type option number.',21)
ti=time()
end
when key = 'PFK' then
select
when line = 3 | line = 12 then do
message = ' '
cms desbuf
command quit
exit
end
when line = 1 then call hlp
when line /= 3 | line /= 12 | line /= 1 then do
message = right('Function key not allowed.',27)
end
end
otherwise message = right('Specified menu selection is not correct.',42)
end
end
end
exit
display_screenrscs:
s = 'set'
r = 'reserved'
n = 'noh'
s cmdline off
s tofeof off
s r 1 n '%@RSCS %!',
center('Rscs ',50),
'%@'
s r 2 n '%@ %@',
right('System: RALVM17',65),
'%@'
s r 3 n ' %@Select one of the following:'
s r 4 n
s r 5 n ' %›1. Query %&RALVM17 %›to %!RALAS1 %›connection'
s r 6 n ' %›2. Query %&RALVM8 %›to %!RALAS1 %›connection'
s r 7 n ' %›3. Query %&RALVMS %›to %!RALAS2 %›connection'
s r 8 n ' %›4. Query %&RALVM17 %›to %!RALAS3 %›connection'
s r 9 n ' %›5. Query %&RALVM17 %›to %!RALAS4 %›connection'
s r 10 n ' %›6. Query %&RALVM8 %›to %!RALAS4 %›connection'
s r 11 n ' %›7. Query %&RALVM17 %›to %!CLTAS5 %›connection'
s r 12 n ' %›8. Query %&CHARVS01 %›to %!CLTAS5 %›connection'
s r 13 n ' %›9. Query %&CHGVM1 %›to %!COASTAL %›connection'
s r 14 n ' %›10. Query %&ATLVM10 %›to %!ENDAS400 %›connection'
s r 15 n
s r 16 n
s r 17 n
s r 18 n ' %›90. Signoff'
s r 19 n
s r 20 n ' %@Type a menu option below:'
s r 21 n ' %$ %›'
s r 22 n
s r 23 n ' %@F1=Help F3=Exit F12=Cancel %&' me' 'ti
s r 24 n '%!'
if message ^= " " then do; emsg message; message=' ';end;
cursor screen 21 7
return
r117:
sm rscs q ralas1
message = ' '
return
r18:
sm rscs cmd ralvm8 q ralas1
message = right('Wait 2 seconds for response from RSCS... Pr',
|| 'ess ENTER again. ',62)
return
sr2:
sm rscs cmd ralvms q ralas2
message = right('Wait 2 seconds for response from RSCS... Pr',
|| 'ess ENTER again. ',62)
return
r173:
sm rscs q ralas3
message = ' '
return
r174:
sm rscs q ralas4
message = ' '
return
r84:
sm rscs cmd ralvm8 q ralas4
message = right('Wait 2 seconds for response from RSCS... Pr',
|| 'ess ENTER again. ',62)
return
r175:
sm rscs q cltas5
message = ' '
return
ch5:
sm rscs cmd cltvm1 q charvs01
message = right('Wait 2 seconds for response from RSCS... Pr',
|| 'ess ENTER again. ',62)
return
cltp:
sm rscs cmd cltvm1 q s1043270
message = right('Wait 2 seconds for response from RSCS... Pr',
|| 'ess ENTER again. ',62)
return
chgcoa:
sm rscs cmd chgvm1 q coastal
message = right('Wait 2 seconds for response from RSCS... Pr',
|| 'ess ENTER again. ',62)
return
end:
sm rscs cmd atlvm10 q endas400
message = right('Wait 2 seconds for response from RSCS... Pr',
|| 'ess ENTER again. ',62)
return
bye:
cp logoff
hlp:
'MAKEBUF'
queue "%w Main Menu - Help"
queue " "
queue " The%wRSCS%!menu allows you to query the status "
queue " of%wRSCS%!(Remote Spooling Communications Subsystem)"
queue " to%wQSNADS%!(SNA Distribution Services Subsystem) "
queue " connections. "
queue " "
queue "%wHow to use this Menu"
queue " "
queue " To select a menu option, type the option number "
queue " and press Enter. "
queue " "
queue " "
queue "%wOption 1. (RALVM17 to RALAS1) "
queue " "
queue " Select this option to query the status of the%yVM/RALVM17"
queue " to%yAS/400/RALAS1%!connection. "
queue " "
queue "%wOption 2. (RALVM8 to RALAS1) "
queue " "
queue " Select this option to query the status of the%yVM/RALVM8"
queue " to%yAS/400/RALAS1%!connection. "
queue " "
queue "%wOption 3. (RALVMS to RALAS2) "
queue " "
queue " Select this option to query the status of the%yVM/RALVMS"
queue " to%yAS/400/RALAS2%!connection. "
queue " "
queue "%wOption 4. (RALVM17 to RALAS3) "
queue " "
queue " Select this option to query the status of the%yVM/RALVM17"
queue " to%yAS/400/RALAS3%!connection. "
queue " "
queue "%wOption 5. (RALVM17 to RALAS4) "
queue " "
queue " Select this option to query the status of the%yVM/RALVM17"
queue " to%yAS/400/RALAS4%!connection. "
queue " "
queue "%wOption 6. (RALVM8 to RALAS4) "
queue " "
queue " Select this option to query the status of the%yVM/RALVM8"
queue " to%yAS/400/RALAS4%!connection. "
queue " "
queue "%wOption 7. (RALVM17 to CLTAS5) "
queue " "
queue " Select this option to query the status of the%yVM/RALVM17"
queue " to%yAS/400/CLTAS5%!connection. "
queue " "
queue "%wOption 8. (CHARVS01(CLTSY6) to CLTAS5) "
queue " "
queue " Select this option to query the status of the%yMVS/CHARVS01"
queue " to%yAS/400/CLTAS5%!connection. The CHARVS01 system is also"
queue " known as CLTSY6. "
queue " "
queue "%wOption 9. (CHGVM1 to COASTAL) "
queue " "
queue " Select this option to query the status of the%yVM/CHGVM1"
queue " to%yAS/400/COASTAL%!connection. "
queue " "
queue "%wOption 10. (ATLVM10 to ENDAS400) "
queue " "
queue " Select this option to query the status of the%yVM/ATLVM10"
queue " to%yAS/400/ENDAS400%!connection. "
queue " "
queue "%wOption 90. (SIGNOFF) "
queue " "
queue " Select this option to end the job on the current display"
queue " station. "
queue " "
queue " %wFunction Keys - Help"
queue " "
queue "%wF1=Help"
queue " Provides information about using this menu."
queue " "
queue "%wF3=Cms"
queue " Ends the current task and returns to CMS."
queue " "
queue "%wF12=Cancel"
queue " Ends the current task and returns to CMS."
'EXEC NEATWIND (SAA90 BTITLE (%yHelp%!) FORE=B PFHIGHLITE'
$rc = rc
'DROPBUF'
if $rc = 0 then return
if $rc = 9999 then return
say $rc