Bonjour,
il y a plusieurs facons de travailler avec un fichier en primaire.
soit vous travaillez en cycle gap, ruptures detail et total et sortie d,t,o
soit vous travaillez en cycle gap, ruptures detail et total et sortie except.
dans l'exemple, à chaque lecture, on traite les lignes sans indicateur de rupture (seton 91 puis eval prix1=...)
le exsr write se fait en rupture TOTAL alors que les init se font en rupture DETAIL.
Un cas simple pour comprendre :
tu fais des stats, on te demande un ca par pays et par vendeur.
Tu fais un LF par pays, par vendeur, par article, le pf contenant les zones Pays, Vendeur, Article, Montant.
Dans ton programme, tu déclares les ruptures (carte I) : Pays L3, Vendeur L2 et Article L1.
tu dois calculer un montant total par article (il peut y avoir +ieurs fois le même article pour un même vendeur), par vendeur et par pays.
en carte C, sans indicateur, c'est à dire à chaque lecture du fichier primaire, tu fais tes cumuls :
TotalArticle += montant article
TotalVendeur+= montant article
TotalPays += montant article
pour imprimer les totaux correspondants à chaque rupture, tu dois être en rupture TOTAL, c'est à dire que tu attends d'avoir lu le dernier enregistrement correspondant à la rupture pour effectuer un traitement particulier, ici, éditer le montant total.
en carte C, tu écris : CL1 Excpt FinArticle (édition), éventuellement sur la ligne suivante tu écris CL1 TotalArticle = 0 pour remettre à 0 avant de lire l'article suivant etc...etc...
de la même facon, tu écris CL2 Excpt FinVendeur, CL3 Excpt FinPays, éventuellement CLR Excpt FinTotal (FinVendeur, FinPays et FinTotal sont déclarées en carte O).
en L1 DETAIL (en N01 comme tu l'écris), tu peux par exemple éditer les lignes de séparation avec les noms des pays et des vendeurs.
Pays : 00 FRANCE L3 detail
Vendeur : 001 Mr untel L2 detail
article AAAAA 1000,00 detail
article AAAAA 2000,00
Total article AAAA 3000,00 L1 total
article BBBBB 500,000 detail
Total article BBBBB 500,00 L1 total
Total Vendeur 001 3500,00 L2 total
Total Pays 01 3500,00 L3 total
Pays 02 SENEGAL L3 detail
Vendeur : 020 Mr truc L2 detail
article AAAA 1000,00 detail
Total article AAA 1000,00 L1 total
Total vendeur 020 1000,00 L2 total
Total pays 02 1000,00 L3 total
Total 4500,00 LR total
c'est plus clair ?