Beruflich Dokumente
Kultur Dokumente
-----------------------------------------------------------------------------------------/******************REXX******************/
SAY "HI,WHAT'SOUR NAME?";PULL NAME
IF NAME="" THEN
SAY "INVALID NAME" /*NAME MUST BE THERE*/
ELSE
SAY "WELCOME" NAME
2)PGM2
------------------------------------------------------------------------------------------/******************REXX******************/
PROBLEM="8 4 0 * 2 + +"
DO WHILE PROBLEM \=""
PARSE VAR PROBLEM ITEM PROBLEM
IF DATATYPE(ITEM)=NUM THEN
PUSH ITEM
ELSE
DO
PULL NUM1
PULL NUM2
INTERPRET "PUSH" NUM1 ITEM NUM2
END
END
PULL ANSWER
SAY ANSWER
3) PGM3
-----------------------------------------------------------------------------------------/*******************REXX*************************/
"ALLOC F(TEST) OLD DS('VAGGARW.TEST.DATASET')"
"EXECIO 1 DISKRU TEST 1"
PARSE PULL LINE
SAY LINE
LINE1 = LEFT(LINE,5)
LINE2 = "IT"
LINE3 = RIGHT(LINE,143)
NEWLINE = LINE1||LINE2||LINE3
PUSH NEWLINE
"EXECIO 1 DISKW TEST"
"EXECIO 0 DISKW TEST (FINIS"
"FREE F(TEST)"
4)PGM4
-------------------------------------------------------------------------------------------
/************REXX****************/
PARM = '2005-02-282005-03-082005-02222005-01-312005-02-012005-02-27NNN'
CALL SUB_JCL PARM
SUB_JCL:PROCEDURE
PARSE ARG PARM
"ISPEXEC LIBDEF ISPSLIB DATASET ID('VAGGARW.TEST.JCLLIB')"
"ISPEXEC FTOPEN TEMP"
"ISPEXEC FTINCL REXPGM1"
"ISPEXEC FTCLOSE"
"ISPEXEC VGET (ZTEMPF) SHARED"
"SUBMIT '"ZTEMPF"'"
EXIT 0
5) DATE CONVERSION
-----------------------------------NEXT_DATE_RTN: PROCEDURE
PARSE ARG NEXT_DATE
DATE_U = TRANSLATE('56/78/34',NEXT_DATE,'1234-56-78')
DATE_B = DATE('B',DATE_U,'U')
DATE_B1 = DATE_B +1
DATE_U1 = DATE('U',DATE_B1,'B')
NEXT_DATE = TRANSLATE('2034-56-78',DATE_U1,'56/78/34')
RETURN NEXT_DATE
/*************REXX*****************/
DATE_A = TRANSLATE('2005-04-30','','-')
SAY 'STANDARD' DATE_A
PARSE VAR DATE_A YYYY MM DD
DATE_S = YYYY||MM||DD
SAY DATE_S
DATE_B = DATE('B',DATE_S,'S')
SAY 'US DATE' DATE_B
DATE_NEXT = DATE_B + 1
SAY 'DATE_NEXT' DATE_NEXT
DATE_S = DATE('S',DATE_NEXT,'B')
SAY DATE_S
EXIT
$ TYPE(TEXT)
COLOR(YELLOW)
)BODY
%------------ EXAMPLE FOR USING A DYNAMIC AREA ---------------------%
%COMMAND ===>_ZCMD
%SCROLL ===>_AMT +
%
+ THIS AREA IS FIXED. SIZE: &SIZE
+
+ THIS IS AN INPUT FIELD%===>_SOMEVAR +
+
+THIS IS EXTENDABLE @DYNAREA
@
$THIS SHOULD BE AT THE BOTTOM OF THE SCREEN WHEN IN FULL SCREEN.
)END
7)DYNAMIC AREA PROGRAM
-------------------------------------------------------/* REXX - DYNAMIC AREA EXAMPLE */
"ISPEXEC LIBDEF ISPPLIB DATASET ID('RSARIN.OR.REXX.EXEC')"
ADDRESS ISPEXEC
/* CALLS GO TO ISPF
*/
RED = '01'X
/* ASSIGN COLORS TO
*/
BLUE = '02'X
/* ATTRIBUTE BYTES
*/
GREEN = '03'X
/* FOUND IN THE DATA
*/
WHITE = '04'X
MAXLINES = 600
/* SET MAX NUMBER OF LINES*/
DYNDATA = ''
/* INITIALIZE DATA
*/
DO A = 1 TO MAXLINES BY 3
/* CREATE SOME DUMMY DATA */
DYNDATA=DYNDATA||WHITE||LEFT('THIS IS'RED ||'RED 'WHITE||A , 29)
DYNDATA=DYNDATA||WHITE||LEFT('THIS IS'BLUE ||'BLUE 'WHITE||A+1, 29)
DYNDATA=DYNDATA||WHITE||LEFT('THIS IS'GREEN||'GREEN'WHITE||A+2, 29)
END
/*
ADD A BOTTOM OF DATA MAKER TO THE END OF THE DATA
*/
DYNDATA = DYNDATA||BLUE||CENTRE(GREEN||'BOTTOM'||BLUE,29,'*')
CURLINE = 1;
*/
/*-------------------------------------------------------------------*/
/* DISPLAY LOOP UNTIL END OR ERROR
*/
/*-------------------------------------------------------------------*/
DO UNTIL DISPRC > 0
DYNAREA = SUBSTR(DYNDATA,1+(CURLINE-1)*30) /* SET DYNAMIC VARIABLE */
SIZE = LENGTH(DYNAREA)
/* SET A SCALAR VARIABLE */
'ISPEXEC DISPLAY PANEL(DYNAREAP)'
/* DISPLAY THE DATA
*/
DISPRC = RC
/* SAVE RETURN CODE
*/
'ISPEXEC VGET (ZVERB,ZSCROLLA,ZSCROLLN)' /* GET SCROLL VALUES
*/
SELECT
/* PROCESS SCROLLING
*/
WHEN(ZVERB = 'UP') THEN
/* SCROLL UP
*/
IF ZSCROLLA = 'MAX' THEN
/* IF SCROLL WAS MAX
*/
CURLINE = 1
/*
SCROLL TO TOP
*/
ELSE
/* ELSE A NUMBER IS KNOWN*/
CURLINE = MAX(1,CURLINE-ZSCROLLN); /* (MAXIMUM IS TOP)
*/
WHEN(ZVERB = 'DOWN') THEN
/* SCROLL DOWN
*/
IF ZSCROLLA = 'MAX' THEN
/* IF SCROLL WAS MAX
*/
CURLINE = MAXLINES
/*
SCROLL TO BOTTOM
*/
ELSE
/* ELSE A NUMBER IS KNOWN*/
CURLINE = MIN(MAXLINES,CURLINE+ZSCROLLN); /* (MAX IS BOTTOM) */
OTHERWISE;
/* COULD USE LEFT & RIGHT TOO
*/
END
END
/* END OF DISPLAY LOOP
*/