Ver Mensaje Individual
  #3
Antiguo 20 de marzo de 2023, 17:33
jorgeamedina2020
Forero Junior
Última Actividad 21.04.2026 20:06
Posts Posts: 24
Likes enviados Enviados: 50
Likes recibidos Recibidos: 4

@Josber, Hola, gracias por tu respuesta sincera, primero no me parece que mi escritura sea (una marrana), segundo son mis programas y nadie debería verlos o acceder mas que yo porque son de mi propiedad intelectual y tercero con respecto a las normas... porque mi compilador me lo permite hacer?, buena pregunta verdad!!!,
Este ejemplo que te comparto lo hice hace varios años atrás, y justo ahora salio una modificación y se hizo al toque sin demorar nada, por que?, por conozco mis programas como los hice, asi de facir.
Mira esto:

Código COBOL:
  1.        ENVIRONMENT DIVISION.
  2.        CONFIGURATION SECTION.
  3.        SOURCE-COMPUTER. PC-IBM.
  4.        OBJECT-COMPUTER. PC-IBM.
  5.        INPUT-OUTPUT SECTION.
  6.        FILE-CONTROL.
  7.            COPY EMPRESA.SEL.  COPY MOVDEU.SEL.   COPY CODICOMP.SEL.
  8.            COPY VENDEDOR.SEL. COPY CONDVTAS.SEL. COPY LOCALIDA.SEL.
  9.            COPY PROVIN.SEL. COPY ZONAS.SEL.    COPY CLIENTES.SEL.
  10.            COPY PROVEDOR.SEL. COPY MARCAS.SEL.   COPY RUBROS.SEL.
  11.            COPY ARTICULO.SEL. COPY TRANSPOR.SEL.
  12.            COPY PROVCOMI.SEL. COPY RUBRCOMI.SEL.
  13.        SELECT AAAA ASSIGN TO DISK
  14.               ORGANIZATION IS INDEXED
  15.               ACCESS MODE  IS DYNAMIC
  16.               RECORD KEY   IS AA-CLAVE = AA-CODI
  17.                                          AA-ORDE
  18.               ALTERNATE RECORD KEY IS AA-CLAVE1 = AA-DESC
  19.                                                   AA-CODI
  20.                                                   AA-ORDE
  21.                                                   WITH DUPLICATES
  22.               ALTERNATE RECORD KEY IS AA-CLAVE2 = AA-CANT
  23.                                                   AA-CODI
  24.                                                   AA-ORDE
  25.                                                   WITH DUPLICATES
  26.               ALTERNATE RECORD KEY IS AA-CLAVE3 = AA-IMPO
  27.                                                   AA-CODI
  28.                                                   AA-ORDE
  29.                                                   WITH DUPLICATES
  30.               FILE STATUS IS FF.
  31.        SELECT BBBB ASSIGN TO DISK
  32.               ORGANIZATION IS INDEXED
  33.               ACCESS MODE  IS DYNAMIC
  34.               RECORD KEY   IS BB-CLAVE = BB-CODI
  35.                                          BB-CODI2
  36.               ALTERNATE RECORD KEY IS BB-CLAVE1 = BB-DESC
  37.                                                   BB-CODI
  38.                                                   BB-DESC2
  39.                                                   BB-CODI2
  40.                                                   WITH DUPLICATES
  41.               ALTERNATE RECORD KEY IS BB-CLAVE2 = BB-CODI
  42.                                                   BB-CANT2
  43.                                                   BB-CODI2
  44.                                                   WITH DUPLICATES
  45.               ALTERNATE RECORD KEY IS BB-CLAVE3 = BB-CODI
  46.                                                   BB-IMPO2
  47.                                                   BB-CODI2
  48.                                                   WITH DUPLICATES
  49.               FILE STATUS IS FF.
  50.        SELECT CCCC ASSIGN TO DISK
  51.               ORGANIZATION IS INDEXED
  52.               ACCESS MODE  IS DYNAMIC
  53.               RECORD KEY   IS CC-CLAVE = CC-CODI
  54.                                          CC-ORDE
  55.               FILE STATUS IS FF.
  56.        SELECT TXT1 ASSIGN TO DISK
  57.               ORGANIZATION IS LINE SEQUENTIAL
  58.               ACCESS MODE  IS SEQUENTIAL
  59.               FILE STATUS IS FF.
  60.        SELECT TXT2 ASSIGN TO DISK
  61.               ORGANIZATION IS LINE SEQUENTIAL
  62.               ACCESS MODE  IS SEQUENTIAL
  63.               FILE STATUS IS FF.
  64.        SELECT IMPRES   ASSIGN TO "C:TEMPESTAVTAS"
  65.               FILE STATUS  IS FF.
  66.            COPY MOVOBA00.SEL.
  67.            COPY MOVOBA02.SEL.
  68.      *±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
  69.        DATA DIVISION.
  70.        FILE SECTION.
  71.            COPY EMPRESA.REC.  COPY MOVDEU.REC.   COPY CODICOMP.REC.
  72.            COPY VENDEDOR.REC. COPY CONDVTAS.REC. COPY LOCALIDA.REC.
  73.            COPY PROVIN.REC. COPY ZONAS.REC.    COPY CLIENTES.REC.
  74.            COPY PROVEDOR.REC. COPY MARCAS.REC.   COPY RUBROS.REC.
  75.            COPY ARTICULO.REC. COPY TRANSPOR.REC.
  76.            COPY PROVCOMI.REC. COPY RUBRCOMI.REC.
  77.        FD AAAA
  78.           LABEL RECORD IS STANDARD
  79.           VALUE OF FILE-ID IS "C:TEMPAAAA.DAT".
  80.        01 R-AAAA.
  81.           02 AA-ORDE    PIC 9(01).
  82.           02 AA-CODI    PIC X(14).
  83.           02 AA-DESC    PIC X(50).
  84.           02 AA-CANT    PIC S9(05)V999.
  85.           02 AA-IMPO    PIC S9(10)V99.
  86.           02 AA-COST    PIC S9(10)V99.
  87.  opci     02 AA-PCOM    PIC 9(03)V99.
  88.  opci     02 AA-ICOM    PIC S9(10)V99.
  89.           02 AA-COST-SF PIC S9(10)V99.
  90.        FD BBBB
  91.           LABEL RECORD IS STANDARD
  92.           VALUE OF FILE-ID IS "C:TEMPBBBB.DAT".
  93.        01 R-BBBB.
  94.           02 BB-CODI    PIC X(14).
  95.           02 BB-DESC    PIC X(50).
  96.           02 BB-CANT    PIC S9(05)V999.
  97.           02 BB-IMPO    PIC S9(10)V99.
  98.           02 BB-COST    PIC S9(10)V99.
  99.  opci     02 BB-PCOM    PIC 9(03)V99.
  100.  opci     02 BB-ICOM    PIC S9(10)V99.
  101.           02 BB-CODI2   PIC X(14).
  102.           02 BB-DESC2   PIC X(50).
  103.           02 BB-CANT2   PIC S9(05)V999.
  104.           02 BB-IMPO2   PIC S9(10)V99.
  105.           02 BB-COST2   PIC S9(10)V99.
  106.  opci     02 BB-PCOM2   PIC 9(03)V99.
  107.  opci     02 BB-ICOM2   PIC S9(10)V99.
  108.           02 BB-COST-SF PIC S9(10)V99.
  109.           02 BB-COST2-SF PIC S9(10)V99.
  110.        FD CCCC
  111.           LABEL RECORD IS STANDARD
  112.           VALUE OF FILE-ID IS "C:TEMPCCCC.DAT".
  113.        01 R-CCCC.
  114.           02 CC-ORDE    PIC 9(01).
  115.           02 CC-CODI    PIC X(14).
  116.           02 CC-DESC    PIC X(50).
  117.           02 CC-CANT    PIC S9(05)V999.
  118.           02 CC-IMPO    PIC S9(10)V99.
  119.        FD TXT1
  120.           LABEL RECORD IS STANDARD
  121.           VALUE OF FILE-ID IS "C:TEMPESTAVTAS".
  122.        01 R-TXT1.
  123.           02 X1-LONG PIC X(159).
  124.        FD TXT2
  125.           LABEL RECORD IS STANDARD
  126.           VALUE OF FILE-ID IS "C:TEMPESTAVTAS.XLS".
  127.        01 R-TXT2.
  128.           02 X2-LONG.
  129.      *      03 X2-01    PIC X.
  130.      *      03 X2-ORDE  PIC X(04).
  131.      *      03 X2-02    PIC X.
  132.      *      03 X2-CODI  PIC X(14).
  133.      *      03 X2-03    PIC X.
  134.      *      03 X2-DESC  PIC X(50).
  135.      *      03 X2-04    PIC X.
  136.      *      03 FILLER   PIC X(31).
  137.      *      03 X2-05    PIC X.
  138.      *      03 X2-COST  PIC 999,999,999.99-.
  139.      *      03 X2-06    PIC X.
  140.      *      03 X2-CANT  PIC 99999-.
  141.      *      03 X2-07    PIC X.
  142.      *      03 X2-IMPO  PIC 999,999,999.99-.
  143.      *      03 X2-08    PIC X.
  144.      *      03 X2-PORC  PIC 999.99-.
  145.      *      03 X2-09    PIC X.
  146.      *      03 FILLER   PIC X(10).
  147.  
  148.              03 X2-ORDE  PIC X(04).
  149.              03 X2-01    PIC X.
  150.              03 X2-CODI  PIC X(14).
  151.              03 X2-02    PIC X.
  152.              03 X2-DESC  PIC X(50).
  153.              03 X2-03    PIC X.
  154.              03 FILLER   PIC X(08).
  155.              03 X2-04    PIC X.
  156.  opci        03 X2-PCOM  PIC 999.99.
  157.              03 X2-05    PIC X.
  158.  opci        03 X2-ICOM  PIC 999,999,999.99-.
  159.              03 X2-06    PIC X.
  160.              03 X2-COST  PIC 999,999,999.99-.
  161.              03 X2-07    PIC X.
  162.              03 X2-CANT  PIC 99999-.
  163.              03 X2-08    PIC X.
  164.              03 X2-IMPO  PIC 999,999,999.99-.
  165.              03 X2-09    PIC X.
  166.              03 X2-PORC  PIC 999.99-.
  167.              03 X2-10    PIC X.
  168.              03 FILLER   PIC X(10).
  169.        FD IMPRES
  170.           LABEL RECORD IS OMITTED
  171.           LINAGE       IS 66 LINES.
  172.        01 R-IMPRES     PIC X(159).
  173. *ESPE* VERTICAL...
  174. *ESPE*  63 lineas -  79 columnas -  80 comando
  175. *ESPE*  77 lineas -  95 columnas -  96 comando
  176. *ESPE*  96 lineas - 129 columnas - 120 comando
  177. *ESPE* 110 lineas - 136 columnas - 140 comando
  178. *ESPE* 129 lineas - 159 columnas - 160 comando
  179. *ESPE* HORIZONTAL...
  180. *ESPE*  68 lineas - 159 columnas - 120 comando
  181. *ESPE*  00 lineas - 000 columnas - 140 comando
  182. *ESPE*  86 lineas - 225 columnas - 160 comando
  183.            COPY MOVOBA00.REC.
  184.            COPY MOVOBA02.REC.
  185.        WORKING-STORAGE SECTION.
  186. Status 01 FF PIC XX.
  187.  "      88 FF-POS VALUE "00" "02" "10" "22" "23" "9A" "9D".
  188. "      88 FF-OK  VALUE "00" "02". 88 FF-FIN VALUE "10".
  189.  "      88 FF-DUP VALUE "22". 88 FF-INE VALUE "23".
  190. "      88 FF-ALU VALUE "9A". 88 FF-RLU VALUE "9D".
  191.  "     01 M-ARC PIC X(08). 01 M-ERR PIC X(30).
  192. Teclas 01 TEC PIC XX.
  193. "      88 T-POS VALUE "00" "01" "02" "05" "53" "54".
  194.  "      88 T-RET VALUE "00". 88 T-ESC VALUE "01". 88 T-F1 VALUE "02".
  195. "      88 T-ARR VALUE "53". 88 T-ABA VALUE "54". 88 T-F4 VALUE "05".
  196. FunTec 01 Z-CAR PIC 9(2) COMP-X.
  197.  "     01 Z-STA.
  198. "      02 Z-STA1 PIC X.
  199.  "      02 Z-STA2 PIC 9(2) COMP-X.
  200. "      02 Z-STA3 PIC 9(2) COMP-X.
  201. |      01 Z-FUN PIC 9(02) COMP-X. 01 Z-PAR. 03 Z-LON PIC 9(04) COMP-X.
  202. |       03 Z-POS PIC 9(04) COMP-X. 03 Z-BAF PIC 9(04) COMP-X.
  203. |      01 Z-CARA  PIC X(2000). 01 Z-ATRI  PIC X(2000).
  204. |      01 Z-CARA1 PIC X(2000). 01 Z-ATRI1 PIC X(2000).
  205.        01 A-FECHA. 03 A-DIA PIC 99. 03 A-MES PIC 99. 03 A-ANO PIC 9999.
  206.        01 A-FECHAX REDEFINES A-FECHA PIC 9(08).
  207.        01 W-FECHA. 03 W-ANO PIC 9999. 03 W-MES PIC 99. 03 W-DIA PIC 99.
  208.        01 W-FECHAX REDEFINES W-FECHA PIC 9(08).
  209.        01 Z-FECHA. 03 Z-ANO PIC 99. 03 Z-MES PIC 99. 03 Z-DIA PIC 99.
  210.        01 FEC PIC 9(8). 01 FEC1 PIC 9(8). 01 FEC2 PIC 9(8).
  211.        01 HOR. 03 HOR1 PIC 99. 03 HOR2 PIC 99. 03 HOR3 PIC 99.
  212.        01 HORX REDEFINES HOR PIC 9(06).
  213.        01 X PIC 9(1). 01 X1 PIC 9(1). 01 X2 PIC 9(1). 01 X3 PIC 9(1).
  214.        01 OPC PIC 9(2). 01 MENS1 PIC X(12). 01 MENS2 PIC X(12).
  215. N4     01 D-CODI  PIC X(14). 01 H-CODI  PIC X(14). 01 MENS3 PIC X(12).
  216. N4     01 D-CODI1 PIC 9(04). 01 H-CODI1 PIC 9(04). 01 COIM PIC 9(4).
  217. N6     01 D-CODI2 PIC 9(06). 01 H-CODI2 PIC 9(06). 01 FEIM PIC 9(8).
  218. A14    01 D-CODI3 PIC X(14). 01 H-CODI3 PIC X(14). 01 ESTA PIC 9.
  219.        01 D-FECH  PIC 9(08). 01 H-FECH  PIC 9(08). 01 COMI PIC 9.
  220.        01 D-FECH1 PIC 9(08). 01 H-FECH1 PIC 9(08). 01 TODO PIC X.
  221.        01 ORDE PIC 9. 01 MODO PIC 9. 01 VIST PIC 9. 01 BAN PIC 9.
  222.        01 D-FE PIC 9(8). 01 H-FE PIC 9(8). 01 XORD PIC 9. 01 BAN2 PIC 9.
  223.        01 EMP PIC X(30). 01 DOM PIC X(30). 01 XORDX PIC 9.
  224.        01 SEN PIC 9. 01 PAG PIC 9(4). 01 MEMOCL PIC X(100).
  225.        01 CORT PIC X(14). 01 CORTX PIC X(50). 01 COSF PIC 9.
  226.        01 SINO PIC X(01). 88 POSI VALUE "S" "s" "N" "n".
  227.         88 SISI VALUE "S" "s".  88 NONO VALUE "N" "n".
  228.        01 ZZ-RES PIC 9(02) COMP-X. 01 ZZ-FUN PIC 9(02) COMP-X VALUE 35.
  229.        01 ZZ-PAR. 03 ZZ-PAR1 PIC 9(02) COMP-X VALUE 0. 03 ZZ-PAR2 PIC X.
  230.  
  231. MesAct 01 TOT-CANT   PIC S9(06)V999. 01 TOT-IMPO  PIC S9(10)V99 .
  232.                                      01 TOT-COST  PIC S9(10)V99 .
  233.                                      01 TOT-ICOM  PIC S9(10)V99 .
  234.                                      01 TOT-COST-SF  PIC S9(10)V99 .
  235. MesAnt 01 TOT-CANTT  PIC S9(06)V999. 01 TOT-IMPOO PIC S9(10)V99 .
  236.                                      01 TOT-COSTT PIC S9(10)V99 .
  237.                                      01 TOT-ICOMM PIC S9(10)V99 .
  238.                                      01 TOT-COSTT-SF PIC S9(10)V99 .
  239. MesAct 01 TOT1-CANT  PIC S9(06)V999. 01 TOT1-IMPO  PIC S9(10)V99.
  240.                                      01 TOT1-COST  PIC S9(10)V99.
  241.                                      01 TOT1-ICOM  PIC S9(10)V99.
  242.                                      01 TOT1-COST-SF  PIC S9(10)V99.
  243. MesAnt 01 TOT1-CANTT PIC S9(06)V999. 01 TOT1-IMPOO PIC S9(10)V99.
  244.                                      01 TOT1-COSTT PIC S9(10)V99.
  245.                                      01 TOT1-ICOMM PIC S9(10)V99.
  246.                                      01 TOT1-COSTT-SF PIC S9(10)V99.
  247. MesAct 01 TOT2-CANT  PIC S9(06)V999. 01 TOT2-IMPO  PIC S9(10)V99.
  248.                                      01 TOT2-COST  PIC S9(10)V99.
  249.                                      01 TOT2-ICOM  PIC S9(10)V99.
  250.                                      01 TOT2-COST-SF  PIC S9(10)V99.
  251. MesAnt 01 TOT2-CANTT PIC S9(06)V999. 01 TOT2-IMPOO PIC S9(10)V99.
  252.                                      01 TOT2-COSTT PIC S9(10)V99.
  253.                                      01 TOT2-ICOMM PIC S9(10)V99.
  254.                                      01 TOT2-COSTT-SF PIC S9(10)V99.
  255.        01 CANITE PIC 9(6). 01 CANITET PIC 9(6).
  256.        01 AUX  PIC S9(10)V99. 01 AUX1 PIC S9(10)V99.
  257.        01 AUX2 PIC S9(10)V99. 01 AUX3 PIC S9(10)V99.
  258.        01 AUX4 PIC S9(10)V99. 01 AUX5 PIC S9(10)V99.
  259.        01 COM1 PIC 9(3)V99. 01 COM2 PIC 9(3)V99. 01 COM3 PIC 9(3)V99.
  260.        01 PCLI PIC 9(4). 01 ZCLI PIC ZZZ9. 01 PORC PIC S9(3)V99.
  261.        01 PPED PIC 9(4). 01 ZPED PIC ZZZ9.
  262.        01 PCAM PIC 9(3)V99. 01 ZCAM PIC ZZ9.99.
  263.        01 PREI PIC 9(3)V99. 01 ZREI PIC ZZ9.99.
  264.  
  265.        01 G1-IMPO PIC S9(10)V99. 01 G1-IMPOO PIC S9(10)V99.
  266.        01 G2-IMPO PIC S9(10)V99. 01 G2-IMPOO PIC S9(10)V99.
  267.        01 G3-IMPO PIC S9(10)V99. 01 G3-IMPOO PIC S9(10)V99.
  268.  
  269.        01 Z1-IMPO PIC S9(10)V99. 01 Z1-IMPOO PIC S9(10)V99.
  270.        01 Z2-IMPO PIC S9(10)V99. 01 Z3-IMPO PIC S9(10)V99.
  271.        01 OBRA PIC 9. 01 OBRA2 PIC 9.
  272.        01 X-VEND PIC 9(4). 01 X-VENDX PIC X(30). 01 X-VENDZ PIC 9(3)V99.
  273.        01 X-COND PIC 9(04). 01 X-CONDX PIC X(30).
  274.        01 X-LOCA PIC 9(06). 01 X-LOCAX PIC X(30).
  275.        01 X-PCIA PIC 9(04). 01 X-PCIAX PIC X(30).
  276.        01 X-ZONA PIC 9(04). 01 X-ZONAX PIC X(30).
  277.        01 X-CLIE PIC 9(04). 01 X-CLIEX PIC X(30).
  278.        01 X-PROV PIC 9(04). 01 X-PROVX PIC X(30).
  279.        01 X-MARC PIC 9(04). 01 X-MARCX PIC X(30).
  280.        01 X-RUBR PIC 9(04). 01 X-RUBRX PIC X(30).
  281.        01 X-ARTI PIC X(14). 01 X-ARTIX PIC X(30).
  282.        01 X-CANT PIC 9(05)V999. 01 X-IMPO PIC 9(10)V99.
  283.        01 X-TIVA PIC 9(03)V99. 01 X-COST PIC 9(10)V99.
  284.  
  285.        INI.
  286.            OPEN INPUT EMPRESA . MOVE "EMPRESA " TO M-ARC.
  287.            IF NOT FF-OK PERFORM VER-ERR GO FIN.
  288.            MOVE EM TO E-CLAVE. READ EMPRESA .
  289.            IF NOT FF-OK PERFORM VER-ERR CLOSE EMPRESA  GO FIN.
  290.            MOVE E-RAZON  TO EMP. MOVE E-DOMICI TO DOM.
  291.            MOVE E-FECHA  TO FEC A-FECHA.
  292.            MOVE A-DIA TO W-DIA. MOVE A-MES TO W-MES.
  293.            MOVE A-ANO TO W-ANO. MOVE W-FECHAX TO FEC1.
  294.            CLOSE EMPRESA .
  295.            MOVE 01 TO OPC.
  296. Opci   INA.
  297.            MOVE 99 TO TEC. DISPLAY P-OPC.
  298.            IF OPC = 01 DISPLAY P-OPC01. IF OPC = 02 DISPLAY P-OPC02.
  299.            IF OPC = 03 DISPLAY P-OPC03. IF OPC = 04 DISPLAY P-OPC04.
  300.            IF OPC = 05 DISPLAY P-OPC05. IF OPC = 06 DISPLAY P-OPC06.
  301.            IF OPC = 07 DISPLAY P-OPC07. IF OPC = 08 DISPLAY P-OPC08.
  302.            IF OPC = 09 DISPLAY P-OPC09. IF OPC = 10 DISPLAY P-OPC10.
  303.            PERFORM LEO-TEC UNTIL T-POS. IF T-ESC GO FIN.
  304.            IF T-ABA IF OPC = 10 GO INA ELSE ADD      1 TO   OPC GO INA.
  305.            IF T-ARR IF OPC = 01 GO INA ELSE SUBTRACT 1 FROM OPC GO INA.
  306.            IF NOT T-RET GO INA.
  307.  
  308.            MOVE SPACES TO D-CODI  H-CODI .
  309.            MOVE ZEROS  TO D-CODI1 H-CODI1.
  310. adic       MOVE ZEROS  TO D-CODI2 H-CODI2.
  311. adic       MOVE SPACES TO D-CODI3 H-CODI3.
  312.            MOVE FEC    TO D-FECH  H-FECH .
  313.            MOVE ZEROS  TO D-FECH1 H-FECH1. MOVE SPACES TO TODO.
  314.            MOVE 0 TO ORDE MODO COSF VIST X COMI OBRA OBRA2.
  315.        INA0.
  316.            PERFORM 0S.
  317.            MOVE "Articulos   " TO MENS1.
  318. Codi   INA1.
  319.            MOVE ZEROS TO TEC. DISPLAY P-CODI . ACCEPT  P-CODI .
  320.            ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC PERFORM 0N GO INA.
  321.            IF T-F1
  322.               CALL   "AYUDARTI" USING ENLACE, D-CODI
  323.               CANCEL "AYUDARTI" MOVE ZEROS TO TEC
  324.               MOVE D-CODI  TO H-CODI  GO INA1.
  325.            IF NOT T-RET GO INA1.
  326.            IF D-CODI = SPACES
  327.               IF H-CODI = SPACES
  328.                  MOVE "*             " TO D-CODI
  329.                  MOVE "ZZZZZZZZZZZZZZ" TO H-CODI .
  330.            IF H-CODI = SPACES
  331.               MOVE "ZZZZZZZZZZZZZZ" TO H-CODI .
  332.            DISPLAY P-CODI .
  333.            IF OPC = 01 GO INA4.
  334.  
  335.            IF OPC = 02 MOVE "Vendedores  " TO MENS2.
  336.            IF OPC = 03 MOVE "Condiciones " TO MENS2.
  337.            IF OPC = 04 MOVE "Localidades " TO MENS2.
  338.            IF OPC = 05 MOVE "Provincias  " TO MENS2.
  339.            IF OPC = 06 MOVE "Zonas       " TO MENS2.
  340.            IF OPC = 07 MOVE "Clientes    " TO MENS2.
  341.            IF OPC = 08 MOVE "Proveedores " TO MENS2.
  342.            IF OPC = 09 MOVE "Marcas      " TO MENS2.
  343.            IF OPC = 10 MOVE "Rubros      " TO MENS2.
  344. Codi1  INA2.
  345.            MOVE ZEROS TO TEC.
  346.            IF OPC = 02 OR = 03 OR = 05 OR = 06 OR = 07 OR = 08 OR = 09
  347.                OR = 10
  348.               DISPLAY P-CODI1 ACCEPT  P-CODI1.
  349.            IF OPC = 04
  350.               DISPLAY P-CODI2 ACCEPT  P-CODI2.
  351.            ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA1.
  352.            IF T-F1
  353.               IF OPC = 02
  354.                  CALL   "AYUDVEND" USING D-CODI1
  355.                  CANCEL "AYUDVEND" MOVE ZEROS TO TEC
  356.                  MOVE D-CODI1 TO H-CODI1
  357.               END-IF
  358.               IF OPC = 03
  359. especi           CALL   "AYUDCOND" USING D-CODI1
  360.                  CANCEL "AYUDLOCA" MOVE ZEROS TO TEC
  361.                  MOVE D-CODI1 TO H-CODI1
  362.               END-IF
  363.               IF OPC = 04
  364.                  CALL   "AYUDLOCA" USING EM, D-CODI2
  365.                  CANCEL "AYUDPCIA" MOVE ZEROS TO TEC
  366.                  MOVE D-CODI2 TO H-CODI2
  367.               END-IF
  368.               IF OPC = 05
  369.                  CALL   "AYUDPCIA" USING D-CODI1
  370.                  CANCEL "AYUDPCIA" MOVE ZEROS TO TEC
  371.                  MOVE D-CODI1 TO H-CODI1
  372.               END-IF
  373.               IF OPC = 06
  374.                  CALL   "AYUDZONA" USING D-CODI1
  375.                  CANCEL "AYUDZONA" MOVE ZEROS TO TEC
  376.                  MOVE D-CODI1 TO H-CODI1
  377.               END-IF
  378.               IF OPC = 07
  379.                  CALL   "AYUDCLIE" USING D-CODI1
  380.                  CANCEL "AYUDCLIE" MOVE ZEROS TO TEC
  381.                  MOVE D-CODI1 TO H-CODI1
  382.               END-IF
  383.               IF OPC = 08
  384.                  CALL   "AYUDPROV" USING D-CODI1
  385.                  CANCEL "AYUDPROV" MOVE ZEROS TO TEC
  386.                  MOVE D-CODI1 TO H-CODI1
  387.               END-IF
  388.               IF OPC = 09
  389.                  CALL   "AYUDMARC" USING D-CODI1
  390.                  CANCEL "AYUDMARC" MOVE ZEROS TO TEC
  391.                  MOVE D-CODI1 TO H-CODI1
  392.               END-IF
  393.               IF OPC = 10
  394. especi           CALL   "AYUDRUBR" USING D-CODI1
  395.                  CANCEL "AYUDRUBR" MOVE ZEROS TO TEC
  396.                  MOVE D-CODI1 TO H-CODI1
  397.               END-IF
  398.               GO INA2.
  399.            IF NOT T-RET GO INA2.
  400.            IF OPC = 02 OR = 03 OR = 05 OR = 06 OR = 07 OR = 08 OR = 09
  401.                OR = 10
  402.               IF D-CODI1 = ZEROS
  403.                  IF H-CODI1 = ZEROS
  404.                     MOVE 0001 TO D-CODI1
  405.                     MOVE 9999 TO H-CODI1
  406.                  END-IF
  407.                  IF H-CODI1 = ZEROS
  408.                     MOVE "9999" TO H-CODI1
  409.                  END-IF
  410.               END-IF
  411.               DISPLAY P-CODI1.
  412.            IF OPC = 04
  413.               IF D-CODI2 = ZEROS
  414.                  IF H-CODI2 = ZEROS
  415.                     MOVE 000000   TO D-CODI2
  416.                     MOVE 999999   TO H-CODI2
  417.                  END-IF
  418.                  IF H-CODI2 = ZEROS
  419.                     MOVE 999999   TO H-CODI2
  420.                  END-IF
  421.               END-IF
  422.               DISPLAY P-CODI2.
  423.        INA3.
  424.  
  425. Fech   INA4.
  426.            MOVE ZEROS TO TEC. DISPLAY P-FECH . ACCEPT  P-FECH .
  427.            ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA2.
  428.            IF NOT T-RET GO INA4.
  429.            MOVE D-FECH  TO A-FECHA.
  430.            IF A-DIA > 31 OR = ZEROS GO INA4.
  431.            IF A-MES > 12 OR = ZEROS GO INA4.
  432.            IF A-ANO < 1980 OR = ZEROS GO INA4.
  433.            MOVE H-FECH  TO A-FECHA.
  434.            IF A-DIA > 31 OR = ZEROS GO INA4.
  435.            IF A-MES > 12 OR = ZEROS GO INA4.
  436.            IF A-ANO < 1980 OR = ZEROS GO INA4.
  437.            DISPLAY P-FECH .
  438.            IF OPC NOT = 01
  439.               PERFORM 1S
  440.               GO INA6.
  441. Fech1  INA5.
  442.            MOVE ZEROS TO TEC. DISPLAY P-FECH1. ACCEPT  P-FECH1.
  443.            ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA4.
  444.            IF NOT T-RET GO INA5.
  445.            IF D-FECH1 NOT = ZEROS
  446.               MOVE D-FECH1 TO A-FECHA
  447.               IF A-DIA > 31 OR = ZEROS GO INA5 END-IF
  448.               IF A-MES > 12 OR = ZEROS GO INA5 END-IF
  449.               IF A-ANO < 1980 OR = ZEROS GO INA5 END-IF.
  450.            IF H-FECH1 NOT = ZEROS
  451.               MOVE H-FECH1 TO A-FECHA
  452.               IF A-DIA > 31 OR = ZEROS GO INA5 END-IF
  453.               IF A-MES > 12 OR = ZEROS GO INA5 END-IF
  454.               IF A-ANO < 1980 OR = ZEROS GO INA5 END-IF.
  455.            DISPLAY P-FECH1.
  456.            PERFORM 1S.
  457. Orde   INA6.
  458.            MOVE ZEROS TO TEC. DISPLAY P-ORDE. ACCEPT  P-ORDE.
  459.            ACCEPT  TEC FROM ESCAPE KEY.
  460.            IF T-ESC OR T-F4
  461.               PERFORM 1N
  462.               IF OPC = 01 GO INA5 ELSE GO INA4.
  463.            IF NOT T-RET GO INA6. IF ORDE > 3 GO INA6.
  464.            DISPLAY P-ORDE.
  465.            IF OPC > 01 MOVE ZEROS TO D-FECH1 H-FECH1.
  466. Modo   INA7.
  467.            MOVE ZEROS TO TEC. DISPLAY P-MODO. ACCEPT  P-MODO.
  468.            ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA6.
  469.            IF NOT T-RET GO INA7. IF MODO > 1 GO INA7.
  470.            DISPLAY P-MODO.
  471. CoSf   INA7A.
  472.            MOVE ZEROS TO TEC. DISPLAY P-COSF. ACCEPT  P-COSF.
  473.            ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA7.
  474.            IF NOT T-RET GO INA7A. IF COSF > 1 GO INA7A.
  475.            DISPLAY P-COSF.
  476. Vist   INA8.
  477.            MOVE ZEROS TO TEC VIST OBRA OBRA2.
  478.            DISPLAY P-VIST. ACCEPT  P-VIST.
  479.            ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA7A.
  480.            IF NOT T-RET GO INA8. IF VIST > 3 GO INA8.
  481.            DISPLAY P-VIST.
  482.            IF MA = 1 GO INA8B.
  483. Especi INA8A.
  484.   ""       MOVE ZEROS TO TEC. MOVE SPACES TO TODO.
  485.   ""       DISPLAY P-TODO. ACCEPT  P-TODO.
  486.   ""       ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA8.
  487.   ""       IF NOT T-RET GO INA8A.
  488.   ""       DISPLAY P-TODO.
  489. Obra   INA8B.
  490.            MOVE ZEROS TO TEC OBRA OBRA2.
  491.            DISPLAY P-OBRA. ACCEPT  P-OBRA.
  492.            ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA8.
  493.            IF NOT T-RET GO INA8B. IF OBRA > 2 GO INA8B.
  494.            IF OBRA = 1 GO INA9.
  495.            DISPLAY P-OBRA.
  496. Obra2  INA8C.
  497.            MOVE 2 TO OBRA2.
  498.      *    MOVE ZEROS TO TEC OBRA2. DISPLAY P-OBRA2. ACCEPT  P-OBRA2.
  499.      *    ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA8B.
  500.      *    IF NOT T-RET GO INA8C. IF OBRA2 < 1 OR > 2 GO INA8C.
  501.      *    DISPLAY P-OBRA2.
  502. Acep   INA9.
  503.            MOVE ZEROS TO TEC. MOVE SPACES TO SINO.
  504.            DISPLAY P-SINO. ACCEPT  P-SINO.
  505.            ACCEPT  TEC FROM ESCAPE KEY. IF T-ESC OR T-F4 GO INA8.
  506.            IF NOT T-RET GO INA9. IF NOT POSI GO INA9.
  507.            DISPLAY P-SINO. IF NONO PERFORM 0N GO INA0.
  508.        INI.
  509.            MOVE 1 TO BAN.
  510.            MOVE D-FECH  TO A-FECHA. MOVE A-DIA TO W-DIA.
  511.            MOVE A-MES TO W-MES. MOVE A-ANO TO W-ANO.
  512.            MOVE W-FECHAX TO D-FE.
  513.            MOVE H-FECH  TO A-FECHA. MOVE A-DIA TO W-DIA.
  514.            MOVE A-MES TO W-MES. MOVE A-ANO TO W-ANO.
  515.            MOVE W-FECHAX TO H-FE.
  516.            OPEN OUTPUT AAAA.
  517.            CLOSE       AAAA.
  518.            OPEN OUTPUT BBBB.
  519.            CLOSE       BBBB.
  520.            OPEN OUTPUT CCCC.
  521.            CLOSE       CCCC.
  522. Vtas       IF OBRA = 0 OR = 1 PERFORM ARMA THRU F-ARMA.
  523. Obra       IF OBRA = 0 OR = 2
  524.               IF OBRA2 = 1 OR = 2
  525.                  PERFORM ERME THRU F-ERME.
  526.            IF D-FECH1 NOT = ZEROS
  527.               IF OPC = 01 AND ORDE < 3
  528.                  MOVE 2 TO BAN
  529.                  MOVE D-FECH1 TO A-FECHA MOVE A-DIA TO W-DIA
  530.                  MOVE A-MES TO W-MES MOVE A-ANO TO W-ANO
  531.                  MOVE W-FECHAX TO D-FE
  532.                  MOVE H-FECH1 TO A-FECHA MOVE A-DIA TO W-DIA
  533.                  MOVE A-MES TO W-MES MOVE A-ANO TO W-ANO
  534.                  MOVE W-FECHAX TO H-FE
  535.                  PERFORM ARMA THRU F-ARMA.
  536.            PERFORM LIST THRU F-LIST.
  537.            PERFORM 1N. GO INA6.
  538.        FIN.
  539.            EXIT PROGRAM.
  540.        PARAR.
  541.            STOP RUN.

Última edición por Josber fecha: 20 de marzo de 2023 a las 19:09. Razón: Por favor, usa el resaltado de texto para el lenguaje COBOL, (botón CBL)
jorgeamedina2020 is offline   Responder Con Cita