
|
PGM PARM(&MODULE &SUJET &MC1 &MC2 &MC3 &TYP +
&NOM &DATREF &ORAND)
/* PGM DE SELECTION D'UN COURS AF400 (EXTRAIT). */
/* ------------------------------------------- */
/* CE PGM RECOIT LES PARAMETRES SAISIS PAR L'UTILISATEUR */
/* ET CONSTRUIT LA REQUETE OPNQRYF */
/* - LE CHOIX D'UN MODULE EST OBLIGATOIRE */
/* - IL PEUT ETRE SUIVI: */
/* - SOIT PAR UNE SELECTION SUJET/MOT-CLE */
/* (&ORAND = MOT-CLE RELIES PAR "OU" OU BIEN "ET") */
/* - SOIT PAR UNE SELECTION SUR LE NOM (*CT) */
/* - IL PEUT ENFIN ETRE COMPLETE PAR UNE SELECTION SUR LE TYPE */
/* ET/OU LA SAISIE D' UNE DATE DE REFERENCE (DATE FICHIER > OU = à). */
 
DCL &MODULE *CHAR 10 /* MODULE AF400 */
DCL &SUJET *CHAR 10 /* SUJET */
DCL &MC1 *CHAR 10 /* MOT-CLE 1 */
DCL &MC2 *CHAR 10 /* MOT-CLE 2 */
DCL &MC3 *CHAR 10 /* MOT-CLE 3 */
DCL &TYP *CHAR 4 /* TYPE *TXT,*DOC,... */
DCL &NOM *CHAR 10 /* NOM DE COURS */
DCL &DATREF *CHAR 7 /* DATE DE REFERENCE */
DCL &ORAND *CHAR 4 /* LIEN ENTRE MOTS-CLES */
/* (DANS LA REALITE LES LIENS */
/* SONT GERES DIFFEREMENTS.) */
 
DCL &SEL *CHAR 650
DCL &VALUES *CHAR 60
 
 
/* CONTRUCTION DU QRYSLT */
 
IF (&SUJET = '*ALL') CHGVAR &SUJET ' '
IF (&MC1 = '*ALL') CHGVAR &MC1 ' '
IF (&MC2 = '*ALL') CHGVAR &MC2 ' '
IF (&MC3 = '*ALL') CHGVAR &MC3 ' '
IF (&TYP = '*ALL') CHGVAR &TYP ' '
IF (&DATREF = '0000000') CHGVAR &DATREF ' '
 
CHGVAR &SEL ('AF4MDL= "' *CAT &MODULE *CAT '"')
 
IF COND(&NOM ^= ' ') THEN(DO)
CHGVAR VAR(&SEL) VALUE(&SEL +
*BCAT '*AND AF4MBR *CT "' *TCAT &NOM *TCAT '"')
|
ENDDO
/* CHOIX SUR LE NOM OU BIEN SUJET ET MOTS-CLE */
ELSE DO
 
IF COND(&SUJET ^= ' ') THEN(DO)
CHGVAR VAR(&SEL) VALUE(&SEL +
*BCAT '*AND SUJET = "' *CAT &SUJET *CAT '"')
ENDDO
 
IF COND((&MC1 ^= ' ') ! (&MC2 ^= ' ') ! (&MC3 +
^= ' ')) THEN(DO)
/* CONTRUCTION D'UNE LISTE DE VALEURS (%VALUES)*/
CHGVAR &VALUES '%VALUES('
IF (&MC1 ^= ' ') +
CHGVAR &VALUES (&VALUES *BCAT '"' *CAT &MC1 *TCAT '"')
IF (&MC2 ^= ' ') +
CHGVAR &VALUES (&VALUES *BCAT '"' *CAT &MC2 *TCAT '"')
IF (&MC3 ^= ' ') +
CHGVAR &VALUES (&VALUES *BCAT '"' *CAT &MC3 *TCAT '"')
CHGVAR &VALUES (&VALUES *BCAT ')')
 
CHGVAR &SEL (&SEL *BCAT '*AND (')
CHGVAR &SEL ( &SEL *BCAT +
'MOTCL1 = ' *CAT &VALUES *BCAT &ORAND *BCAT +
'MOTCL2 = ' *CAT &VALUES *BCAT &ORAND *BCAT +
'MOTCL3 = ' *CAT &VALUES *BCAT &ORAND *BCAT +
'MOTCL4 = ' *CAT &VALUES *BCAT &ORAND *BCAT +
'MOTCL5 = ' *CAT &VALUES)
CHGVAR &SEL (&SEL *TCAT ')')
ENDDO
 
ENDDO /* FIN OU EXCLUSIF NOM / SUJET,MOT-CLE */
 
IF (&TYP ^= ' ') DO
CHGVAR &SEL (&SEL *BCAT '*AND')
CHGVAR &SEL (&SEL *BCAT '*AF4TYP = "' *CAT &TYP *CAT '"')
ENDDO
IF (&DATREF ^= ' ') DO
CHGVAR &SEL (&SEL *BCAT '*AND')
CHGVAR &SEL (&SEL *BCAT 'DATREF >= ' *CAT &DATREF)
ENDDO
 
/* NORMALEMENT IMPOSSIBLE (MODULE OBLIGATOIRE) */
IF (&SEL = ' ') CHGVAR &SEL '*ALL'
|
  OVRDBF FILE(XXXXXXXX) TOFILE(YYYYYYYYY) SHARE(*YES) OPNQRYF FILE((YYYYYYYYY)) QRYSLT(&SEL) KEYFLD(*FILE)   CALL ZZZZZ   CLOF YYYYYYYYYY DLTOVR XXXXXXXX ENDPGM |