IDENTIFICATION DIVISION.
PROGRAMM-ID.SAJOUTER.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FGRILLE ASSIGN TO
WORKSTATION-GPERSONNE
ORGANIZATION
TRANSACTION
CONTROL-AREA
FTOUCHES.
SELECT FPERSONNEL ASSIGN
TO DATABASE-PERSONNEL
ORGANIZATION SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD FGRILLE LABEL RECORD OMITTED.
01 EGRILLE.
COPY DDS-PERSONNE1 OF GPERSONNE.
FD FPERSONNEL LABEL RECORD STANDARD.
01 EPERSONNEL.
COPY DDS-ALL-FORMATS OF
PERSONNEL.
WORKING STORAGE SECTION.
01 FTOUCHES PIC XX.
88 F3 VALUE "03".
PROCEDURE DIVISION.
DEBUT.
OPEN I-O FGRILLE EXTEND
FPERSONNEL.
TQ.
INITIALIZE PERSONNE1.
WRITE EGRILLE FORMAT "PERSONNE1".
READ FGRILLE.
IF F3 GO TO FIN.
MOVE CORR PERSONNE1 TO
ENRPERS.
WRITE EPERSONNEL.
GO TO TQ.
FIN.
CLOSE FGRILLE FPERSONNEL.
GOBACK.
On constate que le programme pour ajouter un enregistrement est le même
que pour créer le fichier. Cependant, on a remplacé OUTPUT
par EXTEND car on veut rajouter des enregistrements, c'est à dire
étendre le fichier.
Retour au programme SAJOUTER.
Au lieu de mettre un STOP RUN, on met un GOBACK, c'est à dire un
retour en arrière car ce programme est lancé à partir
d'un programme menu en COBOL donc on retourne dans un programme COBOL.
Retour au programme SAJOUTER.
IDENTIFICATION DIVISION.
PROGRAMM-ID.SVOIR.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FGRILLE ASSIGN TO
WORKSTATION-GPERSONNE
ORGANIZATION
TRANSACTION
CONTROL-AREA
FTOUCHES.
SELECT FPERSONNEL ASSIGN
TO DATABASE-PERSONNEL
ORGANIZATION SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD FGRILLE LABEL RECORD OMITTED.
01 EGRILLE1.
COPY DDS-PERSONNE1 OF GPERSONNE.
01 EGRILLE4 REDEFINES EGRILLE1.
COPY DDS-PERSONNE4 OF GPERSONNE.
FD FPERSONNEL LABEL RECORD STANDARD.
01 EPERSONNEL.
COPY DDS-ALL-FORMATS OF
PERSONNEL.
WORKING STORAGE SECTION.
01 FTOUCHES PIC XX.
88 F3 VALUE "03".
88 F4 VALUE "04".
PROCEDURE DIVISION.
DEBUT.
OPEN I-O FGRILLE INPUT
FPERSONNEL.
TQ.
READ FPERSONNE
AT END GO TO FINFICHIER.
MOVE CORR ENRPERS TO
PERSONNE1.
WRITE EGRILLE1 FORMAT "PERSONNE1".
READ FGRILLE.
IF F3 GO TO FIN.
IF F4 GO TO TQ.
FINFICHIER.
MOVE "FIN DU FICHIER,
APPUYEZ SUR UNE TOUCHE" TO MESSA.
WRITE EGRILLE4 FORMAT "PERSONNE4".
READ FGRILLE.
IF F3 GO TO FIN.
CLOSE
FGRILLE FPERSONNEL.
GO TO DEBUT.
FIN.
CLOSE FGRILLE FPERSONNEL.
GOBACK.
Cela sert à redéfinir n'importe quelle zone. Pour le
programme, une grille d'écran est une zone de variable à
afficher. Donc en redéfinissant une grille en une autre, on peut
utiliser plusieurs grilles à la fois.
Retour au programme SVOIR.
Ici, on consulte le fichier donc on ne l'ouvre qu'en consultation.
Retour au programme SVOIR.
Tout comme pour les grilles, on peut lire un fichier afin de récupérer
les données sauvegardées. On effectue un READ...AT END...
ce qui signifie que tant qu'il n'est pas à la fin du fichier, il
continue à le lire. Une fois à la fin, on lui fait exécuter
une action.
Retour au programme SVOIR.
Pour repositionner le pointeur au début du fichier à
lire, on ferme le fichier et on le réouvre. De plus pour des raisons
pratique, ici, on a aussi fermé la grille afin de tout réouvrir
en même tant.
Retour au programme SVOIR.
IDENTIFICATION DIVISION.
PROGRAMM-ID.SMODIFIER.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FGRILLE ASSIGN TO
WORKSTATION-GPERSONNE
ORGANIZATION
TRANSACTION
CONTROL-AREA
FTOUCHES.
SELECT FPERSONNEL ASSIGN
TO DATABASE-PERSONNEL
ORGANIZATION SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD FGRILLE LABEL RECORD OMITTED.
01 EGRILLE1.
COPY DDS-PERSONNE1 OF GPERSONNE.
01 EGRILLE2 EGRILLE1.
COPY DDS-PERSONNE2 OF GPERSONNE.
FD FPERSONNEL LABEL RECORD STANDARD.
01 EPERSONNEL.
COPY DDS-ALL-FORMATS OF
PERSONNEL.
WORKING STORAGE SECTION.
01 FTOUCHES PIC XX.
88 F3 VALUE "03".
88 F4 VALUE "04".
PROCEDURE DIVISION.
DEBUT.
OPEN I-O FGRILLE I-O
FPERSONNEL.
DEB.
MOVE SPACES TO MESS.
WRITE EGRILLE2 FORMAT "PERSONNE2".
READ FGRILLE.
IF F3 GO TO FIN.
TQ.
READ FPERSONNEL AT END
GO TO NONTROUVE.
IF NEMPLOYE NOT EQUAL NOM
OF EPERSONNEL GO TO TQ.
MOVE CORR ENRPERS TO PERSONNE1.
WRITE EGRILLE1 FORMAT "PERSONNE1".
READ FGRILLE.
IF F3 GO TO FIN.
IF F4 GO TO TQ.
MOVE CORR PERSONNE1 TO
ENRPERS.
REWRITE
EPERSONNEL.
CLOSE FPERSONNEL FGRILLE.
GO TO DEBUT.
NONTROUVE.
MOVE "CET EMPLOYE
N EXISTE PAS" TO MESS.
WRITE EGRILLE2 FORMAT "PERSONNE2".
READ FGRILLE.
CLOSE FPERSONNEL FGRILLE.
GO TO DEBUT.
FIN.
CLOSE FGRILLE FPERSONNEL.
GOBACK.
Ici, on consulte et on modifie le fichier donc on ne l'ouvre pour une mise à jour
(I-O).
Retour au programme SMODIFIER.
WRITE -> écrire
REWRITE -> réécrire
On réécrit sur l'enregistrement ce qui sauvegardera les données
modifiées.
Retour au programme SMODIFIER.
IDENTIFICATION DIVISION.
PROGRAMM-ID.SMENU.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FGRILLE ASSIGN TO
WORKSTATION-GPERSONNE
ORGANIZATION
TRANSACTION
CONTROL-AREA FTOUCHES.
DATA DIVISION.
FILE SECTION.
FD FGRILLE LABEL RECORD OMITTED.
01 EGRILLE.
COPY DDS-PERSONNE3 OF GPERSONNE.
WORKING STORAGE SECTION.
01 FTOUCHES PIC XX.
88 F3 VALUE "03".
PROCEDURE DIVISION.
DEBUT.
OPEN I-O FGRILLE.
DEB.
INITIALIZE
CHOIX.
WRITE EGRILLE FORMAT
"PERSONNE3".
READ FGRILLE.
IF F3 GO TO FIN.
IF CHOIX = 1 CALL
"SAJOUTER".
IF CHOIX = 2 CALL "SMOFIFIER".
IF CHOIX = 3 CALL "SVOIR".
GO TO DEB.
FIN.
CLOSE FGRILLE.
STOP RUN.
Nous ne sommes pas obligé de réinitialiser une grille, nous
pouvons réinitialiser une zone.
Retour au programme SMENU.
Cette commande permet d'appeler un autre programme COBOL.
Retour au programme SMENU.
Le programme SAJOUT est le même que SCREER mise à part le EXTEND
qui signifie que l'on ajoute des enregistrements.
Le programme SVOIR permet de consulter la fiche d'une employé mais
il n'y a pas de saisie de nom donc on parcourt le fichier du début
à la fin jusqu'à ce qu'on ait trouvé. Un bon exercice
serait d'adapter ce programme afin de saisir le nom désiré
et d'effectuer la recherche automatique (facile!!).
Le programme SMODIFIER permet de modifier un enregistrement et le programme
SMENU de lancer tout ces programmes.
La grille d'écran PERSONNE1 contient toutes les infos du fichier
PERSONNEL. Chaque zone de donnés a le même nom et la même
taille que dans le fichier PERSONNEL sans oublier; que ces zones sont
définies en +B. La grille PERSONNE2 possède une zone NEMPLOYE
définie en +I et une zone MESS définie en +O. La grille PERSONNE3
est le menu avec une zone CHOIX définie en +I et la grille PERSONNE4
une zone MESSA définie en +O.