Vous êtes sur la page 1sur 42

ESAT-DMSI page 12-16

Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur


d’états ]-
11/10/2009 -
11/10/2009

 Toute référence à nom-donnée-2 en procédure division exige la présence de la clause SUM dans sa
description.

 exemple

1 TYPE REPORT HEADING.


3 LINE 4
5 COLUMN 20 PIC X(15) VALUE «début de l’état».
3 LINE PLUS 1.
5 COLUMN 20 PIC X(15) VALUE ALL «-».

A252-c Format de la clause TYPE

{ REPORT HEADING
RH }

{ PAGE HEADING
PH }

{ CONTROL HEADING
CH } { nom-donnée-1
FINAL }
TYPE { DE
DETAIL }

{ CONTROL FOOTING
CF } { nom-donnée-1
FINAL }

{ PAGE FOOTING
PF }

{ REPORT FOOTING
RF }

Règles

 La clause TYPE permet de spécifier le type du groupe d’édition à imprimer.

 Un groupe d’édition est un ensemble d’informations composé d’une ou plusieurs lignes qui se
différencient des autres par la cause de leur impression ; celle-ci pouvant être indépendante de
l’utilisateur ( => automatique : rupture de contrôle, saut de page,..) ou au contraire être
provoquée par l’utilisateur (à l’aide d’instructions spéciales).

Cours de COBOL-85 Le Report Writer Chapître 12 - page 16


ESAT-DMSI page 12-17
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

Les sigles RH,PH,DE,CF,PF,RF sont les abréviations autorisées des mots réservés cités dans la
même accolade.

 La clause TYPE est obligatoire dans chaque description de groupe d’édition.

 L’ordre provoquant l’impression des groupes est fonction de leur type et de certaines
instructions utilisées à cet effet dans la procédure division.

 L’option REPORT HEADING (ou RH) indique un groupe d’édition de type « début d’état » qui n’est
imprimé qu’une fois , au moment de l’instruction INITIATE.
Un seul groupe de ce type peut être défini pour un état donné (mais on peut ne pas en définir).

 L’option PAGE HEADING (ou PH) indique un groupe d’édition de type « début de page » qui est
imprimé au début de chaque page.
Un seul groupe de ce type peut être défini pour un état donné (mais ce n’est pas obligatoire).

 L’option CONTROL HEADING (ou CH) indique un groupe d’édition de type « début de contrôle » qui
●est imprimé à chaque fois qu’il y a une rupture de contrôle pour le niveau (ou pour la zone)
spécifié (c’est-à-dire quand nom-donnée-1 change de valeur ou qu’on arrive en fin de programme et
qu’on a indiqué FINAL).

remarques importantes :
il y a aussi rupture de contrôle quand on change de niveau supérieur.
exemple :
dans notre cas étudié précédemment (page 5) , si en lisant le fichier en entrée , on
obtient une nouvelle usine et que le service ne change pas => on a changé de niveau => il
y a rupture de contrôle => les groupes de contrôles seront édités dans cet ordre :

impression du groupe de contrôle fin-service


impression du groupe de contrôle fin-usine
impression du groupe de contrôle début-usine
impression du groupe de contrôle début début-service

Un seul groupe de ce type peut être défini pour un niveau de contrôle donné dans la clause
CONTROL de la description de l’état concerné (cette clause est alors obligatoire ); inversement ,
il n’est pas obligatoire de définir un groupe de ce type pour tout niveau de contrôle défini par
la clause CONTROL.

 L’option DETAIL (ou DE) indique un groupe d’édition de type « détail » qui est imprimé à chaque
exécution du verbe GENERATE se référant à ce groupe (par l’intermédiare du nom-donnée décrit en
en niveau 1).

 L’option PAGE FOOTING (ou PF) indique un groupe d’édition de type « fin de page » qui est imprimé
à la fin de chaque page.
Un seul groupe de ce type peut être défini pour un état donné (mais ce n’est pas obligatoire).

 L’option REPORT FOOTING (ou RF) indique un groupe d’édition de type « fin d’état » qui est
imprimé à la fin de l’état , au moment de l’instruction TERMINATE .
Un seul groupe de ce type peut être défini pour un état donné (mais ce n’est pas obligatoire).

 Quand tous les groupes sont mentionnés , le générateur les imprime dans l’ordre suivant :

REPORT HEADING (une seule fois)


PAGE HEADING
CONTROL HEADING
DETAIL

Cours de COBOL-85 Le Report Writer Chapître 12 - page 17


ESAT-DMSI page 12-18
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

CONTROL FOOTING
PAGE FOOTING
REPORT FOOTING (une seule fois)

Cours de COBOL-85 Le Report Writer Chapître 12 - page 18


ESAT-DMSI page 12-19
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

 Les groupes d’édition de contrôle début (HEADING) doivent être présentés dans l’ordre
hiérarchique suivant (cf le principe étudié sur un exemple pages 7 et 8 ) :

(cas de notre exemple page 5)

CONTROL HEADING FINAL début du programme

CONTROL HEADING
. .
majeur
. ⇒ début usine

. . .
. . .

CONTROL HEADING mineur début service

 Les groupes d’édition de contrôle fin (FOOTING) doivent être présentés dans l’ordre hiérarchique
suivant (cf le principe étudié sur un exemple pages 7 et 8 ) :

(cas de notre exemple page 5)

CONTROL FOOTING mineur fin service


. . .

.
.
.
.
. ⇒ fin usine

CONTROL FOOTING majeur

CONTROL FOOTING FINAL fin programme

autre exemple :

Si , sur un état , on a à éditer des bilans (totaux ) journaliers puis mensuels puis
pour l’ensemble des dates traitées , on aura les clauses suivantes dans le programme
cobol :

CONTROL FINAL MOIS JOUR

l’édition commencera par les groupes d’édition :

REPORT HEADING (MOIS et JOUR étant des zones décrites en


PAGE HEADING DATA DIVISION)
CONTROL HEADING FINAL
CONTROL HEADING MOIS
CONTROL HEADING JOUR

Une rupture de contrôle au niveau des jours provoquera l’impression des groupes :

CONTROL FOOTING JOUR


CONTROl HEADIND jour

Une rupture de contrôle au niveau des jours provoquera l’impression des groupes :

CONTROL FOOTING JOUR


CONTROL FOOTING MOIS
CONTROL HEADING MOIS
CONTROL HEADING JOUR

L’édition se terminera par l’impression des groupes :

CONTROL FOOTING JOUR

Cours de COBOL-85 Le Report Writer Chapître 12 - page 19


ESAT-DMSI page 12-20
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

CONTROL FOOTING MOIS


CONTROL FOOTING FINAL

A252-d Format de la clause NEXT GROUP

}
entier-1
NEXT GROUP { PLUS entier-2
NEXT PAGE

Règles
 Entier-1 et entier-2 sont strictement positifs et en outre , entier-1 doit être compatible avec
la clause PAGE LIMIT.

 La clause NEXT GROUP ne peut apparaître qu’au niveau 1 et ne sera effective que lorsque le
groupe dans lequel elle est spécifiée sera totalement édité.

 Entier-1 indique le numéro absolu de la ligne sur laquelle le prochain groupe pourra commencer
son édition.

 PLUS indique un numéro relatif de la ligne par rapport au contenu du compteur LINE-COUNTER ,
lequel est incrémenté de entier-2.

 NEXT PAGE indique un saut automatique à la page suivante (avec impression des groupes PAGE
FOOTING et PAGE HEADING s’ils existent).
Cette option , dans un groupe de type « début d’état » spécifie que ce groupe peut s’étendre sur
toute la page logique.
Cette clause n’a pas lieu d’être choisie dans un groupe de type « haut-de-page » ou « bas-de-
page » ni dans un groupe « fin-d’état ».

A252-e Formats de la clause LINE


Format n° 1

3 LINE { entier-1
PLUS entier-2 } ●

Format n° 2

3 LINE NEXT PAGE


Règles
 entier-1 et entier-2 sont strictement positifs ; en outre entier-1 doit être compris dans la zone
de valeurs spécifiée par la clause PAGE LIMIT.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 20


ESAT-DMSI page 12-21
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

 La clause LINE est obligatoire dans un groupe d’édition ; la ligne d’édition d’une donnée est
définie par la clause LINE appartenant à sa description au niveau 3.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 21


ESAT-DMSI page 12-22
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

 Dans un groupe , toute indication absolue doit se faire dans l’ordre strictement croissant des
numéros de ligne et une indication relative (PLUS) ne peut être suivie par une absolue.

 format n° 1

Entier-1 donne le n° absolu de la ligne sur laquelle l’impression à venir sera effectuée (elle
provoque l’initialisation du compteur LINE-COUNTER à cette valeur).

PLUS donne le n° relatif de la ligne par rapport au contenu de LINE-COUNTER (lequel est
incrémenté de entier-2.)
Le n° absolu résultant peut être fonction du type de groupe en cours de définition :

par exemple avec l’option HEADING 22 dans la clause PAGE LIMIT et la clause LINE PLUS 2
dans une description de type CONTROL HEADING , le n° absolu de la ligne sera 24 (si cette
clause line est la première du groupe).

 format n° 2

Le format n° 2 indique un saut automatique à la page suivante (avec impression des groupes
PAGE FOOTING et PAGE HEADING ...s’ils existent).
Cette option ne peut être choisie que pour la première apparition de la clause LINE dans un
groupe et le N° absolu de la première ligne est alors indiqué par entier-1.

A252-f Format de la clause GROUP

3 GROUP INDICATE

Règles

 Cette clause sert à indiquer qu’une donnée ne doit être imprimée que lors de la première
apparition de son groupe d’édition après une rupture de contrôle ou un changement de page.

 Si les clauses PAGE et CONTROL sont absentes , cette donnée ne sera éditée qu’une fois dans
l’état (à la première présentation du groupe dans l’état).

 Cette clause ne peut apparaître que pour une donnée élémentaire en niveau 5.

A252-g Formats de la clause COLUMN

3 COLUMN entier

Règles

 La clause sert à indiquer la position d’une donnée à l’intérieur de la ligne.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 22


ESAT-DMSI page 12-23
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

 Entier donne la position du caractère gauche de la donnée (entier varie de 1 à 132).

 Si cette clause n’est pas spécifiée , la donnée ne sera pas imprimée.

 Les clauses COLUMN d’une même ligne doivent être citées dans l’ordre croissant des positions.

 Cette clause COLUMN ne peut apparaître qu’au niveau élémentaire (nbre niveau 5).

A252-h Format de la clause SOURCE

SOURCE nom-donnée

Règles

 Cette clause sert à indiquer la valeur que prendra une donnée lors de son impression en citant la
zone qui l’initialisera.

 La donnée comportant cette clause prendra une valeur conforme au transfert implicite qui
s’effectuera avant l’édition entre la zone nom-donnée et la donnée à éditer , d’après les règles
du verbe MOVE.

 Nom-donnée doit être défini en DATA DIVISION (file section, working,linkage,...etc...) .


Nom-donnée peut également être défini comme une zone élémentaire comportant la clause SUM en
REPORT SECTION.

 Nom-donnée peut être l’un des compteurs : LINE-COUNTER ou PAGE-COUNTER.

A252-i Format de la clause SUM

SUM nom-donnée-1 nom-donnée-2 .......

[ UPON nom-donnée-3 ]
RESET ON [ { nom-donnée-4
FINAL }]

Règles

Cours de COBOL-85 Le Report Writer Chapître 12 - page 23


ESAT-DMSI page 12-24
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

Cette clause sert à définir une donnée accumulateur dans laquelle seront cumulées automatiquement
les données citées.

 Cette clause ne peut être présente qu’au niveau élémentaire (5).

 Cette clause ne peut apparaître que dans un groupe de type CONTROL FOOTING.

 Cette clause déninit une donnée accumulateur à laquelle l’utilisateur peut se référer dans la
procédure division et éventuellemnt dans la report section (CF clause SOURCE).
Les données citées à la suite de SUM sont additionnées à la donnée-accumulateur (de classe
numérique : les caractéristiques d’édition n’étant prises en compte que lors de l’impression).

 Nom-donnée-1,2,.. doivent être cités dans une clause SOURCE de groupe de type « détail » ou
encore dans la report section comme donnée-accumulateur d’un groupe d’édition.

 Une donnée-accumulateur est incrémentée de ses opérandes de la façon suivante :

Si l’opérande est lui-même une donnée-accumulateur définie dans un groupe CONTROL FOOTING à
un niveau inférieur : il est additionné avant chaque impression du groupe d’édition.

Si l’opérande est une donnée-accumulateur définie dans ce même groupe d’édition, il est
additionné avant chaque impression de celui-ci.

Si l’opérande n’est pas une donnée-accumulateur , il est additionné avant chaque demande
d’impression de tout groupe DETAIL comportant cet opérande dans une clause SOURCE.

 L’option UPON permet de spécifier d’autres règles d’incrémentation : nom-donnée-3 est le nom d’un
groupe de type DETAIL; dans ce cas , les opérandes ne doivent pas être des données-accumulateurs.

L’addition a lieu à chaque demande d’impression du groupe DETAIL spécifié , tout opérande étant
obligatoirement cité dans une clause SOURCE de ce groupe DETAIL.

 L’option RESET permet d’indiquer l’instant de la remise à zéro de la donnée-accumulateur.


Par défaut, celle-ci est initialisée (à zéro) après l’exécution de la demande d’impression du
groupe (suite à une rupture de contrôle).
Cette option permet d’indiquer que la donnée-accumulateur ne sera jamais remise à zéro (en
mentionnant FINAL) ou qu’elle le sera sur une rupture de contrôle sur nom-donnée-4 (celle-ci doit
être citée dans la clause CONTROL avant la zone de contrôle du groupe en cours de définition)

A252-j Format de la clause VALUE

VALUE IS littéral

Règles

 cette clause sert à affecter une valeur explicite à un élément du groupe.

 pour les règles d’utilisation : CF la clause VALUE (initialisation) étudiée dans le chapître sur
la DATA DIVISION (et plus précisément en working-storage setcion).

Cours de COBOL-85 Le Report Writer Chapître 12 - page 24


ESAT-DMSI page 12-25
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

A252-k Format de la clause PICTURE

PICTURE IS chaîne-de-caractères

Règles

 cette clause sert à décrire les éléments du groupe.

 pour les règles d’utilisation : CF la clause PICTURE étudiée dans le chapître sur la DATA
DIVISION.

A252-l Format de la clause BLANK

BLANK WHEN ZEROl

Règles

 cette clause sert à remplir une donnée avec des espaces quand la valeur qu’on y transfère est
nulle.

 pour les règles d’utilisation : CF la clause BLANK étudiée dans le chapître sur la DATA DIVISION.

A252-m Format de la clause JUSTIFIED

JUSTIFIED RIGHT

Règles

 cette clause sert à spécifier le cadrage des informations transférées dans la zone décrite.

 pour les règles d’utilisation : CF la clause JUSTIFIED étudiée dans le chapître sur la DATA
DIVISION.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 25


ESAT-DMSI page 12-26
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

A26 Les INSTRUCTIONS (spécifiques à l’utilsation du report


writer

A261 Instruction INITIATE

INITIATE nom d’état-1 [nom d’état-2 ] ...[. nom d’état-n ]

Règles

 Fonction:

Permet d’initialiser les compteurs, les contrôles et amorcer le traitement d’un état.


Chaque nom d‘état doit être défini en REPORT SECTION ; l’instruction INITIATE s’applique à chaque
état spécifié.


INITIATE réalise les fonctions suivantes :

- mise à zéro des données-accumulateurs.


- initialisation des zones de contrôle.
- initialisation à 1 du PAGE-COUNTER.
- initialisation à 0 du LINE-COUNTER.
- impression de l’éventuel groupe d’édition de type REPORT HEADING.


Emploi :

Cette instruction est obligatoire avant de commencer toute édition; elle peut être répétée
pour un état donné à condition que le traitement de celui-ci se soit terminé par l’instruction
TERMINATE et par la fermeture des fichiers.

NB : cette instruction ne réalise pas l’ouverture du fichier-imprimante (OPEN reste


indispensable et doit précéder INITIATE).

A262 Instruction GENERATE

format n° 1

GENERATE nom d’état

format n° 2

GENERATE nom-donnée

Règles

Cours de COBOL-85 Le Report Writer Chapître 12 - page 26


ESAT-DMSI page 12-27
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

GENERATE assure le lien , au moment de l’exécution du programme , entre la procédure division et


le générateur d’états.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 27


ESAT-DMSI page 12-28
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

 Format n° 1 :

L’instruction GENERATE assure toutes les opérations automatiques nécéssaires , met à jour les
groupes d’édition de type FOOTING , mais ne produit aucun groupe d’édition de type DETAIL.

Avec ce format , il s’agit de l’édition abrégée pour l’état concerné : les accumulateurs sont
mis à jour à chaque exécution de l’instruction même si elle ne provoque aucune impression.

 Format n° 2 :

Nom-donnée désigne un groupe de type DETAIL ; il y a impression du groupe spécifié avec


toutes les opérations automatiques nécéssaires qui sont les suivantes :

GENERATE reconnaît les ruptures de contrôle et produit les groupes d’édition CONTROL
HEADING et CONTROL FOOTING appropriés.

GENERATE assure les cumuls nécéssaires (définis par SUM) , réinitialise les accumulateurs
lors d’une rupture de contrôle , met à jour les accumulateurs d’un niveau de contrôle à
l’autre (du niveau mineur vers le niveau de rupture de contrôle).

GENERATE fait progresser et teste les compteurs LINE-COUNTER et PAGE-counter pour provoquer
éventuellement l’édition des groupes « haut-de-page » et « bas-de-page ».

GENERATE exécute la séquence spécifiée éventuellemnt par la déclaration USE BEFORE


REPORTING (CF les déclaratives ) pour le groupe spécifié avant l’impression effective.

la première instruction GENERATE produit l’impression des groupes d’édition (s’ils sont
spécifiés) dans l’ordre suivant :

CONTROL HEADING FINAL


CONTROL HEADING majeur
. . .
. . .
. . .
CONTROL FOOTING mineur

lors d’une rupture de contrôle , l’exécution de GENERATE provoque l’impression des groupes
d’édition de contrôle dans l’ordre suivant :

CONTROL FOOTING mineur


. . .
. . .
. . .
CONTROL FOOTING associé à la rupture
CONTROL HEADING associé à la rupture
. .
. . .
. . .
CONTROL HEADING mineur
DETAIL

A263 Instruction TERMINATE

TERMINATE nom d’état-1 [ nom d’état-2 ] .... [ nom-d’état-n ]

Règles


TERMINATE termine le traitement des états spécifiés (qui doivent être décrits en REPORT SECTION).

Cours de COBOL-85 Le Report Writer Chapître 12 - page 28


ESAT-DMSI page 12-29
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

 TERMINATE provoque l’impression des groupes d’édition de contrôle (CONTROL FOOTING) du niveau le
plus bas (mineur) vers le niveau le plus haut (majeur ou FINAL s’il existe).

CONTROL FOOTING mineur


. . .
. . .
. . .
CONTROL FOOTING majeur
CONTROL FOOTING FINAL

 TERMINATE provoque l’impression du groupe « fin d’état » (REPORT FOOTING).

 Emploi :

L’instruction TERMINATE , pour un état donné doit avoir été précédée d’une instruction INITIATE
et peut être répétée à condition d’être séparée du TERMINATE par une instruction INITIATE (ainsi
que par les ordre de fermeture et ouverture des fichiers).

L’instruction TERMINATE n’assure pas la fermeture du fichier-imprimante (CLOSE reste


indispensable et doit suivre l’instruction TERMINATE).

A264 Les déclaratives avec l’instruction USE BEFORE REPORTING

USE BEFORE REPORTING nom-donnée

Règles

 Spécifie le traitement à exécuter avant impression d’un groupe d’édition (CF le cours sur
l’emploi des déclaratives).

 Le traitement est constitué par la section suivant la déclaration et est exécuté par le
générateur d’états immédiatemment avant la création du groupe d’édition spécifié dans la phrase
USE (c’est-à-dire après tous les calculs de sommes mais avant le transfert des données dans
l’image de la ligne d’édition).

 Extrait de l’exemple complet fourni au paragraphe B. [ CF page ]

PROCEDURE DIVISION.
declaratives.
premiere-page section.
use before reporting debut-etat.
faire-moins-un.
subtract 1 from page-counter.
end declaratives.
suite section.
debut.
open input fentree output finf ftrs fgnd fimpri
* subtract 1 from page-counter => nok => declaratives
accept wdate from date

Cours de COBOL-85 Le Report Writer Chapître 12 - page 29


ESAT-DMSI page 12-30
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

move wdate to wbuf


move wdate(5:2) to wdate(1:2)
move wbuf to wdate(5:2)
initiate dans-quel-etat-j-erre

 La section ne doit comporter aucune des instructions GENERATE,INITIATE,TERMINATE.

 Nom-donnée représente un groupe d’édition de type autre que DETAIL ; il ne doit pas être nommé
dans plus d’une déclaration USE.

 Emploi :

Dans le traitement qui suit la déclaration , il est permis d’utiliser l’instruction qui supprime
l’édition du groupe spécifié : « SUPPRESS PRINTING ».
(il existe également un registre nommé PRINT-SWITCH , mis à zéro par INITIATE qui permet de
supprimer l’édition du groupe spécifié : pour ce faire , il suffit de le mettre à 1).

Si la suppression est demandée , le compteur LINE-COUNTER n’est pas modifié et la clause


éventuelle NEXT GROUP citée dans la description du groupe est ignorée.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 30


ESAT-DMSI page 12-31
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

A27 exemple simple commenté : écriture du programme du cas « Halhamantte » (cf parag
A24)

A271 le programme cobol correspondant au pseudo-code de la page 12

IDENTIFICATION DIVISION.
PROGRAM-ID. halhama.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
select fimpri assign to "c:\laf\cobol\report-w\listemp.txt".
select fentree assign to "c:\laf\cobol\docu\jeu1.txt".
DATA DIVISION.
FILE SECTION.
fd fentree.
1 enreg.
3 e-usine pic xx.
3 e-service pic x(3).
3 pic x(7).
3 e-nom pic x(20).
3 e-prenom pic x(20).
3 pic x(19).
3 e-note pic 99v99.
3 pic x(5).
fd fimpri report is dans-quel-etat-j-erre.
1 sligne pic x(80).
WORKING-STORAGE SECTION.
77 wctf pic 9 value 0.
88 fin-fichier value 1.
77 wusi pic xx.
77 wserv pic xxx.
report section.

rd dans-quel-etat-j-erre
controls are final e-usine e-service
page limit is 66 lines
heading 1
first detail 9
last detail 50
footing 64.

1 debut-etat type report heading next group next page.


3 line 3.
5 column 10 pic x(7) value "dossier".
3 line 4.
5 column 10 pic x(18) value "Liste du Personnel".
3 line 5.
5 column 10 pic x(15) value "de la société".
3 line 6.
5 column 10 pic x(11) value "HALHAMANTTE".

1 haut-de-page type page heading.


3 line 1.
5 column 1 pic x(80) value all X"c4".
3 line 2.
5 column 70 pic x(7) value "page :".
5 column 77 pic zz source page-counter.
3 line 3.
5 column 1 pic x(80) value all X"c4".

1 debut-usine type control heading e-usine.


3 line 9.
5 column 1 pic x(9) value "usine n°".
5 column 10 pic xx source e-usine.
3 line 10.
5 column 1 pic x(11) value all X"c4".

1 debut-service type control heading e-service.


3 line plus 2.
5 column 5 pic x(9) value "service".
5 column 14 pic xxx source e-service.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 31


ESAT-DMSI page 12-32
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

3 line plus 1.
5 column 5 pic x(14) value all x"c4".
3 line plus 1.
5 column 1 pic x value " ".

1 ma-ligne-detail type detail.


3 line plus 1.
5 column 10 pic x(21) source e-nom.
5 column 31 pic x(21) source e-prenom.
5 column 63 pic z9v,99 source e-note.

1 fin-service type control footing e-service next group


next page.
3 line plus 2.
5 column 40 pic x(22) value "total du service =".
5 tot-serv column 61 pic zzz9v,99 sum e-note
reset on e-service.

1 fin-usine type control footing e-usine.


3 line plus 2.
5 column 40 pic x(22) value "total usine =".
5 tot-usi column 61 pic zzz9v,99 sum tot-serv
reset on e-usine.

1 bas-de-page type page footing.


3 line 65.
5 column 1 pic x(80) value all x"c420".
3 line 66.
5 column 1 pic x(44) value
"liste des employés de la société Halhamantte".

1 fin-programme type control footing final.


3 line plus 2.
5 column 40 pic x(22) value "total société =".
5 tot-soc column 61 pic zzz9v,99 sum tot-usi
reset on final.

1 fin-etat type report footing.


3 line plus 3.
5 column 40 pic x(12) value "fin de liste".

PROCEDURE DIVISION.
debut.
open input fentree output fimpri
initiate dans-quel-etat-j-erre
subtract 1 from page-counter
read fentree
at end
set fin-fichier to true
end-read
perform until fin-fichier
move e-usine to wusi
perform until e-usine not = wusi or fin-fichier
move e-service to wserv
perform until e-service not = wserv or e-usine not = wusi or fin-fichier
generate ma-ligne-detail
read fentree
at end
set fin-fichier to true
end-read
end-perform
end-perform
end-perform
terminate dans-quel-etat-j-erre
close fentree fimpri
stop run.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 32


ESAT-DMSI page 12-33
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

A272 résultat obtenu

dossier
Liste du Personnel
de la société
HALHAMANTTE

première page : « début d’état »


due à la présence du groupe
REPORT HEADING

Cours de COBOL-85 Le Report Writer Chapître 12 - page 33


ESAT-DMSI page 12-34
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
page : 1 haut de page
--------------------------------------------------------------------------------

usine n° 01 résultat de la présence du groupe CONTROL HEADING e-usine


-----------

service ATE
-------------- résultat de la présence du groupe CONTROL HEADING e-service

AVIRY LUC 16,58


BLANCHOT JACQUES 18,25
BURNICHOU JACQUES 16,60
CABANOU DIANE 9,00
CESARINNI RICHARD 12,69
CRAPIGNARD CLAIRE 15,00
DE LA PENA BLANDINE 11,47
DORRY JULIE 18,00
ETILIC CHRISTOPHE 12,00
GOLOGOLO FALILOU 15,00
GONZALEZ JUAN 12,22
HERNESTO NADEGE ligne-détail 17,00
JAMBON-DUPAYS PAULE 18,12
LAGALLE SABINE 17,45
LE PODEC ERIC 16,00
MAQUERIN DENISE 14,00
N'ZEZE JEAN-CHARLES 11,00
NICOCHIOU BERTILLE 9,00
PAGEOT SOLANGE 12,78
PERETTI JUSTINE 18,50
PIROUX ALEX 16,50
POPINARD ELODIE 19,00
RACCHI CLEMENCE 15,50
RALATOUF ALBERT 12,00
RICARD HUGUES 15,46
RIPOUNET MARCEL 18,01
STOKOVIC ROLAND 11,25
VISQUI DANIEL 18,25
VOUBI-LAPLAC VICTOR 16,00
XEFINI XAVIER 17,00

total du service = 449,63

CONTROL FOOTING sur le service

liste des employés de la société Halhamantte bas de page


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Cours de COBOL-85 Le Report Writer Chapître 12 - page 34


ESAT-DMSI page 12-35
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
page : 2
--------------------------------------------------------------------------------

service DIR
--------------

AVECCHEZ POLO 14,00


BARGEOT-PINAC PIERRE 12,89
BROTIGNAC URBAIN 15,36
CATIFLON JACQUES 17,00
CHABOUGNARD YVETTE 17,00
CHAKI REMI 12,07
CHTRUMPF ROGER 14,00
CLEATOUR JACK 14,50
DA LACANTINA JUAN 12,09
DANLEPAN ARNAUD 15,36
DE LA TRONCHEN ROSINE 14,25
DEJARDIN JACQUES 14,00
DRIPUCON PAUL 16,85
EUGRAFAL AMADEUS 19,75
FIRNEROT ANDRE 16,25
FOSSAY ALONZO 16,00
GEFRO MARIE-ANNICK 12,06
GORRIGNAC DENIS 13,00
GRADUCHON CARINE 12,10
GRADUCOUX JUSTINE 13,00
JEFROY LEONCE 12,85
LABOURNY ISABELLE 12,08
LAGAL JACQUES 12,00
LONBOUT JACQUES 11,44
NITOUCHE THERESE 10,00
PETITFOU JACQUES 17,00
PINUCHE VALENTIN 13,00
PLANI JACQUES 14,00
PORCINET MARCEL 12,01
QUIRINETTI BRICE 9,00
RAVARY JUDITH 12,70
ROUSSI EMILE 18,00
TIFFART CONSTANT 17,25
WAGNERE BEATRICE 12,03
ZWUITYCHYTONNINNI MARCEL 14,00

total du service = 488,89

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
liste des employés de la société Halhamantte

Cours de COBOL-85 Le Report Writer Chapître 12 - page 35


ESAT-DMSI page 12-36
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
page : 3
--------------------------------------------------------------------------------

service ETU
--------------

BARBOUZON MATHILDE 16,27


BARGEAU NICOLAS 14,45
BOLE-CASOU EDMOND 14,25
BOLLERAS PHILIPPE 14,52
BOUBI DAMIEN 17,23
BOUCEROT JEAN 16,23
BOUGNOL ACHILLE 14,45
BRUTASSOU VIVIANE 15,78
BURNEL JEAN 16,25
BURNICHOU JACQUES 16,85
CHAVEL HONORE 18,25
CIPROUTO CHARLOTTE 14,25
CORNINOULLOT JEAN 14,25
CRABALOT CHARLES 18,25
CRIGNOT JEAN 13,00
CRUCHON VIVIEN 16,26
DA RIVIERA JUAN 16,28
DA RODRIGO JUAN 11,11
DARTIGNAC GASTON 16,35
DUONSSOU PROSPER 13,25
FRIDASSOU RENAUD 16,27
FRIPOUX JEAN 18,54
GAROU JEAN-LOUP 14,25
GIRADOU JEAN 19,25
GRANDFOU PIERRE 17,25
GRIMONCHAMP THIBAUT 16,28
JAMBALER ANNICK 18,25
LABAF JEAN 16,26
LABLONDE GILLES 12,65
LABURNE SERGE 13,25
LAMOUREUX JEAN-PIERRE 16,26
LAPIOL JEANNE 10,25
LAVIANDE DELPHINE 19,02
LE GRALOU HERVE 18,25
LE NAIN SATURNIN 14,25
MACIONI REGIS 8,75
MARCELLO CONSTANTIN 11,98
MICHOUNET JEANNE 16,71
MULER-DUNC YOLANDE 17,25

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
liste des employés de la société Halhamantte

Cours de COBOL-85 Le Report Writer Chapître 12 - page 36


ESAT-DMSI page 12-37
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
page : 4
--------------------------------------------------------------------------------

NEUROBIO ALAIN 8,25


PASQUI JOSEPH 16,50
PELE BOLOU-BOULOU 6,25
PERNOD CHRISTIAN 17,56
PIANOTTI BLAISE 16,25
PICHON MARCEL 9,25
PINARDOT JEAN 16,55
PINEUX FIRMIN 13,25
PINOUFLET JEAN 15,00
PIROUETTI MAXIME 18,63
PLINDESCENS JEAN-PAUL 14,28
RALATOUF EDITH 14,25
RAMED BEN 14,50
SADUR ISABELLE 16,28
SAN ANTONIO ANTOINE 13,25
SANCHEZ JUAN 13,33
TASSAROTI GERARD 17,50
VACHARD PAUL 14,25
VALBOUC PIERRE 17,25
VENEU JOSIANE 14,25
ZAPINE SANDRINE 18,25
ZYVYTCH IGOR 11,96

total du service = 919,34

total usine = 1857,86

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
liste des employés de la société Halhamantte

Cours de COBOL-85 Le Report Writer Chapître 12 - page 37


ESAT-DMSI page 12-38
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
page : 5
--------------------------------------------------------------------------------

usine n° 02
-----------

service ATE
--------------

ALABOUF NESTOR 12,50


FROGONNO BERTHE 13,00
LECHAFON MARINE 13,50
PETOUNET MARC 12,25
RALATOUF ETIENNE 13,50
RASQUATTE MARC 17,25

total du service = 82,00

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
liste des employés de la société Halhamantte

Cours de COBOL-85 Le Report Writer Chapître 12 - page 38


ESAT-DMSI page 12-39
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------

. page : 7
--------------------------------------------------------------------------------

.
. dernière page (de données) avant la fin d’état

.
service ETU
--------------

BOBARD JEAN 12,25


BOVEAU JEAN 16,22
CARMICON JEAN 17,25
CASBONBINI MARCEL 12,36
CHIALOUX FLORENCE 17,25
CHIASSOUX-BERNARD ANTHONY 18,25
DESSALON OLIVIA 16,25
DUFER CASIMIR 15,50
FITROCHON BENOIT 16,42
FOUMI PIERRE 17,00
LABAF JEAN 16,25
LABROUILLE ISIDORE 16,25
LE CHAUVE STANISLAS 16,22
MACARONETTINI LEON 13,50
MULLER AGATHE 15,25
MURINI ANGE 11,05
N'GORE JEAN 16,50
PIOLA JEAN 16,25
PISSOUNET MARCEL 19,25
RASPITOU JEAN 14,25
ROUPIGNAC THIERRY 14,25
ROYER-MOLLOUX VERONIQUE 16,24

total du service = 344,01


CONTROL FOOTING sur usine total usine = 607,55

CONTROL FOOTING FINAL total société = 2465,41

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
liste des employés de la société Halhamantte

fin de liste

Cours de COBOL-85 Le Report Writer Chapître 12 - page 39


ESAT-DMSI page 12-40
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

B Exemple d’édition plus complexe


B1 sujet du cas « cross »

Fichier des résultats du cross (distance = 8,250 km)


organisation séquentielle
Trié en croissant sur ARME,Code Hiérarchique,Temps
c:\resultat.txt
code
matricule nom prénom grade arme date naiss. hiérachique divers temps
x(6) x(20) x(20) xxx x(3) x(6) 99 x(30) 9(8)

1 => Général
PS / CBL85
2 => Colonel
3 => Lieutenant-Colonel
4 => Commandant
5 => etc..
c:\stat.txt
c:\trs.txt c:\inf.txt résultat du cross 97 Page 1

ARME abc
TRS INF
vitesse vitesse Marcel 1825
Lcl Dugenou
> 14kmh > 18kmh
Pinouflet Hector 1928
Danlepan Emile 2183
temps moyen 1978 , 66

c:\gnd.txt Cdt Gradouchon Marcello 1625


GND
vitesse Berlinou Jean 1628
> 12kmh Jobartini Michel 2625
Kavitchkynovsky Jules 2700
Gouyou-Gazou Emilien 2712
temps moyen 2258 , 00

. .
Fichiers des bons . .
pour l'arme "TRS" , il faut avoir . .
couru à une vitesse >= à 14 kmh
. .
pour l'arme "INF" , il faut avoir
Sgt Dupont Mahomed 1324
couru à une vitesse >= à 18 kmh
Ricochet Richard 1437
pour l'arme "GND" , il faut avoir Pabot léon 1650
couru à une vitesse >= à 12 kmh temps moyen 1470 , 33

temps moyen abc 1902 , 31

matricule temps distance


x(6) 9(8) 9(4)

(un saut de page avec réécriture du titre


pour chaque arme)

Cours de COBOL-85 Le Report Writer Chapître 12 - page 40


ESAT-DMSI page 12-41
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

B2 résolution du problème sans report writer

début programme.
ouvrir les fichiers.
lecture du fichier en entrée (nom : FENTREE ; zone entrée : ZE)
récupérer la date système + MZM de l’année en ligne titre
faire tant que non FF(FENTREE)
total-arme(ZM), ca(ZM)  0 (ca = compteurs du nbre de personnes par arme)
compteur page(ZM) = compteur page(ZM) + 1
MZS du compteur de page(ZM) (ZS = zone de sortie du fichier imprimante)
écriture de la ligne titre avec saut de page (ZS-TRS = zone de sortie du fichier c:\trs.txt
MZS et MZM du code-arme(ZE) (ZS-INF = zone de sortie du fichier c:\inf.txt
écriture de la ligne « arme » (ZS-GND = zone de sortie du fichier c:\gnd.txt)
faire tant que même arme et non FF(FENTREE)
MZM ET MZS DU grade(ZE) (grade(ZE) => grade lu dans FENTREE)
total-temps(ZM), cg(ZM)  0 (cg = compteurs du nbre de personnes par grade et arme)
faire tant que même grade , même arme et non FF(FENTREE)
MZS (nom,prénom,temps)(ZE)
écriture de la ligne « détail » + MEI de la ZS
cg(ZM) = cg(ZM) + 1
total-temps(ZM) = total-temps(ZM) + temps(ZE)
au cas ou
l’arme(ZE) = "trs"
si le temps(ZE) <= temps limite trs(ZM)
alors
MZS-TRS (matricule,temps)(ZE) , distance(ZM)
écriture sur le fichier FTRS (c:\trs.txt)
fin si
l’arme(ZE) = "inf"
si le temps(ZE) <= temps limite inf(ZM)
alors
MZS-INF (matricule,temps)(ZE) , distance(ZM)
écriture sur le fichier FINF (c:\inf.txt)
fin si
l’arme(ZE) = "gnd"
si le temps(ZE) <= temps limite gnd(ZM)
alors
MZS-GND (matricule,temps)(ZE) , distance(ZM)
écriture sur le fichier FGND (c:\gnd.txt)
fin si
fin au cas ou
lecture du fichier FENTREE
fin faire
calcul temps moyen(ZM) = total temps(ZM) / cg(ZM)
MEI de la ZS + MZS de « temps moyen » et temps moyen(ZM)
écriture de la ligne temps moyen par grade
calcul total arme(ZM) = total arme(ZM) + total temps(ZM)
ca(ZM) = ca(ZM) + cg(ZM)
fin faire
calcul temps moyen(ZM) = total arme(ZM) / ca(ZM)
MZS « temps moyen » + arme(ZM) + temps moyen (ZM)
écriture de la ligne temps moyen par arme
fin faire
fermer les fichiers
arrêt du programme.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 41


ESAT-DMSI page 12-42
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

IDENTIFICATION DIVISION.
PROGRAM-ID. cross.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
select fimpri assign to "c:\stat.txt".
select ftrs assign to "c:\trs.txt".
select finf assign to "c:\inf.txt".
select fgnd assign to "c:\gnd.txt".
select fentree assign to "c:\resultat.txt".

DATA DIVISION.
FILE SECTION.

fd fentree.
1 enreg.
3 ematri pic x(6).
3 enom pic x(20).
3 eprenom pic x(20).
3 egrade pic xxx.
3 earme pic xxx.
3 pic x(7).
3 etemps pic 9(8).

fd finf.
1 sinf.
3 smatri pic x(6).
3 stemps pic 9(8).
3 sdist pic 9999.

fd ftrs.
1 strs pic x(18).

fd fgnd.
1 sgnd pic x(18).

fd fimpri linage is 60.


1 sligne pic x(80).

WORKING-STORAGE SECTION.
77 wctf pic 9 value 0.
88 fin-fichier value 1.

77 wdist pic 9999V99 value 8.25


77 wvit-inf pic 99v99 value 18.
77 wvit-trs pic 99v99 value 14.
77 wvit-gnd pic 99v99 value 12.

77 wcpage pic 999 value 0.


77 wca pic 999 value 0.
77 wcg pic 999 value 0.
77 wtempsmoyen pic 9(8)v99 value 0.
77 wtotaltemps pic 9(10) value 0.
77 wtotalarme pic 9(10) value 0.
77 wgrade pic xxx.
77 warme pic xxx.

1 wdate pic x(6).

1 wtitre.
3 pic x(10) value spaces.
3 pic x(18) value "resultat du cross".
3 wa pic x(40).
3 pic x(5) value "page".
3 wpage pic zz9.

1 wdetail value spaces.


3 wgra pic xxxx.
3 wnom pic x(21).
3 wprenom pic x(21).
3 wtemps pic z(7)9v,99.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 42


ESAT-DMSI page 12-43
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

PROCEDURE DIVISION.
debut.
open input fentree output finf ftrs fgnd fimpri
read fentree
at end
set fin-fichier to true
display "pb fentree vide"
end-read
perform until fin-fichier
accept wdate from date
move wdate(1:2) to wa
move 0 to wtotalarme wca
add 1 to wcpage
move wcpage to wpage
write sligne after page
move "arme : " to sligne
move earme to warme sligne(7:)
write sligne after 3
move spaces to sligne
write sligne after 4
perform until earme not = warme or fin-fichier
move egrade to wgrade wgra
move 0 to wtotaltemps wcg
perform until egrade not = wgrade or earme not = warme
or fin-fichier
move enom to wnom
move eprenom to wprenom
move etemps to wtemps
write sligne from wdetail
add 1 to wcg
compute wtotaltemps = wtotaltemps + etemps
evaluate earme
when "trs"
if etemps <= wdist * 3600 / wvit-trs
then
move ematri to smatri
move wdist to sdist
move etemps to stemps
write strs from sinf
end-if
when "inf"
if etemps <= wdist * 3600 / wvit-inf
then
move ematri to smatri
move wdist to sdist
move etemps to stemps
write sinf
end-if
when "gnd"
if etemps <= wdist * 3600 / wvit-gnd
then
move ematri to sgnd(1:6)
move wdist to sgnd(15:4)
move etemps to sgnd(7:8)
write sgnd
end-if
end-evaluate
read fentree
at end
set fin-fichier to true
end-read
end-perform
move spaces to wdetail
move "temps moyen" to wprenom
compute wtempsmoyen = wtotaltemps / wcg
add wtotaltemps to wtotalarme
add wcg to wca
write sligne from wdetail after 2
end-perform
move "temps moyen" to wprenom
move warme to wprenom(13:)
compute wtempsmoyen = wtotalarme / wca
write sligne from wdetail after 2
end-perform
close fentree fimpri finf ftrs fgnd

Cours de COBOL-85 Le Report Writer Chapître 12 - page 43


ESAT-DMSI page 12-44
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

stop run.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 44


ESAT-DMSI page 12-45
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

B3 même problème traité avec le report writer

IDENTIFICATION DIVISION.
PROGRAM-ID. cross.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
select fimpri assign to "c:\stat-rw.txt".
select ftrs assign to "c:\trs.txt".
select finf assign to "c:\inf.txt".
select fgnd assign to "c:\gnd.txt".
select fentree assign to "c:\resultat.txt".
DATA DIVISION.
FILE SECTION.
fd fentree.
1 enreg.
3 ematri pic x(6).
3 enom pic x(20).
3 eprenom pic x(20).
3 egrad pic xxx.
3 earme pic xxx.
3 pic x(38).
3 etemps pic 9(8).
fd finf.
1 sinf.
3 smatri pic x(6).
3 stemps pic 9(8).
3 sdist pic 9999.
fd ftrs.
1 strs pic x(18).
fd fgnd.
1 sgnd pic x(18).
fd fimpri report is dans-quel-etat-j-erre.
1 sligne pic x(80).
WORKING-STORAGE SECTION.
77 n pic 99 value 0.
77 wlin pic 99 value 0.
77 wpc1 pic 99 value 0.
77 wpc2 pic 99 value 0.
77 wpage-arme pic 99 value 0.
77 wctf pic 9 value 0.
88 fin-fichier value 1.
77 wdist pic 9999 value 8.
77 wvit-inf pic 99v99 value 18.
77 wvit-trs pic 99v99 value 14.
77 wvit-gnd pic 99v99 value 12.
77 wcpage pic 999 value 0.
77 wcp pic 999 value 0.
77 wca pic 999 value 0.
77 wcg pic 999 value 0.
77 wtempsmoyen pic 9(10)v99 value 0.
77 wtot-grade pic 9(9).
77 wtot-arme pic 9(9).
77 wgrade pic xxx.
77 warme pic xxx.
77 wbuf pic xx.
1 wdate pic x(6).

Cours de COBOL-85 Le Report Writer Chapître 12 - page 45


ESAT-DMSI page 12-46
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

1 wtabarme.
3 pic x(20) value "artl'Artillerie".
3 pic x(20) value "genle Génie".
3 pic x(20) value "gndLa Gendarmerie".
3 pic x(20) value "infl'Infanterie".
3 pic x(20) value "trsLes Transmissions".
3 pic x(22) value " Arme inconnue 06".
1 wtabarm redefines wtabarme.
3 occurs 6.
5 wcodarm pic xxx.
5 wclair pic x(17).
3 a pic 9.
3 amax pic 9.
REPORT SECTION.
rd dans-quel-etat-j-erre
controls are final earme egrad
page limit is 66 lines
heading 1
first detail 8
last detail 60
footing 64.

1 debut-etat type report heading next group next page.


3 line 3.
5 column 35 pic x(23) value "résultat du cross esat".
5 column 64 pic x(3) value "du".
5 column 68 pic 99/99/99 source wdate.
3 line 4.
5 column 36 pic x(40) value all X"C4".

1 haut-de-page type page heading.


3 line 1.
5 column 1 pic x(80) value all x"c4".
3 line 2.
5 column 1 pic x(9) value "ESAT-DMSI".
5 column 50 pic x(12) value "à Rennes le ".
5 column 63 pic 99/99/99 source wdate.
5 column 72 pic x(5) value "page".
5 column 77 pic 99 source page-counter.
3 line 3.
5 column 1 pic x(20) value "Av de la Touraudais".
3 line 4.
5 column 1 pic x(25) value "35335 Cesson-Sévigné".
5 column 30 pic x(19) value "résultats du cross-".
5 column 49 pic xx source wdate(5:2).
5 column 52 pic x(5) value "pour".
5 column 57 pic x(17) source wclair(a).
3 line 5.
5 column 1 pic x(80) value all x"c4".

1 debut-arme type control heading earme.


3 line 11.
5 column 1 pic x(10) value x"dac4c4c4c4c4c4c4c4bf".
3 line 12.
5 column 1 pic x(6) value x"b361726d653d".
5 column 7 pic xxx source earme.
5 column 10 pic x value x"b3".
3 line 13.
5 column 1 pic x(10) value x"c0c4c4c4c4c4c4c4c4d9".

1 debut-grade type control heading egrad.


3 line plus 1.
5 column 75 pic xxx value "<==".

Cours de COBOL-85 Le Report Writer Chapître 12 - page 46


ESAT-DMSI page 12-47
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

1 ma-ligne-detail type detail.


3 line plus 1.
5 column 1 pic x(4) source egrad group indicate.
5 column 5 pic x(21) source enom.
5 column 26 pic x(21) source eprenom.
5 column 55 pic z(7)9 source etemps.

1 ruse-supreme type detail.


3 line plus 0.
5 column 1 pic x value space.
* cette ligne sert à générer le bas de page
* sinon ce sera fait au prochain generate => earme et warme auront changé

1 ma-ligne-detail-magouille type detail.


3 line 59.
5 column 1 pic x(80) value all x"04".

1 fin-grade type control footing egrad.


3 line plus 2.
5 column 22 pic x(22) value "temps total du grade =".
5 tot-grade column 51 pic z(11)9 sum etemps reset on egrad.
3 line plus 1.
5 column 17 pic x(27) value "temps moyen pour le grade =".
5 column 54 pic z(8)9v,99 source wtempsmoyen.

1 fin-arme type control footing earme next group next page.


3 line plus 1.
5 column 13 pic x(24) value "temps total de l'arme : ".
5 column 37 pic xxx source earme.
5 column 40 pic xxxx value " =".
5 tot-arme column 51 pic z(11)9 sum tot-grade reset on earme.
3 line plus 1.
5 column 19 pic x(25) value "temps moyen de l'arme =".
5 column 54 pic z(8)9v,99 source wtempsmoyen.

1 bas-de-page type page footing.


3 line 65.
5 column 1 pic x(80) value all x"c420".
3 line 66.
5 column 1 pic x(14) value "cours cobol-85".
5 column 20 pic x(28) value "cross-ESAT par arme et grade".
5 column 60 pic x(5) value "pa ge-".
5 column 65 pic xxx source warme.
5 column 68 pic x value "-".
5 column 69 pic 99 source wpage-arme.

1 fin-programme type control footing final.


3 LINE plus 2.
5 column 20 pic x(31) value " temps total de l'école =".
5 tot-temps column 52 pic z(11)9 sum tot-arme reset on final.
3 line plus 2.
5 column 20 pic x(31) value "temps moyen de toute l'école =".
5 column 52 pic z(8)9v,99 source wtempsmoyen.

1 fin-etat type report footing.


3 line plus 3.
5 column 40 pic x(23) value "programme terminé".

PROCEDURE DIVISION.
declaratives.
premiere-page section.
use before reporting debut-etat.
faire-moins-un.
subtract 1 from page-counter.
end declaratives.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 47


ESAT-DMSI page 12-48
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

suite section.
debut.
open input fentree output finf ftrs fgnd fimpri
* subtract 1 from page-counter => nok => declaratives
accept wdate from date
move wdate to wbuf
move wdate(5:2) to wdate(1:2)
move wbuf to wdate(5:2)
initiate dans-quel-etat-j-erre
* move 3 to page-counter ==> çà marche
read fentree
at end
set fin-fichier to true
display "pb fentree vide"
end-read
move 0 to wca
perform recherche-clair-arme
perform until fin-fichier
add 1 to wca
move earme to warme
move page-counter to wpc1
move 1 to wpage-arme
move 0 to wcg wtot-arme
perform until earme not = warme or fin-fichier
add 1 to wcg
move egrad to wgrade
move zero to wcp wtot-grade
perform until egrad not = wgrade or earme not = warme
or fin-fichier
add 1 to wcp
add etemps to wtot-grade
move page-counter to wpc2
generate ma-ligne-detail
if page-counter not = wpc2
then
compute wpage-arme = page-counter - wpc1 + 1
end-if
evaluate earme
when "trs"
if etemps <= wdist * 3600 / wvit-trs
then
move ematri to smatri
move wdist to sdist
move etemps to stemps
write strs from sinf
end-if
when "inf"
if etemps <= wdist * 3600 / wvit-inf
then
move ematri to smatri
move wdist to sdist
move etemps to stemps
write sinf
end-if
when "gnd"
if etemps <= wdist * 3600 / wvit-gnd
then
move ematri to sgnd(1:6)
move wdist to sgnd(15:4)
move etemps to sgnd(7:8)
write sgnd
end-if
end-evaluate
read fentree
at end
set fin-fichier to true
end-read
end-perform
* compute wtempsmoyen = tot-temps / wcp => nok
compute wtempsmoyen = wtot-grade / wcp
add wtempsmoyen to wtot-arme
add wcg to wca
end-perform
compute wtempsmoyen = wtot-arme / wcg
* perform les-bidouilles
perform recherche-clair-arme
generate ruse-supreme

Cours de COBOL-85 Le Report Writer Chapître 12 - page 48


ESAT-DMSI page 12-49
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

end-perform
close fentree fimpri finf ftrs fgnd
terminate dans-quel-etat-j-erre
stop run.
recherche-clair-arme.
call "cbl_tolower" using earme by value 3
move 1 to a
perform until earme = wcodarm(a) or a >= amax
add 1 to a
end-perform.
les-bidouilles.
if line-counter < 60
then
* move 61 to line-counter
* move all x"04" to sligne *> pour visualiser
* write sligne
* nok on ne peut pas le forcer => érciture ligne suivante
* ==> essai de la ruse suivante
* move all x"05" to sligne *> pour visualiser
* compute n = 60 - line-counter
* write sligne after n
* nok écriture encore ligne suivante
* set line-counter to 61
* move all x"04" to sligne *> pour visualiser
* write sligne
generate ma-ligne-detail-magouille
end-if.

Cours de COBOL-85 Le Report Writer Chapître 12 - page 49


ESAT-DMSI page 12-50
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

début du jeu d’essai

n° 1 +++121PORCINET MARCEL colart05067302 00001202


n° 2 +++120BOUCEROT JEAN colart06075802 00001621
n° 3 +++220POURCEROT JEAN colart14026102 00001623
n° 4 +++221MORCINET MARCEL colart13016002 00001901
n° 5 +++017ZYVANISEVITCHSKY JULES lclart08097203 00001550
n° 6 +++217KZYVANISEVITCHSKYVYCLEO lclart16046403 00002559
n° 7 +++012PLINDESCENS JEAN-PAUL cdtart13016004 00001428
n° 8 +++212PLINDESCENS JEAN cdtart22065604 00002422
n° 9 +++125LABOURNY ISABELLE cneart18065606 00001204
n° 10 +++124BARBOUZON MATHILDE cneart19096906 00001621
n° 11 +++224BARBOUZON MATHILDE cneart30045506 00001621
n° 12 +++226DA CONCHITA JUAN cneart24106906 00001623
n° 13 +++126DA RIVIERA JUAN cneart17056806 00001628
n° 14 +++225SALADURNY ISABELLE cneart25066906 00001802
n° 15 +++110DA RODRIGO JUAN cneart20106706 00002111
n° 16 +++210DA FERNANDEZ JUAN cneart02036206 00002115
n° 17 +++109DE LA PENA BLANDINE cneart21015406 00002142
n° 18 +++209DE LA CAJOUILLE BLANDINE cneart03045906 00002144
n° 19 +++108MARCELLO CONSTANTIN cneart23025706 00002193
n° 20 +++208BARCELLI CONSTANTIN cneart04036806 00002199
n° 21 +++111GONZALEZ JUAN cneart22065606 00002220
n° 22 +++211BANDALEZ JUAN cneart01016906 00002226
n° 23 +++010CRIGNOT JEAN ltnart16046407 00001404
n° 24 +++254BOBINARD JEAN ltnart02036207 00001525
n° 25 +++255COPUCHON GISELE ltnart01016907 00001641
n° 26 +++055FITROCHON GISELE ltnart22065607 00001642
n° 27 +++256QUOCHONNET BENOIT ltnart30045507 00001642
n° 28 +++056FITROCHON BENOIT ltnart19096907 00001645
n° 29 +++209CRABIGNARD YVETTE ltnart24106907 00001700
n° 30 +++009CHABOUGNARD YVETTE ltnart17056807 00001707
n° 31 +++266ZAPTOU SANDRINE ltnart03045907 00001825
n° 32 +++166ZAPINE SANDRINE ltnart21015407 00001826
n° 33 +++057MOMEAU FERNAND ltnart18065607 00002160
n° 34 +++257MOMO FERNAND ltnart25066907 00002160
n° 35 +++054BOBARD JEAN ltnart20106707 00002229
n° 36 +++210CROCAMBOL JEAN ltnart23025707 00002300
n° 37 +++123CHAKI REMI majart03045910 00001206
n° 38 +++122PIANOTTI BLAISE majart04036810 00001623
n° 39 +++104PELE BOLOU-BOULOU majart01016910 00001624
n° 40 +++222JIAKNEOTTI BLAISE majart12125910 00001625
n° 41 +++204PELE BOLOU-BOULOU majart08097210 00001625
n° 42 +++223CHICO REMI majart10115510 00001707
n° 43 +++203BICOCHE BERTILLE majart09107010 00001900
n° 44 +++103NICOCHIOU BERTILLE majart02036210 00001905
n° 45 +++105N'ZEZE JEAN-CHARLES majart30045510 00002107
n° 46 +++205N'BOULE JEAN-CHARLES majart07087110 00002107
n° 47 +++242LAPINEUX FIRMIN adcart15036211 00001325
n° 48 +++141GORRIGNAC DENIS adcart08097211 00001406
n° 49 +++142PINEUX FIRMIN adcart07087111 00001527
n° 50 +++241FORRIGNAC DENIS adcart16046411 00002300
n° 51 +++016RASPITOU JEAN adjart09107011 00001425
n° 52 +++216BROSPITOU JEAN adjart17056811 00001428
n° 53 +++013DANLEPAN ARNAUD adjart12125911 00001536
n° 54 +++014BROTIGNAC URBAIN adjart10115511 00001536
n° 55 +++213DANLEPAN HECTOR adjart19096911 00002535
n° 56 +++214BOTIGNAC URBAIN adjart18065611 00002536
n° 57 +++248RIPRITOCHON CHARLOTTE schart30045513 00001425
n° 58 +++046LABAF JEAN schart20106713 00001627
n° 59 +++246BRALAR JEAN schart02036213 00001628
n° 60 +++030CASBONBINI MARCEL schart15036213 00001636
n° 61 +++047LAGALLE SABINE schart22065613 00001741
n° 62 +++247LAPIGALLE SABINE schart01016913 00001748
n° 63 +++031RALATOUF ETIENNE schart14026113 00001850
n° 64 +++230CASBIBINI MARCEL schart21015413 00002230
n° 65 +++249GROGOUNETINI BERTHE schart25066913 00002300
n° 66 +++049FROGONNO BERTHE schart18065613 00002308
n° 67 +++231RALITOUF ETIENNE schart20106713 00002350
n° 68 +++048CIPROUTO CHARLOTTE schart19096913 00002422
n° 69 +++239ROMMIER-DUCHATTON MARCELLIN sgtart18065615 00001200
n° 70 +++252CHOUPIGNAC THIERRY sgtart21015415 00001425
n° 71 +++253DE LA COURTACHEE JACQUES sgtart20106715 00001445
n° 72 +++138LABROUILLE ISIDORE sgtart12125915 00001623
n° 73 +++140DESSALON OLIVIA sgtart09107015 00001625
n° 74 +++238LABIDOUILLE ISIDORE sgtart19096915 00001625
n° 75 +++240LOUPALON OLIVIA sgtart17056815 00001625
n° 76 +++050CHIALOUX FLORENCE sgtart17056815 00001725
n° 77 +++250BRALOUX FLORENCE sgtart24106915 00001725
n° 78 +++251BASTISSON ALPHONSE sgtart23025715 00001800
n° 79 +++051PASTISSE ALPHONSE sgtart16046415 00001809
n° 80 +++052ROUPIGNAC THIERRY sgtart15036215 00001856
n° 81 +++237JACK JACQUES sgtart22065615 00002200
n° 82 +++137JACQUOUX JACQUES sgtart13016015 00002202

Cours de COBOL-85 Le Report Writer Chapître 12 - page 50


ESAT-DMSI page 12-51
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

n° 83 +++139SOMMIER-DUVALLON MARCELLIN sgtart10115515 00002204


n° 84 +++053DE LA CARTOUCHE JACQUES sgtart14026115 00002341
n° 85 +++237RICARDONO HUGUES colgen23025702 00001545
n° 86 +++037RICARD HUGUES colgen16046402 00001546
n° 87 +++036BRUTASSOU VIVIANE colgen17056802 00001575
n° 88 +++236ABRITASSOUNET VIVIANE colgen24106902 00001576
n° 89 +++038PERNOD CHRISTIAN colgen15036202 00001751
n° 90 +++238BERNOD CHRISTIAN colgen21015402 00001754
n° 91 +++247ROJARDINI JACQUES lclgen18065603 00001403
n° 92 +++147DEJARDIN JACQUES lclgen10115503 00001408
n° 93 +++246LE GRAND SATURNIN lclgen19096903 00001423
n° 94 +++039VISQUI DANIEL lclgen14026103 00001821
n° 95 +++239CHASKY DANIEL lclgen20106703 00001821
n° 96 +++240LAVIANDASSE DELPHINE lclgen22065603 00001902
n° 97 +++040LAVIANDE DELPHINE lclgen13016003 00001904
n° 98 +++146LE NAIN SATURNIN lclgen12125903 00002427
n° 99 +++249AWUITYCHYTONNIVICTCHMARCEL cnegen16046406 00001403
n° 100 +++149ZWUITYCHYTONNINNI MARCEL cnegen08097206 00001409
n° 101 +++248CORNINOUCHOU JEAN cnegen17056806 00001423
n° 102 +++148CORNINOULLOT JEAN cnegen09107006 00001425
n° 103 +++035AVIRY LUC cnegen18065606 00001656
n° 104 +++235VIRONY LUC cnegen25066906 00001659
n° 105 +++299BALOGALI FALILOU cnegnd15036206 00001500
n° 106 +++008PINOUFLET JEAN cnegnd19096906 00001506
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .

Cours de COBOL-85 Le Report Writer Chapître 12 - page 51


ESAT-DMSI page 12-52
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

résultat du cross esat du 20/08/97


----------------------------------------

résultat obtenu

Cours de COBOL-85 Le Report Writer Chapître 12 - page 52


ESAT-DMSI page 12-53
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
ESAT-DMSI à Rennes le 20/08/97 page 01
Av de la Touraudais
35335 Cesson-Sévigné résultats du cross-97 pour l'Artillerie
--------------------------------------------------------------------------------

+--------+
¦arme=art¦
+--------+
<==
col PORCINET MARCEL 1202
BOUCEROT JEAN 1621
POURCEROT JEAN 1623
MORCINET MARCEL 1901

temps total du grade = 6347


temps moyen pour le grade = 1586,75
<==
lcl ZYVANISEVITCHSKY JULES 1550
KZYVANISEVITCHSKYVYC LEO 2559

temps total du grade = 4109


temps moyen pour le grade = 2054,50
<==
cdt PLINDESCENS JEAN-PAUL 1428
PLINDESCENS JEAN 2422

temps total du grade = 3850


temps moyen pour le grade = 1925,00
<==
cne LABOURNY ISABELLE 1204
BARBOUZON MATHILDE 1621
BARBOUZON MATHILDE 1621
DA CONCHITA JUAN 1623
DA RIVIERA JUAN 1628
SALADURNY ISABELLE 1802
DA RODRIGO JUAN 2111
DA FERNANDEZ JUAN 2115
DE LA PENA BLANDINE 2142
DE LA CAJOUILLE BLANDINE 2144
MARCELLO CONSTANTIN 2193
BARCELLI CONSTANTIN 2199
GONZALEZ JUAN 2220
BANDALEZ JUAN 2226

temps total du grade = 26849


temps moyen pour le grade = 1917,78
<==
ltn CRIGNOT JEAN 1404
BOBINARD JEAN 1525
COPUCHON GISELE 1641
FITROCHON GISELE 1642
QUOCHONNET BENOIT 1642
FITROCHON BENOIT 1645
CRABIGNARD YVETTE 1700
CHABOUGNARD YVETTE 1707

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
cours cobol-85 cross-ESAT par arme et grade page-art-01

Cours de COBOL-85 Le Report Writer Chapître 12 - page 53


ESAT-DMSI page 12-54
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
ESAT-DMSI à Rennes le 20/08/97 page 02
Av de la Touraudais
35335 Cesson-Sévigné résultats du cross-97 pour l'Artillerie
--------------------------------------------------------------------------------

ltn ZAPTOU SANDRINE 1825


ZAPINE SANDRINE 1826
MOMEAU FERNAND 2160
MOMO FERNAND 2160
BOBARD JEAN 2229
CROCAMBOL JEAN 2300

temps total du grade = 25406


temps moyen pour le grade = 1814,71
<==
maj CHAKI REMI 1206
PIANOTTI BLAISE 1623
PELE BOLOU-BOULOU 1624
JIAKNEOTTI BLAISE 1625
PELE BOLOU-BOULOU 1625
CHICO REMI 1707
BICOCHE BERTILLE 1900
NICOCHIOU BERTILLE 1905
N'ZEZE JEAN-CHARLES 2107
N'BOULE JEAN-CHARLES 2107

temps total du grade = 17429


temps moyen pour le grade = 1742,90
<==
adc LAPINEUX FIRMIN 1325
GORRIGNAC DENIS 1406
PINEUX FIRMIN 1527
FORRIGNAC DENIS 2300

temps total du grade = 6558


temps moyen pour le grade = 1639,50
<==
adj RASPITOU JEAN 1425
BROSPITOU JEAN 1428
DANLEPAN ARNAUD 1536
BROTIGNAC URBAIN 1536
DANLEPAN HECTOR 2535
BOTIGNAC URBAIN 2536

temps total du grade = 10996


temps moyen pour le grade = 1832,66
<==
sch RIPRITOCHON CHARLOTTE 1425
LABAF JEAN 1627
BRALAR JEAN 1628
CASBONBINI MARCEL 1636
LAGALLE SABINE 1741
LAPIGALLE SABINE 1748
RALATOUF ETIENNE 1850
CASBIBINI MARCEL 2230
GROGOUNETINI BERTHE 2300
FROGONNO BERTHE 2308
RALITOUF ETIENNE 2350

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
cours cobol-85 cross-ESAT par arme et grade page-art-02

Cours de COBOL-85 Le Report Writer Chapître 12 - page 54


ESAT-DMSI page 12-55
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
ESAT-DMSI à Rennes le 20/08/97 page 03
Av de la Touraudais
35335 Cesson-Sévigné résultats du cross-97 pour l'Artillerie
--------------------------------------------------------------------------------

sch CIPROUTO CHARLOTTE 2422

temps total du grade = 23265


temps moyen pour le grade = 1938,75
<==
sgt ROMMIER-DUCHATTON MARCELLIN 1200
CHOUPIGNAC THIERRY 1425
DE LA COURTACHEE JACQUES 1445
LABROUILLE ISIDORE 1623
DESSALON OLIVIA 1625
LABIDOUILLE ISIDORE 1625
LOUPALON OLIVIA 1625
CHIALOUX FLORENCE 1725
BRALOUX FLORENCE 1725
BASTISSON ALPHONSE 1800
PASTISSE ALPHONSE 1809
ROUPIGNAC THIERRY 1856
JACK JACQUES 2200
JACQUOUX JACQUES 2202
SOMMIER-DUVALLON MARCELLIN 2204
DE LA CARTOUCHE JACQUES 2341

temps total du grade = 28430


temps moyen pour le grade = 1822,30
temps total de l'arme : art = 153239
temps moyen de l'arme = 1822,30

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
cours cobol-85 cross-ESAT par arme et grade page-art-03

Cours de COBOL-85 Le Report Writer Chapître 12 - page 55


ESAT-DMSI page 12-56
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
ESAT-DMSI à Rennes le 20/08/97 page 04
Av de la Touraudais
35335 Cesson-Sévigné résultats du cross-97 pour le Génie
--------------------------------------------------------------------------------

+--------+
¦arme=gen¦
+--------+
<==

col RICARDONO HUGUES 1545


RICARD HUGUES 1546
BRUTASSOU VIVIANE 1575
ABRITASSOUNET VIVIANE 1576
PERNOD CHRISTIAN 1751
BERNOD CHRISTIAN 1754

temps total du grade = 11292


temps moyen pour le grade = 1624,50
<==
lcl ROJARDINI JACQUES 1403
DEJARDIN JACQUES 1408
LE GRAND SATURNIN 1423
VISQUI DANIEL 1821
CHASKY DANIEL 1821
LAVIANDASSE DELPHINE 1902
LAVIANDE DELPHINE 1904
LE NAIN SATURNIN 2427

temps total du grade = 14109


temps moyen pour le grade = 1763,62
<==
cne AWUITYCHYTONNIVICTCH MARCEL 1403
ZWUITYCHYTONNINNI MARCEL 1409
CORNINOUCHOU JEAN 1423
CORNINOULLOT JEAN 1425
AVIRY LUC 1656
VIRONY LUC 1659

temps total du grade = 8975


temps moyen pour le grade = 1627,33
temps total de l'arme : gen = 34376
temps moyen de l'arme = 1627,33

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
cours cobol-85 cross-ESAT par arme et grade page-gen-01

Cours de COBOL-85 Le Report Writer Chapître 12 - page 56


ESAT-DMSI page 12-57
Cours CBL-85 CHAPÎTRE 12 : Le REPORT WRITER [ l’éditeur
d’états ]-
11/10/2009 -
11/10/2009

--------------------------------------------------------------------------------
ESAT-DMSI à Rennes le 20/08/97 page 05
Av de la Touraudais
35335 Cesson-Sévigné résultats du cross-97 pour La Gendarmerie
--------------------------------------------------------------------------------

+--------+
¦arme=gnd¦
+--------+
<==

cne BALOGALI FALILOU 1500


PINOUFLET JEAN 1506
GOLOGOLO FALILOU 1507
PINOUFLOT KARL 1508
LABURNE SERGE 2325
LABURNE EMILIE 2327

temps total du grade = 12173


temps moyen pour le grade = 1778,83
<==
ltn BOLE-CASOU EDMOND 1425
GAZOU JEAN-LOUP 1425
GAROU JEAN-LOUP 1428
BOLOU-CASE EDMOND 1429
MERCHAOUI BEN 1450
RAMED BEN 1455
MULLER AGATHE 1525
RULLER AGATHE 1528
CASANOVIEN ALICE 1550
N'BURNO JEAN 1650
N'GORE JEAN 1651
PETITFOU JACQUES 1701
GRANDFOU PIERRE 1722
ALABOUF NESTOR 1758
TABANOU DIANE 1900
CABANOU DIANE 1909
GIRADOU JEAN 1924
PICHIEN MARCEL 1925
BIRADOU JEAN 1925
PICHON MARCEL 1927
ITALABOUF NESTOR 2250
RASANOV ALICE 2252
GRANDU JACQUES 2700
GROFOU PIERRE 2725

temps total du grade = 43134


temps moyen pour le grade = 1797,25
<==
adc GIRNOT ANDRE 1620
FIRNEROT ANDRE 1625
CATIFLON JACQUES 1700
FOURI PIERRE 1700
BATIFLON JACQUES 1709
FOUMI PIERRE 1760
LABRUNASSE GILLES 2260
LABLONDE GILLES 2269

temps total du grade = 14643


temps moyen pour le grade = 1830,37

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
cours cobol-85 cross-ESAT par arme et grade page-gnd-01

.
.
.
.
etc

Cours de COBOL-85 Le Report Writer Chapître 12 - page 57

Vous aimerez peut-être aussi