* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Lettura di un archivio LINE SEQUENTIAL * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IDENTIFICATION DIVISION. PROGRAM-ID. PROG-1. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. CONSOLE IS CRT DECIMAL-POINT IS COMMA. INPUT-OUTPUT SECTION. FILE-CONTROL. * * al nome interno ANAGRAFICA-MAG associo l'identificatore FILE-1 * a cui sarà assegnato il nome del file su disco * SELECT ANAGRAFICA-MAG ASSIGN TO FILE-1 ORGANIZATION IS LINE SEQUENTIAL ACCESS IS SEQUENTIAL LOCK MODE IS AUTOMATIC STATUS MAG-STAT. DATA DIVISION. FILE SECTION. * * descrizione della struttura dei records di ANAGRAFICA-MAG * FD ANAGRAFICA-MAG. 01 REC-MAG. 02 ARTICOLO PIC X(16). 02 ARTICOLO-FORNIT PIC X(16). 02 DESCRIZIONE PIC X(30). 02 UNITA-MISURA PIC XX. 02 GRUPPO-MERC PIC S9(3) COMP-3. 02 CODICE-IVA PIC 99. 02 SCORTA-MIN PIC S9(7) COMP-3. 02 COSTO-ULTIMO PIC S9(6)V99 COMP-3. 02 COSTO-MEDIO PIC S9(6)V99 COMP-3. 02 PREZZO-VEND PIC S9(6)V99 COMP-3 OCCURS 4. 02 ESISTENZA PIC S9(7)V99 COMP-3. 02 ORDINATO PIC S9(7)V99 COMP-3. 02 IMPEGNATO PIC S9(7)V99 COMP-3. 02 CONFEZIONE PIC 99. 02 CODICE-FORNIT PIC 9999. 02 PROG-CARICO PIC S9(7)V99 COMP-3 OCCURS 4. 02 PROG-SCARICO PIC S9(7)V99 COMP-3 OCCURS 4. 02 COSTO-VENDUTO PIC S9(7)V99 COMP-3. 02 FATTUR-NETTO PIC S9(7)V99 COMP-3. 02 ULTIMO-CARICO PIC 9(8) COMP-3. 02 ULTIMO-SCARICO PIC 9(8) COMP-3. 02 CARICO-ANNUO PIC S9(7)V99 COMP-3. 02 ESIST-INIZ PIC S9(7)V99 COMP-3. 02 ESIST-FINALE PIC S9(7)V99 COMP-3. 02 FILLER PIC X(22). * WORKING-STORAGE SECTION. * * campi per la gestione FILE-STATUS * 01 MAG-STAT PIC XX. 01 VIDEO-1. 02 VIDEO-2 PIC X(12). 01 INDICE PIC 99. 01 FILE-STAT. 02 S1 PIC X. 02 S2 PIC X. 01 STAT-BIN REDEFINES FILE-STAT PIC 9(4) COMP. 01 DISPLAY-STAT. 02 S1-VID PIC X. 02 FILLER PIC X(3). 02 S2-VID PIC 9(4). * * campi contenenti i nomi dei file correnti * la tabella viene ridefinita per indicizzare * la posizione del nome-file * 01 TAB-FILE. 02 FILE-01 PIC X(12) VALUE "MAGAZZ.LSQ ". 02 FILE-02 PIC X(12) VALUE " ". 02 FILE-03 PIC X(12) VALUE " ". 02 FILE-04 PIC X(12) VALUE " ". 02 FILE-05 PIC X(12) VALUE " ". 01 TAB-FIL REDEFINES TAB-FILE. 02 FIL PIC X(12) OCCURS 5. * 01 IN-KEY PIC X. PROCEDURE DIVISION. INIZIO. MOVE FILE-01 TO FILE-1. PERFORM SET-COLOR THRU TITOLO. APERTURA-FILE. OPEN INPUT ANAGRAFICA-MAG. MOVE MAG-STAT TO FILE-STAT. IF S1 NOT = ZERO MOVE 1 TO INDICE PERFORM STATUS-TEST THRU EX-STATUS-TEST. CICLO-LETTURA. READ ANAGRAFICA-MAG AT END GO TO CHIUSURA-FILE. * * qui vanno messe le istruzioni per le operazioni * da eseguire (ricerca/stampa/ecc.) * GO TO CICLO-LETTURA. CHIUSURA-FILE. CLOSE ANAGRAFICA-MAG. FINE-PROG. DISPLAY SPACE. STOP RUN. * * * * Routines * * * * pulisce il video e setta il colore del testo e del fondo * SET-COLOR. DISPLAY SPACE WITH BACKGROUND-COLOR 7 FOREGROUND-COLOR 8. TITOLO. DISPLAY " L E T T U R A D I U N F I L E L I N E S E - " Q U E N T I A L " AT 0108 WITH FOREGROUND-COLOR 9 BACKGROUND-COLOR 7 REVERSE-VIDEO. * * * * * inizio STATUS-TEST * * * * STATUS-TEST. MOVE FIL(INDICE) TO VIDEO-1. DISPLAY "Errore sul File" AT 2303 WITH FOREGROUND-COLOR 4. DISPLAY VIDEO-2 AT 2319 WITH FOREGROUND-COLOR 2. IF S1 = 1 DISPLAY "Fine File" AT 2334 WITH FOREGROUND-COLOR 4 GO TO EX-STAT. IF S1 = 2 DISPLAY "Chiave del record non valida" AT 2334 WITH FOREGROUND-COLOR 4 GO TO EX-STAT. IF S1 = 9 PERFORM TROVA-ERRORE THRU FINE-ERRORE. MOVE S1 TO S1-VID. MOVE LOW-VALUES TO S1. MOVE STAT-BIN TO S2-VID. DISPLAY "Tipo" AT 2403 WITH FOREGROUND-COLOR 4. DISPLAY S2-VID AT 2408 WITH FOREGROUND-COLOR 4. EX-STAT. DISPLAY "Premi un tasto per continuare " AT 2436. ACCEPT IN-KEY WITH AUTO-SKIP. STOP RUN. EX-STATUS-TEST. EXIT. * * * * * fine STATUS-TEST * * * * TROVA-ERRORE. MOVE LOW-VALUES TO S1. MOVE STAT-BIN TO S2-VID. IF S2-VID = 13 DISPLAY "File inesistente" AT 2413 WITH FOREGROUND-COLOR 4. IF S2-VID = 65 DISPLAY "File non disponibile" AT 2413 WITH FOREGROUND-COLOR 4. IF S2-VID = 68 DISPLAY "Record non disponibile" AT 2413 WITH FOREGROUND-COLOR 4. FINE-ERRORE. EXIT. ************************************************************* |