IDENTIFICATION DIVISION. PROGRAM-ID. CARGA-CLIENTES. REMARKS. EJEMPLO DE CREACION DE UN ARCHIVO DE CLIENTES INDEXADOS. Se desea crear un archivo en disco seg£n el siguiente dise¤o. ARCHIVO DE CLIENTES. NUMERO DE CLIENTE 5 N. RAZON SOCIAL 30 AN. DIRECCION. CALLE 30 AN. NUMERO 5 N. LOCALIDAD 30 AN. CODIGO. PROVINCIA 1 N (VALORES POSIBLES 1 A 5). ZONA DE VENTA 2 N (VALORES POSIBLES 1 A 12). VENDEDOR 2 N (VALORES POSIBLES 1 A 15). SALDO 10 N (8 ENTEROS 2 DECIMALES PUEDE TOMAR VALORES NEGATIVOS). Organizaci¢n: Indexado claves = n£mero de cliente (clave principal), raz¢n social (puede tener valores duplicados) y c¢digo (puede tener valores duplicados). Los datos se ingresar n por consola. NOTA : los campos provincia, zona de venta y vendedor se deben validar dentro de los valores establecidos. Por fin de proceso mostrar por pantalla el total de altas. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. PC. OBJECT-COMPUTER. PC. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT OPTIONAL CLIENTES ASSIGN TO RANDOM "CLIENTES.DAT" ORGANIZATION IS INDEXED ACCESS IS RANDOM RECORD KEY IS NRO-CLIENTE ALTERNATE RECORD KEY IS RAZON-SOCIAL WITH DUPLICATES ALTERNATE RECORD KEY IS CODIGO WITH DUPLICATES. DATA DIVISION. FILE SECTION. FD CLIENTES. 01 REG-CLIENTES. 03 NRO-CLIENTE. 05 NRO-CLI PIC 9(5). 03 RAZON-SOCIAL PIC X(30). 03 DIRECCION. 05 CALLE PIC X(30). 05 NRO PIC 9(5). 03 LOCALIDAD PIC X(30). 03 CODIGO. 05 PROVINCIA PIC 9. 05 ZONA-VENTA PIC 9(2). 05 VENDEDOR PIC 9(2). 03 SALDO PIC S9(8)V9(2). WORKING-STORAGE SECTION. 01 AUXILIAR. 03 AUX-NRO-CLIENTE. 05 AUX-NRO-CLI PIC 9(5). 88 EOF VALUE 99999. 03 AUX-RAZON-SOCIAL PIC X(30). 03 AUX-DIRECCION. 05 AUX-CALLE PIC X(30). 05 AUX-NRO PIC 9(5). 03 AUX-LOCALIDAD PIC X(30). 03 AUX-CODIGO. 05 AUX-PROVINCIA PIC 9. 88 PROV VALUE 1 THRU 5. 05 AUX-ZONA-VENTA PIC 9(2). 88 ZONA VALUE 1 THRU 12. 05 AUX-VENDEDOR PIC 9(2). 88 VEND VALUE 1 THRU 15. 03 AUX-SALDO PIC S9(8)V9(2). 77 TOTAL-CLI PIC 9(3). 77 OPCION PIC A. 77 SENIAL-1 PIC A VALUE "N". 77 SENIAL-2 PIC A VALUE "N". 77 SENIAL-3 PIC A VALUE "N". PROCEDURE DIVISION. COMIENZO. OPEN I-O CLIENTES. MOVE ZEROES TO TOTAL-CLI. DISPLAY " " ERASE. DISPLAY "CARGA DE ARCHIVO CLIENTES" LINE 4 POSITION 27 CONTROL "FCOLOR = RED, BCOLOR = BLUE". PERFORM UNTIL SENIAL-1 = "S" MOVE SPACES TO AUXILIAR DISPLAY "INGRESE NRO CLIENTE (FIN = 99999):" LINE 8 POSITION 5 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" DISPLAY AUX-NRO-CLI LINE 8 POSITION 40 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" ACCEPT AUX-NRO-CLI LINE 8 POSITION 40 TAB CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" END-ACCEPT IF EOF CLOSE CLIENTES PERFORM FINALIZA STOP RUN END-IF DISPLAY " " LINE 12 POSITION 10 ERASE EOL MOVE AUX-NRO-CLI TO NRO-CLIENTE READ CLIENTES INVALID KEY PERFORM ALTA NOT INVALID KEY DISPLAY " " LINE 12 POSITION 1 ERASE EOL CONTROL "FCOLOR = WHITE, BCOLOR = BLACK" DISPLAY "ERROR CLIENTE EXISTENTE" LINE 12 POSITION 12 CONTROL "FCOLOR = WHITE, BCOLOR = RED" END-READ END-PERFORM. ALTA. DISPLAY " " LINE 9 POSITION 1 ERASE EOS CONTROL "FCOLOR = WHITE, BCOLOR = BLACK". DISPLAY "RAZON SOCIAL:" LINE 10 POSITION 5 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" DISPLAY "CALLE:" LINE 11 POSITION 5 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" DISPLAY "NUMERO:" LINE 12 POSITION 5 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" DISPLAY "LOCALIDAD:" LINE 13 POSITION 5 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" DISPLAY "PROVINCIA (1 A 5):" LINE 14 POSITION 5 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" DISPLAY "ZONA DE VENTA (1 A 12):" LINE 15 POSITION 5 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" DISPLAY "VENDEDOR (1 A 15):" LINE 16 POSITION 5 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" DISPLAY "SALDO:" LINE 17 POSITION 5 CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" DISPLAY AUX-RAZON-SOCIAL LINE 10 POSITION 36 CONTROL "FCOLOR = BLACK, BCOLOR = WHITE" DISPLAY AUX-CALLE LINE 11 POSITION 36 CONTROL "FCOLOR = BLACK, BCOLOR = WHITE" DISPLAY AUX-NRO LINE 12 POSITION 36 CONTROL "FCOLOR = BLACK, BCOLOR = WHITE" DISPLAY AUX-LOCALIDAD LINE 13 POSITION 36 CONTROL "FCOLOR = BLACK, BCOLOR = WHITE" DISPLAY AUX-PROVINCIA LINE 14 POSITION 36 CONTROL "FCOLOR = BLACK, BCOLOR = WHITE" DISPLAY AUX-ZONA-VENTA LINE 15 POSITION 36 CONTROL "FCOLOR = BLACK, BCOLOR = WHITE" DISPLAY AUX-VENDEDOR LINE 16 POSITION 36 CONTROL "FCOLOR = BLACK, BCOLOR = WHITE" DISPLAY AUX-SALDO LINE 17 POSITION 36 CONTROL "FCOLOR = BLACK, BCOLOR = WHITE" MOVE "N" TO SENIAL-2 PERFORM UNTIL SENIAL-2 = "S" ACCEPT AUX-RAZON-SOCIAL LINE 10 POSITION 36 UPDATE TAB CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" END-ACCEPT ACCEPT AUX-CALLE LINE 11 POSITION 36 UPDATE TAB CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" END-ACCEPT ACCEPT AUX-NRO LINE 12 POSITION 36 UPDATE TAB CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" END-ACCEPT ACCEPT AUX-LOCALIDAD LINE 13 POSITION 36 UPDATE TAB CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" END-ACCEPT MOVE "N" TO SENIAL-3 PERFORM UNTIL SENIAL-3 = "S" ACCEPT AUX-PROVINCIA LINE 14 POSITION 36 UPDATE TAB CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" END-ACCEPT IF PROV MOVE "S" TO SENIAL-3 ELSE DISPLAY "!!! CODIGO INVALIDO !!!" LINE 20 POSITION 56 CONTROL "FCOLOR = RED, BCOLOR = GREEN" END-IF END-PERFORM DISPLAY " " LINE 20 POSITION 5 ERASE EOL CONTROL "FCOLOR = WHITE, BCOLOR = BLACK" MOVE "N" TO SENIAL-3 PERFORM UNTIL SENIAL-3 = "S" ACCEPT AUX-ZONA-VENTA LINE 15 POSITION 36 UPDATE TAB CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" END-ACCEPT IF ZONA MOVE "S" TO SENIAL-3 ELSE DISPLAY "!!! CODIGO INVALIDO !!!" LINE 20 POSITION 56 CONTROL "FCOLOR = RED, BCOLOR = GREEN" END-IF END-PERFORM DISPLAY " " LINE 20 POSITION 5 ERASE EOL CONTROL "FCOLOR = WHITE, BCOLOR = BLACK" MOVE "N" TO SENIAL-3 PERFORM UNTIL SENIAL-3 = "S" ACCEPT AUX-VENDEDOR LINE 16 POSITION 36 UPDATE TAB CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" END-ACCEPT IF VEND MOVE "S" TO SENIAL-3 ELSE DISPLAY "!!! CODIGO INVALIDO !!!" LINE 20 POSITION 56 CONTROL "FCOLOR = RED, BCOLOR = GREEN" END-IF END-PERFORM DISPLAY " " LINE 20 POSITION 5 ERASE EOL CONTROL "FCOLOR = WHITE, BCOLOR = BLACK" ACCEPT AUX-SALDO LINE 17 POSITION 36 UPDATE TAB CONTROL "FCOLOR = BLUE, BCOLOR = WHITE" END-ACCEPT MOVE "N" TO SENIAL-3 PERFORM UNTIL SENIAL-3 = "S" MOVE SPACE TO OPCION DISPLAY "[G]raba, [M]odifica o [C]ancela:" LINE 20 POSITION 10 CONTROL "FCOLOR = RED, BCOLOR = WHITE" DISPLAY OPCION LINE 20 POSITION 43 CONTROL "FCOLOR = RED, BCOLOR = WHITE" ACCEPT OPCION LINE 20 POSITION 43 TAB CONTROL "FCOLOR = RED, BCOLOR = WHITE" END-ACCEPT EVALUATE OPCION WHEN "G" WHEN "g" PERFORM GRABA MOVE "S" TO SENIAL-3 SENIAL-2 DISPLAY " " LINE 10 POSITION 5 ERASE EOS CONTROL "FCOLOR = WHITE, BCOLOR = BLACK" WHEN "M" WHEN "m" MOVE "S" TO SENIAL-3 WHEN "C" WHEN "c" MOVE "S" TO SENIAL-3 SENIAL-2 DISPLAY " " LINE 10 POSITION 5 ERASE EOS CONTROL "FCOLOR = WHITE, BCOLOR = BLACK" WHEN OTHER DISPLAY "!!! CODIGO INVALIDO !!!" LINE 21 POSITION 56 CONTROL "FCOLOR = RED, BCOLOR = GREEN" END-EVALUATE END-PERFORM DISPLAY " " LINE 20 POSITION 5 ERASE EOL CONTROL "FCOLOR = WHITE, BCOLOR = BLACK" DISPLAY " " LINE 21 POSITION 5 ERASE EOL CONTROL "FCOLOR = WHITE, BCOLOR = BLACK" END-PERFORM. GRABA. WRITE REG-CLIENTES FROM AUXILIAR. ADD 1 TO TOTAL-CLI. FINALIZA. DISPLAY " " ERASE CONTROL "FCOLOR = WHITE, BCOLOR = BLACK". DISPLAY "TOTAL DE ALTAS DADAS:" LINE 12 POSITION 10 CONTROL "FCOLOR = RED, BCOLOR = BROWN". DISPLAY TOTAL-CLI LINE 12 POSITION 32 HIGH CONTROL "FCOLOR = RED, BCOLOR = BROWN". MOVE SPACE TO OPCION. DISPLAY "Oprima una tecla para Continuar" LINE 20 POSITION 10 CONTROL "FCOLOR = WHITE, BCOLOR = RED". ACCEPT OPCION LINE 20 POSITION 43 TAB END-ACCEPT. DISPLAY " " ERASE CONTROL "FCOLOR = WHITE, BCOLOR = BLACK".