
|
PGM
DCLF GRPJOBD
DCL &GRPJOB *CHAR 10
DCL &GRPJOBCNT *DEC (3 0)
DCL &GRPJOBL *CHAR 1056
DCL &CTLCDE *DEC (3 0)
DCL &OPTCHAR *CHAR 2
DCL &CNT *DEC (3 0)
DCL &PT *DEC (4 0)
 
/* */
/* EXTRACTION DES ATTRIBUTS DE GROUPE */
/* */
RTV: RTVGRPA GRPJOB(&GRPJOB) GRPJOBL(&GRPJOBL) +
GRPJOBCNT(&GRPJOBCNT)
/* */
/* SI JOB N'EST GRPJOB => INITIALISATION EN TRAVAIL DE GROUPE */
/* */
IF (&GRPJOBCNT = 0) DO
CHGGRPA GRPJOB(JOB01) TEXT('Travail principal')
GOTO RTV
ENDDO
 
 
/* MISE EN EVIDENCE DU JOB EN COURS */
/* INDICATEUR DSPATR(RI) EN FACE N° OPTION */
CHGVAR &IN01 '0'
CHGVAR &IN02 '0'
CHGVAR &IN03 '0'
CHGVAR &IN04 '0'
IF (&GRPJOB = 'JOB04') CHGVAR &IN04 '1'
ELSE IF (&GRPJOB = 'JOB03') CHGVAR &IN03 '1'
ELSE IF (&GRPJOB = 'JOB02') CHGVAR &IN02 '1'
ELSE CHGVAR &IN01 '1'
 
/* MISE EN EVIDENCE DES JOBS ACTIFS */
/* INDICATION ">" EN FACE N° OPTION */
CHGVAR &JOB01 ' '
CHGVAR &JOB02 ' '
CHGVAR &JOB03 ' '
CHGVAR &JOB04 ' '
CHGVAR &CNT 0
BOUCLE: CHGVAR &CNT (&CNT + 1)
IF (&CNT *GT &GRPJOBCNT) GOTO IMAGE
|
CHGVAR &PT ((&CNT * 66) - 65) IF (%SST(&GRPJOBL &PT 5) = 'JOB01') CHGVAR &JOB01 '>' IF (%SST(&GRPJOBL &PT 5) = 'JOB02') CHGVAR &JOB02 '>' IF (%SST(&GRPJOBL &PT 5) = 'JOB03') CHGVAR &JOB03 '>' IF (%SST(&GRPJOBL &PT 5) = 'JOB04') CHGVAR &JOB04 '>' GOTO BOUCLE   IMAGE: SNDRCVF   /* */ /* TRAITEMENT DES TOUCHES DE COMMANDE */ /* */ IF &IN22 RETURN /* F12 = RETOUR */   IF &IN23 DO /* F3 = FIN DU TRAVAIL DE GROUPE */ IF (&GRPJOBCNT *GT 1) ENDGRPJOB ELSE DO CHGGRPA *NONE RETURN ENDDO ENDDO   IF &IN21 DO /* F21 = LIGNE DE CDE */ CALL QUSCMDLN GOTO IMAGE ENDDO   IF &IN32 DO /* F22 = SELECTION */ TFRGRPJOB *SELECT GOTO RETOUR /* TEST DES RAISONS DU RETOUR */ ENDDO /* */ /* SI OPTION CHOISIE EST LE TRAVAIL EN COURS ==> RETURN */ /* */ CHGVAR &OPTCHAR &OPT IF (&OPTCHAR = %SST(&GRPJOB 4 2)) RETURN   /* */ /* TRAITEMENT DE L'OPTION CHOISIE */ /* */ /* SI OPTION 1 TRANSFERT VERS JOB01 */ /* */ /* SI DEJA ACTIF INLGRPPGM IGNORé */ /* */ |
/* SI INACTIF APPEL DE QCMD QUI RETROUVERA LE */
/* PGM OU MENU INITIAL */
/* */
IF COND(&OPT = 1) THEN(TFRGRPJOB GRPJOB(JOB01) +
INLGRPPGM(QCMD) TEXT('Travail principal'))
/* */
/* POUR LES AUTRES OPTIONS C'EST TOUJOURS LE MEME PGM */
/* QUI EST APPELLE (GRPJOBCL2) */
/* */
/* ASSOCIERA AU JOB CE PGM VIA ATTN */
/* */
/* PUIS EXECUTERA LA COMMANDE FONCTION DU */
/* NOM DU JOB */
ELSE +
IF COND(&OPT = 2) THEN(TFRGRPJOB GRPJOB(JOB02) +
INLGRPPGM(GRPJOBCL2) TEXT('Menu support'))
ELSE +
IF COND(&OPT = 3) THEN(TFRGRPJOB GRPJOB(JOB03) +
INLGRPPGM(GRPJOBCL2) TEXT('Assistant'))
ELSE +
IF COND(&OPT = 4) THEN(TFRGRPJOB GRPJOB(JOB04) +
INLGRPPGM(GRPJOBCL2) TEXT('P D M'))
/* OPTION INVALIDE */
ELSE GOTO IMAGE
 
/* */
/* ANALYSE DES RAISONS DU RETOUR A CE JOB */
/* */
/* 0 = PAS DE TRAVAIL PRECEDENT */
/* 10 = RETOUR PAR TFRGRPJOB */
/* ==> FIN DE CE PGM */
/* 20 ET > = FIN DU TRAVAIL DE GROUPE PRECEDENT */
/* (FIN NORMALE OU ANORMALE OU ENDGRPJOB) */
/* ==> REAFFICHAGE IMAGE POUR CHOIX DU JOB */
/* */
RETOUR: RTVGRPA GRPJOB(&GRPJOB) CTLCDE(&CTLCDE)
IF (&CTLCDE > 10) GOTO RTV
 
ENDPGM
|