The following example shows us how to prepare a report and preview it using RM/COBOL + RPV.
Program takes data from CUSTOMER.DAT file and transforms it into a file readable/printable by Rpv.
Although this program generates virtually the same result than the example #1, its format is RPX instead of RPV.
The most four important advantages of RPX formats are: 1- Format RPX lets you send ONLY THE DATA and it is not necessary that you FORMAT the report inside your program.
2- It is not necessary to recompile your CBL program to make a change in your report.
3- The CBL code is smaller and is more readable by others.
4- The RPX code generated is quite smaller.
*********************************************************
* RM/COBOL + RPV EXAMPLE (RPX FORMAT)
*
* THIS PROGRAM GENERATES A REPORT EXTRACTING DATA
* FROM 'CUSTOMER.DAT' FILE.
*
* THE RESULTS OF THIS FILE IS THE SAME REPCUS_1.CBL
*
*********************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. REPCUS-1.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
COPY SELCUS.CPY.
SELECT OUT-PRINTER ASSIGN TO DISK
"C:COBOLRPVOUTPUTREPCUS_2.RPX"
FILE STATUS IS STATUS-PRN.
DATA DIVISION.
FILE SECTION.
COPY MAPCUS.CPY.
FD OUT-PRINTER.
01 LINE-TO-PRINT PIC X(220).
WORKING-STORAGE SECTION.
77 STATUS-ISM PIC XX VALUE SPACES.
77 STATUS-PRN PIC XX VALUE SPACES.
77 STATUS-KEY PIC 99 VALUE ZEROS.
77 AXEPT PIC X VALUE SPACE.
* HERE WE DECLARE THE LINES TO BE PRINTED.
01 LINE-DETAIL.
03 FILLER PIC X(10) VALUE '|MYDETAIL|'.
03 CUS-ID-PRN PIC Z(9) VALUE SPACES.
03 FILLER PIC X(1) VALUE '|'.
03 CUS-NAME-PRN PIC X(20) VALUE SPACES.
03 FILLER PIC X(1) VALUE '|'.
03 CUS-LASTNAME-PRN PIC X(20) VALUE SPACES.
03 FILLER PIC X(1) VALUE '|'.
03 CUS-ADDRESS-PRN PIC X(50) VALUE SPACES.
03 FILLER PIC X(1) VALUE '|'.
03 CUS-PHONE-PRN PIC X(20) VALUE SPACES.
03 FILLER PIC X(1) VALUE '|'.
01 SCR.
03 ARC-CRT.
05 LINE 3 COLUMN 10 VALUE
'Press ENTER to generate the report.'.
05 COLUMN PLUS 1 PIC X USING AXEPT.
PROCEDURE DIVISION.
DECLARATIVES.
C-E SECTION.
USE AFTER STANDARD ERROR PROCEDURE ON
CUSTOMERS OUT-PRINTER.
END DECLARATIVES.
PRIMA SECTION.
MAIN-PROGRAM.
*
DISPLAY SPACE ERASE.
MOVE ZEROS TO STATUS-KEY.
DISPLAY ARC-CRT.
ACCEPT ARC-CRT.
ACCEPT STATUS-KEY FROM ESCAPE KEY.
IF STATUS-KEY = 13
OPEN INPUT CUSTOMERS
OPEN OUTPUT OUT-PRINTER
PERFORM PROCESS THRU END-PROCESS
END-IF.
DISPLAY SPACE ERASE.
STOP RUN.
*
*--------------------------------------------------------------
PROCESS.
*
WRITE LINE-TO-PRINT FROM 'TEMPLATE=C:COBOLRPVTEMP_CUS.RPV'.
PERFORM UNTIL STATUS-ISM = '10'
READ CUSTOMERS NEXT
IF STATUS-ISM = '00'
MOVE CUS-ID TO CUS-ID-PRN
MOVE CUS-NAME TO CUS-NAME-PRN
MOVE CUS-LASTNAME TO CUS-LASTNAME-PRN
MOVE CUS-ADDRESS TO CUS-ADDRESS-PRN
MOVE CUS-PHONE TO CUS-PHONE-PRN
WRITE LINE-TO-PRINT FROM LINE-DETAIL
END-IF
END-PERFORM.
CLOSE CUSTOMERS OUT-PRINTER.
CALL 'SYSTEM' USING
RPV Report
TEMPLATE=C:\COBOLRPV\TEMP_CUS.RPV
|MYDETAIL| 520|Alan |Bernard |85 Wilson Avenue. |+44 (0)870-444-4563 |
|MYDETAIL| 877|Robert |Bollini |2607 S Milwaukee Ave |(773) 489-9954 |
|MYDETAIL| 899|Ian Edward |Forbes |8319 N Saint Lauwrence Ave |(773) 783-5197 |
|MYDETAIL| 1015|Ian |Forbes |655 Masselin Ave. |(323)933-32477 |
|MYDETAIL| 1100|Ralph |Wilson |25 Windermere lane. Siparia. |+61-3-3341000 |
|MYDETAIL| 1244|Robert |Gancar |778 W 42th Street |(212) 12474645 |
|MYDETAIL| 2541|Jose |Pernia |Benarabe 128 |+34-964-2457479 |
|MYDETAIL| 2555|Barry |Gasshi |5 Wilson Avenue |+44-020-24579 |
|MYDETAIL| 3241|Michael |Jefferson |17 Wickfield House Wilson Grove |+44-5646427 |
|MYDETAIL| 3652|Jaques |Piaget |1, av. de L'Imperatrice |05 59416455 |
|MYDETAIL| 9125|Edmondo |Spadaveccia |Via F. Caracciolo 14-80154 |+81-5980511 |
|MYDETAIL| 85541|Xavier |Parcero |Av. Cutitiba 3212 |+52-74-4653121 |
|MYDETAIL| 87777|Adrian |Arjones |Libertador 8621 |+54-1-45641787 |
|MYDETAIL| 124632|Carlos |Chavez |Av. Los Leones 1125 |+562-524412 |
|MYDETAIL| 2245145|Andrew |Adler |Av. Los Samanes 1111 |+582-7829451 |