DSN8MPM
THIS MODULE PRODUCES SECONDARY SELECTION SCREEN FOR OBJECTS IN MAJOR SYSTEM 'P' (PROJECTS) CALLED BY DSN8IP2 (SQL2 MAINLINE) .
DSN8MPM: PROC; /* SECONDARY SELECTION FOR MAJSYS 'P' - PROJECTS */ 00010000
%PAGE; 00020000
/********************************************************************* 00030000
* * 00040000
* MODULE NAME = DSN8MPM * 00050000
* * 00060000
* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION * 00070000
* SQL 2 SECONDARY SELECTION * 00080000
* PL/I * 00090000
* PROJECTS * 00100000
* * 00110000
* * 00120000
* COPYRIGHT = 5740-XYR (C) COPYRIGHT IBM CORP 1982, 1988 * 00130000
* REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 * 00140000
* * 00150000
* STATUS = VERSION 2 RELEASE 1, LEVEL 0 * 00160000
* * 00170000
* FUNCTION = THIS MODULE PRODUCES SECONDARY SELECTION SCREEN * 00180000
* FOR OBJECTS IN MAJOR SYSTEM 'P' (PROJECTS) * 00190003
* CALLED BY DSN8IP2 (SQL2 MAINLINE) * 00200000
* * 00210000
* NOTES = NONE * 00220000
* * 00230000
* * 00240000
* MODULE TYPE = BLOCK OF PL/I CODE * 00250000
* PROCESSOR = DB2 PRECOMPILER, PL/I OPTIMIZER * 00260000
* MODULE SIZE = SEE LINKEDIT * 00270000
* ATTRIBUTES = REUSABLE * 00280000
* * 00290000
* ENTRY POINT = DSN8MPM * 00300000
* PURPOSE = SEE FUNCTION * 00310000
* LINKAGE = NONE * 00320000
* * 00330000
* INPUT = * 00340000
* SYMBOLIC LABEL/NAME = NONE * 00350000
* DESCRIPTION = POINTER TO COMMAREA * 00360000
* (COMMUNICATION AREA) * 00370000
* * 00380000
* OUTPUT = * 00390000
* SYMBOLIC LABEL/NAME = NONE * 00400000
* DESCRIPTION = POINTER TO COMMAREA * 00410000
* (COMMUNICATION AREA ) * 00420000
* * 00430000
* EXIT-NORMAL = * 00440000
* * 00450000
* EXIT-ERROR = IF SQLERROR OR SQLWARNING, SQL WHENEVER CONDITION * 00460000
* SPECIFIED IN DSN8IP2 WILL BE RAISED AND PROGRAM * 00470000
* WILL GO TO THE LABEL DB_ERROR. * 00480000
* * 00490000
* * 00500000
* RETURN CODE = NONE * 00510000
* * 00520000
* ABEND CODES = NONE * 00530000
* * 00540000
* ERROR-MESSAGES = * 00550000
* DSN8067E - UNSUPPORTED SEARCH CRITERIA FOR OBJECT * 00560003
* DSN8069E - NO VALID SELECTIONS QUALIFY FOR THIS REQUEST * 00570000
* DSN8070E - VITAL DATA MISSING IN TABLE 'TOPTVAL' * 00580000
* DSN8074E - DATA IS TOO LONG FOR SEARCH CRITERIA * 00590000
* DSN8076E - VITAL DATA MISSING IN TABLE 'TDSPTXT' * 00600000
* * 00610000
* EXTERNAL REFERENCES = * 00620000
* ROUTINES/SERVICES = * 00630000
* DSN8MPG - ERROR MESSAGE ROUTINE * 00640000
* * 00650000
* DATA-AREAS = NONE * 00660000
* * 00670000
* CONTROL-BLOCKS = * 00680000
* SQLCA - SQL COMMUNICATION AREA * 00690000
* * 00700000
* TABLES = NONE * 00710000
* * 00720000
* CHANGE-ACTIVITY = NONE * 00730000
* * 00740000
* *PSEUDOCODE* * 00750000
* * 00760000
* /* SECONDARY SELECTION FOR MAJSYS 'P' - PROJECTS * 00770000
* 1. PS - PROJECT STRUCTURE * 00780000
* 2. AL - PROJECT ACTIVITY LISTING * 00790000
* 3. PR - INDIVIDUAL PROJECTS * 00800000
* ALL THREE OBJECTS REQUIRE THAT THE SECONDARY SELECT PROCESS * 00810003
* DISPLAY THE PROJECT NO AND NAME AND RESPONSIBLE PERSON * 00820000
* NO AND NAME IN PROJECT NO SEQUENCE. ALTHOUGH THE SECONDARY * 00830000
* SELECTION SEARCH CRITERIA IS NOT PRECISELY THE SAME IN ALL * 00840000
* THREE SITUATIONS IT IS POSSIBLE TO USE THE SAME CURSOR FOR * 00850000
* ALL THREE CASES. * 00860000
* 4. AE - ACTIVITY ESTIMATES * 00870000
* 5. AS - ACTIVITY STAFFING * 00880000
* THESE LAST TWO OBJECTS EACH HAVE THEIR OWN INDIVIDUAL * 00890003
* CURSOR. * 00900000
* * 00910000
* THERE ARE TWO SITUATIONS UNDER WHICH THIS MODULE CAN BE CALLED * 00920000
* 1. THE SYSTEM FIELDS HAVE CHANGED - NEW REQUEST * 00930000
* 2. AN ANSWER TO A PREVIOUS REQUEST * 00940000
* IF COMPARM.NEWREQ='Y' THEN SYSTEM FIELDS CHANGED AND * 00950000
* THIS IS A NEW REQUEST * 00960000
* * 00970000
* THIS MODULE SHOULD SET THE FOLLOWING TWO FIELDS BEFORE EXITING * 00980000
* 1. PCONVSTA.PREV='S' (FOR NEXT TIME AROUND) * 00990000
* 2. PCONVSTA.MAXSEL= NO OF ENTRIES ON SEC SEL SCREEN BUILT * 01000000
* * 01010000
* PROCEDURE * 01020000
* INITIALIZE TWO CONTROL FIELDS * 01030000
* * 01040000
* CASE(NEW REQUEST) * 01050000
* INITIALIZE MINIMUM VALUES * 01060000
* ASSIGN FIELD VALUES FOR 'LIKE' IN SQL SELECT * 01070000
* RETRIEVE HEADING LINE,PFK DESC,AND MESSAGE INFO * 01080000
* RETRIEVE TEXT DESCRIPTION LINES * 01090000
* ENDCASE * 01100000
* * 01110000
* ASSIGN DATA VALUE FROM SCREEN FOR 'LIKE' PROCESSING * 01120000
* * 01130000
* IF 'EM' SEARCH CRITERIA THEN * 01140000
* OPEN EMPLOYEE CURSOR ASCENDING * 01150000
* ELSE * 01160000
* OPEN ADMIN ST CURSOR ASCENDING * 01170000
* * 01180000
* SET UP 'DO LOOP' VALUES * 01190000
* * 01200000
* 'FETCH' FROM THE APPROPRIATE CURSOR UP TO MAX OF 13 TIMES * 01210000
* * 01220000
* IF NO VALID ENTRIES THEN * 01230000
* SEND MESSAGE * 01240000
* * 01250000
* SAVE MIN VALUE FOR POSSIBLE SCROLLING REQUEST * 01260000
* * 01270000
* RETURN * 01280000
* * 01290000
* END. * 01300000
*-------------------------------------------------------------------*/ 01310000
/********************************************************/ 01320000
/* ** FIELDS SENT TO MESSAGE ROUTINE */ 01330000
/********************************************************/ 01340000
01350000
DCL MODULE CHAR (07) INIT ('DSN8MPM'); 01360000
DCL OUTMSG CHAR (69); 01370000
01380000
/*****************************************************************/ 01390000
/* **SET MODULE IDENTIFICATION FIELDS */ 01400000
/*****************************************************************/ 01410000
01420000
DSN8_MODULE_NAME.MAJOR='DSN8MPM'; /* GET MODULE NAME */ 01430000
DSN8_MODULE_NAME.MINOR=' '; /* CLEAR ROUTINE NAME*/ 01440000
01450000
DCL LOW BUILTIN; 01460000
DCL HIGH BUILTIN; 01470000
DCL PERCENTS CHAR(36) INIT( (36) '%' ); 01480000
DCL PERCENT_PADDED_INDATA VAR CHAR(36); 01490000
DCL DSN8MPG EXTERNAL ENTRY; 01500000
01510000
01520000
/*****************************************************************/ 01530000
/* **INITIALIZE CONTROL FIELDS */ 01540000
/*****************************************************************/ 01550000
01560000
PCONVSTA.PREV='S'; /* FOR NEXT TIME AROUND */ 01570000
PCONVSTA.MAXSEL=0; /* MAX NO OF CHOICES */ 01580000
PCONVSTA.OUTPUT=' '; /* BLANKS OUT LINE */ 01590000
01600000
/****************************************************************/ 01610000
/* **DETERMINE IF NEW REQUEST */ 01620000
/****************************************************************/ 01630000
/* IF NEW REQUEST THEN */ 01640000
/* 1. INITIALIZE MINIMUM VALUES */ 01650000
/* 2. ASSIGN FIELD VALUES FOR 'LIKE' IN SQL SELECT */ 01660000
01670000
IF COMPARM.NEWREQ='Y' THEN /* NEW REQUEST? */ 01680000
MPM000: DO; 01690000
01700000
PIMIN=LOW(6); /* INITIALIZE MINIMUM */ 01710000
/* VALUE */ 01720000
01730000
/* ASSIGN FIELD VALUES FOR*/ 01740000
/* 'LIKE' IN SQL SELECT */ 01750000
LPROJNO =PERCENTS; /* PROJECT NO */ 01760000
LPROJNAM=PERCENTS; /* PROJECT NAME */ 01770000
LRESPEMP=PERCENTS; /* RESPONSIBLE EMP NO */ 01780000
LRESPNAM=PERCENTS; /* RESPONSIBLE EMP NAME */ 01790000
LPROJDEP=PERCENTS; /* DEPARTMENT NO */ 01800000
LDEPTNAM=PERCENTS; /* DEPARTMENT NAME */ 01810000
LEMPNO =PERCENTS; /* EMPLOYEE NO */ 01820000
LEMPNAME=PERCENTS; /* EMPLOYEE NAME */ 01830000
END MPM000; 01840000
01850000
/***************************************************************/ 01860000
/* **RETRIEVES HEADING LINE, PFKEY DESCRIPTION, INFO MESSAGE,*/ 01870000
/* **& POINTER INTO TABLE OF DETAIL HEADING TEXT */ 01880000
/***************************************************************/ 01890000
01900000
/*RETRIEVE HEADING, PFK*/ 01910000
/*DESC, INFO MESSAGE */ 01920000
01930000
EXEC SQL SELECT HEADTXT, INFOTXT, PFKTXT, DSPINDEX 01940000
INTO :POPTVAL.HEADTXT, :POPTVAL.INFOTXT, :POPTVAL.PFKTXT, 01950000
:POPTVAL.DSPINDEX 01960000
FROM VOPTVAL 01970000
WHERE MAJSYS = :INAREA.MAJSYS AND ACTION = :INAREA.ACTION 01980000
AND OBJFLD = :INAREA.OBJFLD AND SRCHCRIT = :INAREA.SEARCH 01990003
AND SCRTYPE = 'S'; 02000000
02010000
/*ERROR?*/ 02020000
IF SQLCODE=+100 THEN 02030000
DO; 02040000
/* TABLE ENTRY MISSING */ 02050000
/* PRINT ERROR MESSAGE */ 02060000
02070000
PCONVSTA.PREV = ' '; /* NOT SEC SELECT, ERROR */ 02080000
CALL DSN8MPG (MODULE, '070E', OUTMSG); 02090000
PCONVSTA.MSG=OUTMSG|| 02100000
COMPARM.MAJSYS || ' ' || COMPARM.ACTION || ' ' 02110000
|| COMPARM.OBJFLD || ' ' 02120002
|| COMPARM.SEARCH || ' S' ; 02130000
RETURN; 02140000
END; 02150000
02160000
/* OBTAIN INFORMATION */ 02170000
PCONVSTA.TITLE = POPTVAL.HEADTXT;/* OBTAIN HEADING */ 02180000
PCONVSTA.MSG = POPTVAL.INFOTXT;/* OBTAIN MESSAGE INFO. */ 02190000
PCONVSTA.PFKTEXT=POPTVAL.PFKTXT; /* OBTAIN PFKEY DESCRIPTION*/ 02200000
02210000
/*************************************************************/ 02220000
/* **RETRIEVES TEXT DESCRIPTION LINES */ 02230000
/*************************************************************/ 02240000
02250000
/*TRY TO*/ 02260000
/*RETRIEVE INFORMATION*/ 02270000
EXEC SQL SELECT DSPLINE 02280000
INTO :PDSPTXT.DSPLINE 02290000
FROM VDSPTXT 02300000
WHERE DSPINDEX = :POPTVAL.DSPINDEX AND LINENO ='01'; 02310000
02320000
/* ERROR? */ 02330000
IF SQLCODE=+100 THEN 02340000
DO; 02350000
/* MISSING ENTRY IN TABLE */ 02360000
/* PRINT ERROR MESSAGE */ 02370000
02380000
PCONVSTA.PREV=' '; /* WILL NOT ACCEPT ANSWER NEXT TIME */ 02390000
CALL DSN8MPG (MODULE, '076E', OUTMSG); 02400000
PCONVSTA.MSG= OUTMSG|| 02410000
POPTVAL.DSPINDEX || ' LINE 01'; 02420000
RETURN; 02430000
END; 02440000
02450000
PCONVSTA.OUTPUT.LINE(1) = PDSPTXT.DSPLINE; /* RETRIEVAL */ 02460000
02470000
02480000
/**************************************************************/ 02490000
/* ** ASSIGN DATA VALUE FROM SCREEN FOR 'LIKE' PROCESSING */ 02500000
/* **NOTE THAT ALL THE FOLLOWING SEARCH CRITERIA MAY NOT BE */ 02510000
/* **SUPPORTED IN ALL SITUATIONS - HOWEVER SQL 1 WILL ONLY */ 02520000
/* **PERMIT VALID ENTRIES TO BE PASSED. */ 02530000
/**************************************************************/ 02540000
02550000
DO I = LENGTH(COMPARM.DATA) TO 1 BY -1 02560000
UNTIL(SUBSTR(COMPARM.DATA,I,1)^=''); 02570000
END; 02580000
02590000
PERCENT_PADDED_INDATA = 02600000
SUBSTR(COMPARM.DATA,1,I); 02610000
02620000
SELECT (PCONVSTA.SEARCH); 02630000
02640000
WHEN ('PI') /* PROJECT ID */ 02650000
DO; 02660000
LPROJNO = PERCENT_PADDED_INDATA; 02670000
IF I > LENGTH(LPROJNO) THEN GOTO MPM003; 02680000
END; 02690000
02700000
WHEN ('PN') /* PROJECT NAME */ 02710000
DO; 02720000
LPROJNAM = PERCENT_PADDED_INDATA; 02730000
IF I > LENGTH(LPROJNAM) THEN GOTO MPM003; 02740000
END; 02750000
02760000
WHEN ('DI') /* PROJECT DEPT ID */ 02770000
DO; 02780000
LPROJDEP = PERCENT_PADDED_INDATA; 02790000
IF I > LENGTH(LPROJDEP) THEN GOTO MPM003; 02800000
END; 02810000
02820000
WHEN ('DN') /* DEPT NAME */ 02830000
DO; 02840000
LDEPTNAM = PERCENT_PADDED_INDATA; 02850000
IF I > LENGTH(LDEPTNAM) THEN GOTO MPM003; 02860000
END; 02870000
02880000
WHEN ('RI') /* RESPONSIBLE ID */ 02890000
DO; 02900000
LRESPEMP = PERCENT_PADDED_INDATA; 02910000
IF I > LENGTH(LRESPEMP) THEN GOTO MPM003; 02920000
END; 02930000
02940000
WHEN ('RN') /* RESPONSIBLE NAME */ 02950000
DO; 02960000
LRESPNAM = PERCENT_PADDED_INDATA; 02970000
IF I > LENGTH(LRESPNAM) THEN GOTO MPM003; 02980000
END; 02990000
03000000
WHEN ('EI') /* EMPLOYEE ID */ 03010000
DO; 03020000
LEMPNO = PERCENT_PADDED_INDATA; 03030000
IF I > LENGTH(LEMPNO) THEN GOTO MPM003; 03040000
END; 03050000
03060000
WHEN ('EN') /* EMPLOYEE NAME */ 03070000
DO; 03080000
LEMPNAME = PERCENT_PADDED_INDATA; 03090000
IF I > LENGTH(LEMPNAME) THEN GOTO MPM003; 03100000
END; 03110000
03120000
OTHERWISE 03130000
/*NOT DEPARTMENT OR */ 03140000
/*EMPLOYEE OR MANAGER*/ 03150000
/*PRINT ERROR MESSAGE*/ 03160000
DO; 03170000
CALL DSN8MPG (MODULE, '067E', OUTMSG); 03180000
PCONVSTA.MSG = 03190000
PCONVSTA.SEARCH|| 03200000
OUTMSG|| 03210000
PCONVSTA.OBJFLD||' IN MAJOR SYSTEM '|| 03220002
PCONVSTA.MAJSYS; 03230000
PCONVSTA.PREV = ' '; /* NOT SEC SELECT, ERROR */ 03240000
RETURN; 03250000
END; 03260000
03270000
03280000
03290000
END; /* OF SELECT CLAUSE */ 03300000
GO TO MPM003E; /* SKIP PAST THE ERROR CODE */ 03310000
03320000
/* DATA TOO LONG */ 03330000
MPM003: /* PRINT ERROR MESSAGE */ 03340000
DO; 03350000
CALL DSN8MPG (MODULE, '074E', OUTMSG); 03360000
PCONVSTA.MSG = OUTMSG; 03370000
PCONVSTA.PREV = ' '; /* NOT SEC SELECT, ERROR */ 03380000
RETURN; 03390000
END; 03400000
03410000
/************************************************************/ 03420000
/* ** OPEN CURSORS AND GET PROJECTS LIST */ 03430000
/* ** FETCH FROM THE APPROPRIATE CURSORS */ 03440000
/************************************************************/ 03450000
03460000
MPM003E: 03470000
SELECT(COMPARM.OBJFLD); 03480002
03490000
WHEN('PS','AL') DO; /* PROJECT STRUCTURE & ACTIVITY LISTING */ 03500000
EXEC SQL OPEN PLA; /* OPEN CURSOR */ 03510000
03520000
DO I=1 TO 13; 03530000
EXEC SQL FETCH PLA /* FETCH THE SPECIFIED FIELDS */ 03540000
INTO :PPROJRES.PROJNO, :PPROJRES.PROJNAME, 03550000
:PPROJRES.RESPEMP, :FINITIAL, 03560000
:PPROJRES.MIDINIT, :PPROJRES.LASTNAME; 03570000
03580000
IF SQLCODE=100 THEN GOTO MPM004; /* ERROR ? */ 03590000
03600000
DSN8MP2_POS.PROJNUM(I) = PPROJRES.PROJNO; 03610000
DSN8MP2_POS.PROJNA(I) = PPROJRES.PROJNAME; 03620000
DSN8MP2_POS.RESPNUM(I) = PPROJRES.RESPEMP; 03630000
DSN8MP2_POS.RESFIN(I) = FINITIAL; 03640000
DSN8MP2_POS.RESSIN(I) = PPROJRES.MIDINIT; 03650000
DSN8MP2_POS.RESLNAM(I) = PPROJRES.LASTNAME; 03660000
DSN8MP2_POS.LINENO(I) = I; 03670000
MAXSEL=MAXSEL + 1; 03680000
END; 03690000
END; 03700000
03710000
WHEN('PR') DO; /* INDIVIDUAL PROJECTS */ 03720000
EXEC SQL OPEN PLA; /* OPEN CURSOR */ 03730000
03740000
DO I=1 TO 13; 03750000
EXEC SQL FETCH PLA /* FETCH THE SPECIFIED FIELDS */ 03760000
INTO :PPROJRES.PROJNO, :PPROJRES.PROJNAME, 03770000
:PPROJRES.RESPEMP, :FINITIAL, 03780000
:PPROJRES.MIDINIT, :PPROJRES.LASTNAME; 03790000
03800000
IF SQLCODE=100 THEN GOTO MPM004; /* ERROR ? */ 03810000
03820000
DSN8MP2_POS.PROJNUM(I) = PPROJRES.PROJNO; 03830000
DSN8MP2_POS.PROJNA(I) = PPROJRES.PROJNAME; 03840000
DSN8MP2_POS.RESPNUM(I) = PPROJRES.RESPEMP; 03850000
DSN8MP2_POS.RESFIN(I) = FINITIAL; 03860000
DSN8MP2_POS.RESSIN(I) = PPROJRES.MIDINIT; 03870000
DSN8MP2_POS.RESLNAM(I) = PPROJRES.LASTNAME; 03880000
DSN8MP2_POS.LINENO(I) = I; 03890000
MAXSEL=MAXSEL + 1; 03900000
END; 03910000
END; 03920000
03930000
WHEN('AE') DO; /* ACTIVITY ESTIMATES */ 03940000
EXEC SQL OPEN PEA; /* OPEN CURSOR */ 03950000
03960000
DO I=1 TO 13; 03970000
EXEC SQL FETCH PEA /* FETCH THE SPECIFIED FIELDS */ 03980000
INTO :PPROJRES.PROJNO, :PPROJRES.PROJNAME, 03990000
:PACT.ACTKWD, :PACT.ACTDESC, 04000000
:PPROJACT.ACSTDATE:SNULL_IND1; 04010000
04020000
IF SQLCODE=100 THEN GOTO MPM004; /* ERROR ? */ 04030000
04040000
DSN8MP3_POS.PROJNUM(I) = PPROJRES.PROJNO; 04050000
DSN8MP3_POS.PROJNA(I) = PPROJRES.PROJNAME; 04060000
DSN8MP3_POS.ACTKW(I) = PACT.ACTKWD; 04070000
DSN8MP3_POS.ACTDESC(I) = PACT.ACTDESC; 04080000
04090000
/********************************************************************/ 04100000
/* IF THE NULL INDICATOR FOR THE START DATE IS 0, THE VALUE IS NOT */ 04110000
/* NULL. SET THE START DATE TO THE RETRIEVED VALUE. IF THE NULL */ 04120000
/* INDICATOR IS -1 THEN THE VALUE IS NULL. SET THE START DATE TO */ 04130000
/* BLANKS. */ 04140000
/********************************************************************/ 04150000
04160000
IF SNULL_IND1 = 0 THEN 04170000
DSN8MP3_POS.ESTDAT(I) = PPROJACT.ACSTDATE; 04180000
ELSE 04190000
DSN8MP3_POS.ESTDAT(I) = BLKDATE; 04200000
DSN8MP3_POS.LINENO(I) = I; 04210000
MAXSEL=MAXSEL + 1; 04220000
END; 04230000
END; 04240000
04250000
WHEN('AS') DO; /* ACTIVITY STAFFING */ 04260000
EXEC SQL OPEN PSA; /* OPEN CURSOR */ 04270000
04280000
DO I=1 TO 13; 04290000
EXEC SQL FETCH PSA /* FETCH THE SPECIFIED FIELDS */ 04300000
INTO :PPROJRES.PROJNO, :PPROJRES.PROJNAME, 04310000
:PACT.ACTKWD, :PEMPPROJACT.EMPNO, 04320000
:FINITIAL, :PEMP.MIDINIT, 04330000
:PEMP.LASTNAME, :PEMPPROJACT.EMSTDATE:SNULL_IND1; 04340000
04350000
IF SQLCODE=100 THEN GOTO MPM004; /* ERROR ? */ 04360000
04370000
DSN8MP4_POS.PROJNUM(I) = PPROJRES.PROJNO; 04380000
DSN8MP4_POS.PROJNA(I) = PPROJRES.PROJNAME; 04390000
DSN8MP4_POS.ACTKW(I) = PACT.ACTKWD; 04400000
DSN8MP4_POS.EMPNUM(I) = PEMPPROJACT.EMPNO; 04410000
DSN8MP4_POS.EMPFIN(I) = FINITIAL; 04420000
DSN8MP4_POS.EMPSIN(I) = PEMP.MIDINIT; 04430000
DSN8MP4_POS.RESLNAM(I) = PEMP.LASTNAME; 04440000
04450000
/********************************************************************/ 04460000
/* IF THE NULL INDICATOR FOR THE START DATE IS 0, THE VALUE IS NOT */ 04470000
/* NULL. SET THE START DATE TO THE RETRIEVED VALUE. IF THE NULL */ 04480000
/* INDICATOR IS -1 THEN THE VALUE IS NULL. SET THE START DATE TO */ 04490000
/* BLANKS. */ 04500000
/********************************************************************/ 04510000
04520000
IF SNULL_IND1 = 0 THEN 04530000
DSN8MP4_POS.ESTDAT(I) = PEMPPROJACT.EMSTDATE; 04540000
ELSE 04550000
DSN8MP4_POS.ESTDAT(I) = BLKDATE; 04560000
DSN8MP4_POS.LINENO(I) = I; 04570000
MAXSEL=MAXSEL + 1; 04580000
END; 04590000
END; 04600000
END; 04610000
04620000
/* IF MORE DATA, SAVE MIN PROJ NO */ 04630000
PIMIN = PPROJRES.PROJNO; 04640000
GOTO MPM005; 04650000
04660000
MPM004: /* CHECK FOR NO VALID ENTRIES */ 04670000
PIMIN = HIGH(6); /* NO MORE SCROLLING CAN BE MADE */ 04680000
04690000
IF MAXSEL=0 THEN 04700000
DO; 04710000
CALL DSN8MPG (MODULE, '069E', OUTMSG); 04720000
PCONVSTA.MSG = OUTMSG; 04730000
PCONVSTA.PREV = ' '; /* NOT SEC SELECT, ERROR */ 04740000
END; 04750000
04760000
MPM005: /* CLOSE CURSORS */ 04770000
SELECT(COMPARM.OBJFLD); 04780002
WHEN('PS','AL','PR') EXEC SQL CLOSE PLA; 04790000
WHEN('AE') EXEC SQL CLOSE PEA; 04800000
WHEN('AS') EXEC SQL CLOSE PSA; 04810000
END; 04820000
04830000
END DSN8MPM; 04840000