View previous topic :: View next topic
|
Author |
Message |
newsysprg
New User
Joined: 12 Jul 2016 Posts: 5 Location: India
|
|
|
|
1) Panel defined- xxx.rfa.panel
2) Rexx to invoke the panel and create the ISPF Table. - xxx.rfa.panel.pgm
however my ispf table is not getting created. |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
DO NOT post attachments, because I for one refuse to open them.
Please post whatever it is using the code tabs. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10872 Location: italy
|
|
|
|
Learn to use the proper terminology...
YOU DO NOT DEFINE PANELS IN REXX ,
You define using the syntax described in the ISPF manuals
Panel definition inlined here
Code: |
)Attr Default(%+_)
/* % type(text ) intens(high) Defaults displayed for */
/* + type(text ) intens(low ) information only */
/* _ type( input) intens(high) caps(on ) just(left ) */
! type( input) intens(high) caps(on ) just(left ) pad('''')
¨ type( input) intens(low ) caps(off) just(asis ) pad('_')
# type(output) intens(high) caps(off) just(right) pad('0')
)Body Expand(//)
%-/-/- AVIS REquest Menu -/-/-
%Command ===>_zcmd / /%Scroll ===>_amt +
%
+This direction line tells the user how to use the panel:
+
%Action IRNO IRDESC IRSTAT IRSYS
+
)Model clear(iractcd)
!z + #z +¨z + ¨z +¨z
)Init
.ZVARS = '(iractcd irno irdesc irstat irsys )'
&amt = csr
)Reinit
)Proc
/* Process )BODY fields here */
If (&ztdsels ¨= 0000) /* If user selected some rows ... */
&v4 = mmmm /* ... process )MODEL fields here */
)End
|
the REXX script inlined here
Code: |
/* REXX * coded in U000568.RFA.PANEL.PGM/
ADDRESS ISPEXEC "CONTROL ERRORS RETURN"
ADDRESS ISPEXEC "LIBDEF ISPTABL DATASET ID('U000568.ISPTLIB')"
ADDRESS ISPEXEC "TBOPEN IRTABLE"
IF RC = 8 THEN /* IF TABLE DOES NOT ALREADY EXIST, CREATE IT WITH ONE *
DO /* BLANK ROW */
ADDRESS ISPEXEC "TBCREATE IRTABLE KEYS(IRNO)",
"NAMES(IRACTCD, IRDESC, IRSTAT, IRSYS )"
ADDRESS ISPEXEC "TBVCLEAR IRTABLE"
IRNO = 1
NEWIRNO = IRNO + 1
ADDRESS ISPEXEC "TBADD IRTABLE"
END
ELSE /* GET LAST TABLE ROW TO INITIALIZE NEXT INCIDENT RECORD */
DO
ADDRESS ISPEXEC "TBBOTTOM IRTABLE"
NEWIRNO = IRNO + 1
ADDRESS ISPEXEC "TBTOP IRTABLE"
END
ZTDSELS = 0
ZTDTOP = 1
ZCMD = ""
CURSOR_LOC = "CSRROW(1) CURSOR(IRACTCD)"
DO FOREVER
ADDRESS ISPEXEC "TBTOP IRTABLE"
ADDRESS ISPEXEC "TBSKIP IRTABLE NUMBER("ZTDTOP")"
IF ZTDSELS = 0 THEN
DO
ADDRESS ISPEXEC "LIBDEF ISPPLIB DATASET ID('U000568.RFA.PANEL')"
ADDRESS ISPEXEC "TBDISPL IRTABLE PANEL(IRPANEL)",
"AUTOSEL(NO)",
CURSOR_LOC
CURSOR_LOC = ""
END
ELSE
ADDRESS ISPEXEC "TBDISPL IRTABLE"
DISPLAY_RC = RC
IF DISPLAY_RC <= 4 THEN
DO
IRACTCD = TRANSLATE(STRIP(IRACTCD))
SELECT
WHEN IRACTCD = "" THEN /* USER TYPED OVER DATA ON THE LINE */
DO
ADDRESS ISPEXEC "TBPUT IRTABLE"
ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"
CURSOR_LOC = "CURSOR(IRACTCD) CSRROW("CRPNAME")"
END
WHEN IRACTCD = "D" THEN /* DELETE THE LINE */
DO
IRACTCD = ""
ADDRESS ISPEXEC "TBDELETE IRTABLE"
ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"
CRPNAME = CRPNAME + 1
CURSOR_LOC = "CURSOR(IRACTCD) CSRROW("CRPNAME")"
END
WHEN IRACTCD = "I" THEN /* INSERT A BLANK LINE */
DO
IRACTCD = ""
ADDRESS ISPEXEC "TBPUT IRTABLE"
ADDRESS ISPEXEC "TBVCLEAR IRTABLE"
IRNO = NEWIRNO
NEWIRNO = NEWIRNO + 1
ADDRESS ISPEXEC "TBADD IRTABLE"
ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"
CURSOR_LOC = "CURSOR( IRDESC) CSRROW("CRPNAME")"
END
WHEN IRACTCD = "P" THEN /* DISPLAY A PANEL WITH MORE DETAIL */
DO
IRACTCD = ""
ADDRESS ISPEXEC "CONTROL DISPLAY SAVE"
ADDRESS ISPEXEC "DISPLAY PANEL(IRDISPAN)"
ADDRESS ISPEXEC "TBVCLEAR IRTABLE"
ADDRESS ISPEXEC "CONTROL DISPLAY RESTORE"
ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"
CURSOR_LOC = "CURSOR( IRDESC) CSRROW("CRPNAME")"
END
OTHERWISE
ADDRESS ISPEXEC "TBPUT IRTABLE"
ZERRSM = "INVALID ACTION CODE"
ZERRLM = "ACTION CODE '"IRACTCD"' IS NOT VALID."
ZERRALRM = "YES"
ADDRESS ISPEXEC "SETMSG MSG(ISRZ002)"
ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"
CURSOR_LOC = "CURSOR(IRACTCD) CSRROW("CRPNAME")"
END
ZTDSELS = ZTDSELS - 1
END
IF DISPLAY_RC > 4 | ZTDSELS <= 0 THEN
DO
ZVERB = TRANSLATE(WORD(ZCMD,1))
IF DISPLAY_RC = 8 THEN /* END, RETURN, =X, ETC. */,
ZVERB = "QUIT"
SELECT
WHEN ZVERB = "QUIT" THEN
DO
IF DISPLAY_RC = 8 THEN
ADDRESS ISPEXEC "TBCLOSE IRTABLE"
ELSE
ADDRESS ISPEXEC "TBEND IRTABLE"
LEAVE
END
WHEN ZVERB = "SAVE" THEN
DO
ADDRESS ISPEXEC "TBSAVE IRTABLE"
END
WHEN ZVERB = "" THEN
NOP
OTHERWISE
ZERRSM = "INVALID COMMAND"
ZERRLM = "ACTION CODE '"ZVERB"' IS NOT VALID."
ZERRALRM = "YES"
ADDRESS ISPEXEC "SETMSG MSG(ISRZ002)"
CURSOR_LOC = "CURSOR(ZCMD)" x
END
END
END
ADDRESS ISPEXEC "LIBDEF ISPTABL"
|
for readability learn to use lower and upper case |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2546 Location: Silicon Valley
|
|
|
|
Show us a rexx trace. |
|
Back to top |
|
|
newsysprg
New User
Joined: 12 Jul 2016 Posts: 5 Location: India
|
|
|
|
Found my System ISPTLIB and Table Created.
I allocated ISPTLIB as per the manual and tried to create it there wasn't working.
However will try later |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2546 Location: Silicon Valley
|
|
|
|
Quote: |
I allocated ISPTLIB as per the manual |
Can you elaborate?
It reads from ISPTLIB and writes to ISPTABL. I think you need an additional LIBDEF for ISPTLIB.
"wasn't working" is vague. Run a rexx trace and pay attention to the return codes. |
|
Back to top |
|
|
newsysprg
New User
Joined: 12 Jul 2016 Posts: 5 Location: India
|
|
|
|
Worked. Thanks Pedro. |
|
Back to top |
|
|
|