ADELIA |
VADELIA |
SADELIA |
WADELIA |
MADELIA |
(B) |
(I/B) (C/S) |
(B) (S) |
(I/B) (C/S) |
(I) (C/S) |
Paragraphe d'utilisation
Tous
Syntaxe
TRAITER_TOTAL MotDirecteurRupture
Description
Cet ordre permet de détecter une rupture au niveau totalisation et déclenche l'exécution de la procédure liée à cette rupture.
Cette rupture doit avoir été créée dans le prototype et elle est identifiée par son mot directeur MotDirecteurRupture derrière l'ordre.
L'instruction "TRAITER_TOTAL MotDirecteurRupture", lorsqu'elle a détecté une rupture, appelle le paragraphe "TRT_TOTAL MotDirecteurRupture" 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_TOTAL MotDirecteurRupture".
Il faut avoir fait, au préalable, un TRAITER_CHG sur la même rupture.
On place les ordres TRAITER_TOTAL en général après la lecture de la vue concernée par la rupture.
Important : les détections des ruptures totales sur un même fichier se font dans l'ordre décroissant.
Par exemple
* Batch impression des commandes (ruptures sur code client, puis adresse livr.)
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édures en-tête |
TRT_CHANGEMENT RPT_CLIENTS
LIRE CLIENTS
IMPRIMER FMT_CLIENT
MONTANT_CLIENT = 0
FIN_TRAITEMENT
TRT_CHANGEMENT RPT_ADRLIV
IMPRIMER FMT_ADRESSE
MONTANT_ADRLIV = 0
FIN_TRAITEMENT
* |
Procédures total |
TRT_TOTAL RPT_ADRLIV
EDITER FMT_TOTADR
MONTANT_CLIENT = MONTANT_CLIENT + MONTANT_ADRLIV
FIN_TRAITEMENT
TRT_TOTAL RPT_CLIENTS
EDITER FMT_TOTCLI
FIN_TRAITEMENT
Autre exemple d'utilisation
* Contexte Visual Adelia
* 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
...
* Dans le paragraphe TRT_TOTAL de la rupture, on insère l'enregistrement
* dans la liste graphique LST_CONTRAT
INSERER_ELT FEN_SEL_CONT.LST_CONTRAT:LISTE *FIN
* L'enregistrement inséré est celui du dernier avenant