ADELIA |
VADELIA |
SADELIA |
WADELIA |
EADELIA |
(B) |
(I/B) (C/S) |
(B) (S) |
(I/B) (C/S) |
(B) (C/S) |
Paragraphe d'utilisation
Tous
Syntaxe
TRAITER_CHG MotDirecteurRupture
Description
Cet ordre permet de détecter une rupture au niveau en-tête et déclenche l'exécution de la procédure liée à cette rupture.
Cette rupture doit avoir été créée dans le prototype. Elle est identifiée par son mot directeur MotDirecteurRupture indiqué après l'ordre.
L'instruction "TRAITER_CHG Rupture", lorsqu'elle a détecté une rupture, appelle le paragraphe "TRT_CHANGEMENT Rupture" portant le même mot directeur de rupture. Après l'exécution de ce paragraphe, le programme reprend son déroulement derrière l'instruction "TRAITER_CHG Rupture".
Important : les détections des ruptures de changement sur un même fichier se font dans l'ordre croissant.
Par exemple
* Programme batch pour imprimer des commandes par client
* (ruptures sur code client, puis adresse livraison)
LIRE_AVANT COMMANDES
TANT_QUE COMMANDES EXISTE
TRAITER_CHG RPT_CLIENTS
TRAITER_CHG RPT_ADRLIV
MONTANT_ADRLIV = MONTANT_ADRLIV + MONTANT_LIGNE
IMPRIMER FMT_COMM
LIRE_AVANT COMMANDES
TRAITER_TOTAL RPT_ADRLIV
TRAITER_TOTAL RPT_CLIENTS
REFAIRE
* |
Procédure en-tête client |
LIRE CLIENTS
IMPRIMER FMT_CLIENT
MONTANT_CLIENT = 0
FIN_TRAITEMENT
* |
Procédure en-tête adresse de livraison |
IMPRIMER FMT_ADRESSE
MONTANT_ADRLIV = 0
FIN_TRAITEMENT
* |
Procédure total adresse |
EDITER FMT_TOTADR
MONTANT_CLIENT = MONTANT_CLIENT + MONTANT_ADRLIV
FIN_TRAITEMENT
* |
Procédure total client |
EDITER FMT_TOTCLI
FIN_TRAITEMENT
Autre exemple d'utilisation
* Contexte Visual Adélia
* Le programme suivant permet la recherche et l'affichage dans une liste
* graphique des derniers avenants d'un contrat pour un assuré donné
* Déclaration d'un curseur portant sur les CONTRATS d'un assuré de nom ZANOM_ASS
CURSEUR CURS_CON_NOMASS CONTRAT *COND(CNOM_ASS = :ZANOM_ASS) *TRI(CNUM_CON, CNUM_AVE_CON *ASC)
...
* Dans le programme, ouverture du curseur, lecture des enregistrements
* correspondants, puis fermeture
OUVRIR_SQL_C CURS_CON_NOMASS
INIT_RUPTURE RUPT_AVENANT
LIRE_AV_SQL_C CURS_CON_NOMASS
TANT_QUE *SQLCODE = *NORMAL
TRAITER_CHG RUPT_AVENANT
PRESENTER CONTRAT
LIRE_AV_SQL_C CURS_CON_NOMASS
TRAITER_TOTAL RUPT_AVENANT
REFAIRE
FERMER_SQL_C CURS_CON_NOMASS
...
* La zone CNUM_CONTRAT définit la rupture dans son paragraphe DECLARATION
RUPTURE CNUM_CONTRAT *SQL
...