GDDM-PGF V2R1.3 Programming Guide and Reference
|
Previous topic |
Next topic |
Contents |
Contact z/OS |
Library |
PDF |
BOOK
ADMUSP5 - IMS PL/I program to draw a simple histogram GDDM-PGF V2R1.3 Programming Guide and Reference SC33-0333-01 |
|
1ADMUSP5: PROC 00500000
(IOPCBP, /* TO IO PCB */ 01000000
SYSPCBP /* TO SYSTEM DEFN. PCB */ 01500000
) OPTIONS(MAIN); 02000000
02500000
/********************************************************************/ 03000000
/* $MOD(ADMUSP5I),COMP(SMP-PLI),PROD(GDDMPGF): */ 03100000
/********************************************************************/ 03300000
/* ADMUSP5 */ 03500000
/* */ 04000000
/* PROGRAM TO DISPLAY A SIMPLE HISTOGRAM USING THE */ 04500000
/* PRESENTATION GRAPHICS FEATURE OF GDDM. */ 05000000
/* */ 05500000
/* THE HISTOGRAM DISPLAYS THE DISTRIBUTION OF AN */ 06000000
/* IMAGINARY POPULATION BY AGE. */ 06500000
/* */ 07000000
/* THE PROGRAM IS PASSED TWO PCBS */ 07500000
/* (1). THE I/O PCB TO WHICH TO PICTURE IS SENT */ 08000000
/* (2). THE SYSTEM DEFINITION DATABASE CONTAINING */ 08500000
/* TERMINAL CHARACTERISTICS */ 09000000
/* */ 09500000
/********************************************************************/ 10000000
10500000
%INCLUDE (ADMUPINC); 10900000
%INCLUDE (ADMUPINE); 11000000
%INCLUDE (ADMUPINF); 11700000
%INCLUDE (ADMUPING); 12100000
12500000
/********************************************************************/ 13000000
/* INPUT PARAMETERS */ 13500000
/********************************************************************/ 14000000
14500000
DECLARE /* INPUT PARAMETERS */ 15000000
IOPCBP POINTER, /* TO IO PCB */ 15500000
SYSPCBP POINTER; /* TO SYSTEM DEFN. PCB */ 16000000
DECLARE /* SKELETAL PCB OVERLAY */ 16500000
1 PCB BASED, 17000000
2 PCBNAME CHAR(8), 17500000
2 PCBRESV FIXED BINARY(15), 18000000
2 PCBSTAT CHAR(2); 18500000
19000000
/********************************************************************/ 19500000
/* ATTRIBUTE ARRAYS USED FOR THE CHART. */ 20000000
/********************************************************************/ 20500000
21000000
DECLARE 21500000
YELLOW (1) FIXED BIN(31) STATIC INIT(6), 22000000
RED (1) FIXED BIN(31) STATIC INIT(2), 22500000
PAT (12) FIXED BIN(31) STATIC INIT(1); 23000000
23500000
/********************************************************************/ 24000000
/* HISTOGRAM BAR EXTREMES. */ 24500000
/* RANGE1 GIVES LEFT-HAND SIDE OF CONSECUTIVE BARS, */ 25000000
/* RANGE2 GIVES RIGHT-HAND SIDE. */ 25500000
/* - THERE ARE TO BE SEVEN BARS. */ 26000000
/********************************************************************/ 26500000
DECLARE 27000000
RANGE1 (7) FLOAT STATIC INIT(0,10,20,30,40,50,60), 27500000
RANGE2 (7) FLOAT STATIC INIT(10,20,30,40,50,60,70), 28000000
/********************************************************************/ 28500000
/* DATA TO BE PLOTTED. */ 29000000
/* THE DATA IS CONSTANT IN THIS EXAMPLE PROGRAM SO THAT THE */ 29500000
/* PROGRAM WILL RUN WITHOUT INPUT. */ 30000000
/* THERE IS ONE VALUE FOR EACH BAR, GIVING ITS HEIGHT. */ 30500000
/********************************************************************/ 31000000
DATA (7) FLOAT INIT(12.3,15,21.3,20.2,15.3,11.4,4.5); 31500000
32000000
DECLARE 37000000
PLITDLI EXTERNAL ENTRY, /* IMS PLI INTERFACE ROUTINE */ 37500000
THREE FIXED BIN(31) STATIC INIT(3), 38000000
GUFUNC CHAR(4) STATIC INIT('GU '), /* GET UNIQUE DLI CODE */ 38500000
1 INPUTSEG, /* INPUT SEGMENT */ 39000000
2 INPUTLL FIXED BIN(31), /* INPUT LENGTH */ 39500000
2 INPUTZZ CHAR(2), /* THE ZZ BYTES */ 40000000
2 INPUT_TEXT CHAR(80); /* THE INPUT MESSAGE */ 40500000
DECLARE 41000000
(IOPCB STATIC INIT(0), /* ESPCB CODE FOR I/O PCB */ 41500000
DBPCB STATIC INIT(2)) /* ESPCB CODE FOR DATABASE PCB */ 42000000
FIXED BIN(31); 42500000
43000000
1/********************************************************************/ 43500000
/* */ 44000000
/* ISSUE A GU TO THE IOPCB. TERMINATE THE TRANSACTION IF */ 44500000
/* NO MESSAGE IS RETURNED. */ 45000000
/* */ 45500000
/********************************************************************/ 46000000
46500000
GU: 47000000
CALL PLITDLI(THREE,GUFUNC,IOPCBP->PCB,INPUTSEG); 47500000
IF IOPCBP->PCBSTAT=' ' THEN GOTO EXIT; 48000000
INPUTLL=INPUTLL-4; /* SET LENGTH OF TEXT ENTERED */ 48500000
49000000
/********************************************************************/ 49500000
/* */ 50000000
/* INITIALIZE GDDM, AND IDENTIFY THE PCBS TO GDDM */ 50500000
/* */ 51000000
/********************************************************************/ 51500000
52000000
52500000
CALL FSINIT; /* INITIALIZE. */ 53000000
53500000
CALL ESPCB(IOPCB,IOPCBP->PCB); /* DEFINE IO PCB */ 54000000
CALL ESPCB(DBPCB,SYSPCBP->PCB); /* DEFINE SYSTEM DEFINITION PCB */ 54500000
60500000
/********************************************************************/ 61000000
/* SPECIFY THE CHART HEADING IN COLOR YELLOW. BECAUSE NO OTHER */ 61600000
/* ATTRIBUTES ARE GIVEN, THEY WILL DEFAULT TO STANDARD SIZE, */ 62200000
/* STANDARD CHARACTER-SET MODE 1 TEXT. */ 62800000
/********************************************************************/ 63400000
CALL CHHATT(1,YELLOW); 64000000
CALL CHHEAD(47,'PERCENTAGE POPULATION DISTRIBUTION BY AGE GROUP');64600000
/********************************************************************/ 65200000
/* SPECIFY THE X (HORIZONTAL) TITLE AND THE Y (VERTICAL) TITLE. */ 65800000
/* THE ATTRIBUTES ARE NOT GIVEN AND WILL BE THE DEFAULT ONES - */ 66400000
/* (GREEN, STANDARD MODE 1 TEXT). */ 67000000
/********************************************************************/ 67600000
CALL CHXTTL (10,'AGE GROUPS'); 68200000
CALL CHYTTL (10,'PERCENTAGE'); 68800000
/********************************************************************/ 69400000
/* BECAUSE THE BARS REPRESENT RANGES, EACH IS LABELED WITH */ 70000000
/* THE RANGE IT REPRESENTS. IF THIS LABELING IS OMITTED */ 70600000
/* THE NORMAL NUMERIC AXIS LABELING WOULD BE SUFFICIENT TO */ 71200000
/* INDICATE THE RANGES EXCEPT AT THE EXTREMES. */ 71800000
/* THE RANGE OF X VALUES IS 0 TO 70, WITH TICKS EVERY 10. */ 72400000
/* THE LABELS ARE CENTERED BETWEEN THE TICKS. */ 73000000
/********************************************************************/ 73600000
CALL CHXRNG(0,70); 74200000
CALL CHXTIC(10,0); 74800000
CALL CHXLAB(8,5,' <11 11-2021-3031-4041-5051-60 >60 '); 75400000
CALL CHXSET('LABMIDDLE'); 76000000
/********************************************************************/ 76600000
/* SPECIFY A VERTICAL Y RANGE OF 22 WITH LONG (MAJOR) TICKS */ 77200000
/* EVERY TWO, AND ONE SHORT (MINOR) TICK BETWEEN. */ 77800000
/* - IF THE RANGE IS OMITTED, AUTOSCALING WILL NORMALLY */ 78400000
/* PRODUCE A SUITABLE AXIS RANGE PROVIDED CONSISTENCY FROM */ 79000000
/* CHART TO CHART IS NOT IMPORTANT. */ 79600000
/********************************************************************/ 80200000
CALL CHYRNG(0,22); 80800000
CALL CHYTIC(2,1); 81400000
82000000
82600000
/********************************************************************/ 83200000
/* HAVING SPECIFIED THE AXIS CHARACTERISTICS, THE DATA */ 83800000
/* IS PLOTTED. THE HISTOGRAM IS SPECIFIED AS RED AND */ 84400000
/* USING PATTERN 12 (A DUSTING OF DOTS). BY DEFAULT THE */ 85000000
/* PGF ROUTINES WILL GENERATE THE GRAPH IN BLUE USING PATTERN 1. */ 85600000
/********************************************************************/ 86200000
CALL CHCOL(1,RED); 86800000
CALL CHPAT(1,PAT); 87400000
CALL CHHIST(1,7,RANGE1,RANGE2,DATA); 88000000
88600000
/********************************************************************/ 89200000
/* PUT A NOTE AT THE BOTTOM LEFT OF THE CHART WITH INSTRUCTIONS */ 89800000
/********************************************************************/ 90400000
CALL CHNOTE('BL',38,'PRESS CLEAR AND ENTER NEXT TRANSACTION'); 91000000
91600000
92200000
/********************************************************************/ 92800000
/* FINALLY CAUSE THE OUTPUT TO BE SENT TO THE TERMINAL USING */ 93400000
/* THE FSFRCE FUNCTION. */ 94000000
/********************************************************************/ 94600000
CALL FSFRCE; 95200000
/********************************************************************/ 95800000
/* TERMINATE GDDM AND THEN REISSUE THE GU. */ 96400000
/********************************************************************/ 97000000
CALL FSTERM; 97600000
GOTO GU; 98200000
EXIT:; 98800000
END ADMUSP5; 99400000
|
Copyright IBM Corporation 1990, 2012 |