IBM AS/400 Manuel D’Utilisation

Page de 489
 
 
Example of Module with Multiple Procedures
 
* Body of procedure
 
*ISO
MOVE
DUEDATE
DateDue
 
CurDate
SUBDUR
DateDue
DaysLate:*D
C
IF
DaysLate > 60 AND
C
AMOUNT > 100.00
 
C
RETURN
'1'
 
C
ELSE
 
C
RETURN
'0'
 
C
ENDIF
 
P InArrears
E
 
*--------------------------------------------------------------
* FmtCust formats CUSTNAME, CUSTNUM, STREETNAME etc into
* readable forms
 
*
 
* Parameters:
Name
(output)
 
*
Address
(output)
* Globals:
CUSTNAME, CUSTNUM, STREETNUM, STREETNAME, CITY
 
STATE, ZIP
 
* Returns: 
(none)
 
*--------------------------------------------------------------
 
P FmtCust
B
 
D FmtCust
PI
 
D
Name
100A
 
D
Address
100A
 
D ZipChar
S
5A
 
*--------------------------------------------------------------
* CUSTNAME and CUSTNUM are formatted to look like this:
*
A&P Electronics
(Customer number 157)
 
*--------------------------------------------------------------
C
EVAL
Name = CUSTNAME + ' '
C
+ '(Customer number '
C
+ %trimr(NumToChar(CUSTNUM)) + ')'
 
*--------------------------------------------------------------
* StreetNum, STREETNAME, CITY, STATE, and ZIP are formatted to look like:
*
27 Garbanzo Avenue, Smallville 51423
 
*--------------------------------------------------------------
 
C
MOVEL 
ZIP
ZipChar
C
EVAL
Address = %trimr(NumToChar(STREETNUM))
C
+ ' ' + %trimr(STREETNAME) + ', '
C
+ %trim(CITY) + ' ' + %trim(STATE)
C
+ ' ' + ZipChar
 
P FmtCust
E
Figure  22  (Part  3  of  3).  ILE RPG Complete Source for ARRSRPT Module
Note the following about ARRSRPT:
¹
The definition specifications begin with the prototypes for the prototyped calls.
A /COPY file is used to supply the prototype for the called procedure
NumToChar.
The prototypes do not have to be first, but you should establish an order for the
different types of definitions for consistency.
¹
The date field CurDate is a global field, meaning that any procedure in the
module can access it.
¹
The main procedure is simple to follow. It contains calculation specifications for
the two main tasks: the I/O, and an initialization routine.
¹
Each subprocedure that follows the main procedure contains the details of one
of the tasks.
   
Chapter 4. Creating an Application Using Multiple Procedures
43