GDDM-PGF V2R1.3 Programming Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF | BOOK


Example programs

GDDM-PGF V2R1.3 Programming Guide and Reference
SC33-0333-01



This section contains example programs that demonstrate calling the ICU from an application program with the CHART call.

See the GDDM-PGF Application Programming Guide for examples of programs using the CSxxxx calls.

The first CHART call program, shown in Figure 11, calls the ICU to display program-supplied data. It creates a line graph with three lines and five points on each line. It shows how to use the chart_control structure, the data value parameters, and the CHART call.

Figure 12 shows how to send a chart to a page printer. The name of the chart is specified as a parameter to the program. The type of printer must be specified in a DSOPEN statement. In this case, it is an IBM 4250 printer (a family-4 printer in GDDM terms).

For more information about the DSOPEN and DSUSE calls, see the GDDM Base Application Programming Reference book.


      LGRAPH: PROC OPTIONS(MAIN);

%INCLUDE ADMUPINC; /* 'C..' ENTRY POINTS */ %INCLUDE ADMUPINF; /* 'F..' ENTRY POINTS */

DCL 1 CHART_CONTROL, /* CHART CONTROL PARAMETER */ 2 LEVEL FIXED BIN(31) INIT(1), /* FULL STRUCTURE FORMAT */ 2 DISPLAY FIXED BIN(31) INIT(1), /* ALL MENU PANELS ACCESSIBLE */ 2 HELP FIXED BIN(31) INIT(1), /* PF KEYS SHOWN ON DISPLAY */ 2 ISOLATE FIXED BIN(31) INIT(0), /* SAVE/RESTORE/DIRECTORY OK */ 2 FORMNAME CHAR(8) INIT('*'), /* DEFAULT CHART FORMAT */ 2 DATANAME CHAR(8) INIT('*'), /* DATA IS PASSED IN ARRAY x */ 2 BINDING FIXED BIN(31) INIT(0), /* DATA IS NORMAL IE. TIED */ 2 NG FIXED BIN(31) INIT(3), /* 3 DATA GROUPS */ 2 NE FIXED BIN(31) INIT(5), /* 5 ELEMENTS IN EACH GROUP */ 2 KEYL FIXED BIN(31) INIT(0), /* NO KEYS */ 2 LABELL FIXED BIN(31) INIT(0), /* NO LABELS */ 2 HEADINGL FIXED BIN(31) INIT(14), /* 14 CHARACTER HEADING */ 2 DESTNAME CHAR(8) INIT('*'), /* PRINT DESTINATION UNKNOWN */ 2 PRTDEP FLOAT DEC(6) INIT(0), /* DEFAULT PRINT DEPTH */ 2 PRTWID FLOAT DEC(6) INIT(0), /* DEFAULT PRINT WIDTH */ 2 PRTCOPY FIXED BIN(31) INIT(1), /* JUST 1 PRINT COPY */ 2 PRTHEAD FIXED BIN(31) INIT(0), /* NO PRINT HEADER PAGE */ 2 PRTVOFF FLOAT DEC(6) INIT(-1), /* DEFAULT PRINT VERTICAL OFFSET */ 2 PRTHOFF FLOAT DEC(6) INIT(-1), /* DEFAULT PRINT HORIZTAL OFFSET */ 2 PRTUNIT FIXED BIN(31) INIT(0), /* DEFAULT PRINT UNITS (%AGES) */ 2 RESERVED FIXED BIN(31) INIT(0), /* ICU RESERVED */ 2 DRYNAME CHAR(8) INIT(' '), /* NO INITIAL DIRECTORY NAME */ 2 DRYTYPE FIXED BIN(31) INIT(0), /* DEFAULT DIRECTORY TYPE */ 2 DRYTYPEQ FIXED BIN(31) INIT(0), /* DEFAULT DIRECTORY SUBTYPE */ 2 DRYLIB CHAR(8) INIT(' '), /* DEFAULT DIRECTORY LIBRARY */ 2 EXPLVL FIXED BIN(31) INIT(0); /* STANDARD EXPERIENCE LEVEL */

DCL DATA_CONTROL(1) FIXED BIN(31); /* ONLY USED FOR FREE DATA */ DCL X(5) FLOAT DEC(6) /* x VALUES DATA ARRAY */ INIT(1,2,3,4,5); DCL Y(15) FLOAT DEC(6) /* y VALUES DATA ARRAY: */ INIT(100,122,172,200,217, /* 1ST DATA GROUP */ 100,105,118,127,153, /* 2ND DATA GROUP */ 100,110,129,144,177); /* 3RD DATA GROUP */ DCL KEYS(1) CHAR(1); /* DUMMY KEYS ARRAY */ DCL LABELS(1) CHAR(1); /* DUMMY LABELS ARRAY */ DCL HEADING CHAR(14) /* HEADING TEXT */ INIT('ICU LINE GRAPH');

CALL FSINIT; /* INITIALIZE GDDM */

CALL CHART /* CALL CHART UTILITY */ (CHART_CONTROL,DATA_CONTROL,X,Y,KEYS,LABELS,HEADING);

CALL FSTERM; /* TERMINATE GDDM PROCESSING */

END LGRAPH;

Figure 11. Program to display line graphs using the ICU



      PRTCHART: PROC(NAME) OPTIONS(MAIN);

%INCLUDE ADMUPINC; /* 'C..' ENTRY POINTS */ %INCLUDE ADMUPIND; /* 'D..' ENTRY POINTS */ %INCLUDE ADMUPINF; /* 'F..' ENTRY POINTS */

DCL 1 CHART_CONTROL, /* CHART CONTROL PARAMETER */ 2 LEVEL FIXED BIN(31) INIT(1), /* FULL STRUCTURE FORMAT */ 2 DISPLAY FIXED BIN(31) INIT(6), /* BUILD CHART IN USER'S PAGE; */ /* DO NOT TERMINATE PG ROUTINES */ 2 HELP FIXED BIN(31) INIT(1), /* PF KEYS SHOWN ON DISPLAY */ 2 ISOLATE FIXED BIN(31) INIT(0), /* SAVE/RESTORE/DIRECTORY OK */ 2 FORMNAME CHAR(8), /* FORMAT NAME SET LATER */ 2 DATANAME CHAR(8), /* DATA NAME SET LATER */ 2 BINDING FIXED BIN(31) INIT(0), /* DATA IS NORMAL IE. TIED */ 2 NG FIXED BIN(31), /* NOT USED */ 2 NE FIXED BIN(31), /* NOT USED */ 2 KEYL FIXED BIN(31), /* NOT USED */ 2 LABELL FIXED BIN(31), /* NOT USED */ 2 HEADINGL FIXED BIN(31), /* NOT USED */ 2 DESTNAME CHAR(8) INIT(' '), /* PRINT DESTINATION UNKNOWN */ 2 PRTDEP FLOAT DEC(6) INIT(60), /* DEFAULT PRINT DEPTH */ 2 PRTWID FLOAT DEC(6) INIT(90), /* DEFAULT PRINT WIDTH */ 2 PRTCOPY FIXED BIN(31) INIT(1), /* JUST 1 PRINT COPY */ 2 PRTHEAD FIXED BIN(31) INIT(0), /* NO PRINT HEADER PAGE */ 2 PRTVOFF FLOAT DEC(6) INIT(-1), /* DEFAULT PRINT VERTICAL OFFSET */ 2 PRTHOFF FLOAT DEC(6) INIT(-1), /* DEFAULT PRINT HORIZTAL OFFSET */ 2 PRTUNIT FIXED BIN(31) INIT(4), /* ROW & COLUMN PRINT UNITS */ 2 RESERVED FIXED BIN(31) INIT(0), /* ICU RESERVED */ 2 DRYNAME CHAR(8) INIT(' '), /* NO INITIAL DIRECTORY NAME */ 2 DRYTYPE FIXED BIN(31) INIT(0), /* DEFAULT DIRECTORY TYPE */ 2 DRYTYPEQ FIXED BIN(31) INIT(0), /* DEFAULT DIRECTORY SUBTYPE */ 2 DRYLIB CHAR(8) INIT(' '), /* DEFAULT DIRECTORY LIBRARY */ 2 EXPLVL FIXED BIN(31) INIT(0); /* STANDARD EXPERIENCE LEVEL */

DCL NAME CHAR(8) VARYING; /* CHART NAME (PARAMETER) */

FORMNAME = NAME; /* SET CHART FORMAT AND CHART */ DATANAME = NAME; /* DATA NAMES TO PARAMETER. */

DCL /* DUMMY DECLARES FOR CHART CALL */ DATA_CONTROL(1) FIXED BIN(31), /* NOT USED */ X(1) FLOAT DEC(6), /* NOT USED */ Y(1) FLOAT DEC(6), /* NOT USED */ KEYS(1) CHAR(1), /* NOT USED */ LABELS(1) CHAR(1), /* NOT USED */ HEADING CHAR(1); /* NOT USED */

DCL /* DECLARES FOR THE DSOPEN */ PROCNT FIXED BIN(31) INIT(12),/* PROCESSING OPTION COUNT */ PROLIST(12) FIXED BIN(31), /* PROCESSING OPTION LIST */ NAMCNT FIXED BIN(31) INIT(1), /* NAME COUNT */ NAMLIST(1) CHAR(8); /* NAME LIST */ PROLIST(1) = 5; /* OPT GROUP: PRIMARY/SECONDARY */ PROLIST(2) = 0; /* PRIMARY */ PROLIST(3) = 6; /* OPT GROUP: SPILL/NO-SPILL */ PROLIST(4) = 0; /* SPILL */ PROLIST(5) = 7; /* OPT GROUP: SWATHES */ PROLIST(6) = 10; /* 10 SWATHES */ PROLIST(7) = 8; /* OPT GROUP: PAGE SIZE */ PROLIST(8) = 50; /* WIDTH 5 INCHES */ PROLIST(9) = 50; /* DEPTH 5 INCHES */ PROLIST(10)= 0; /* 1/10 INCHES */ PROLIST(11)= 9; /* OPT GROUP: UN/FORMATTED */ PROLIST(12)= 1; /* FORMATTED */ NAMLIST(1) = NAME; /* USE CHART NAME AS PRINT-FILE */ /* NAME */ CALL FSINIT; /* INITIALIZE GDDM */

CALL DSOPEN /* OPEN A FAMILY-4 PRINTER */ (88,4,'IMG600X',PROCNT,PROLIST,NAMCNT,NAMLIST); CALL DSUSE(1,88); /* MAKE IMG600X PRIMARY DEVICE */

CALL CHART /* CALL CHART UTILITY */ (CHART_CONTROL,DATA_CONTROL,X,Y,KEYS,LABELS,HEADING);

CALL FSFRCE; /* TRANSMIT PAGE TO PRINT FILE */

CALL FSTERM; /* TERMINATE GDDM PROCESSING */

END PRTCHART;

Figure 12. Program to send a chart to a page printer


Go to the previous page Go to the next page



Copyright IBM Corporation 1990, 2012