Ver Mensaje Individual
  #12
Antiguo 7 de junio de 2022, 08:42
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

sigue.....


Código COBOL:
  1.        PROCEDURE DIVISION using registro-lk.                                    
  2. ------*                                                                        
  3.        DECLARATIVES.                                                            
  4.        IO-ERROR SECTION.                                                        
  5.            USE AFTER STANDARD ERROR PROCEDURE ON                                
  6.                       RGREGIS.                                                  
  7.        END DECLARATIVES.                                                        
  8.        MAIN SECTION.                                                            
  9.                                                                                
  10.        INICIO.                                                                  
  11.        A0.                                                                      
  12.            initialize nombre-regis                                              
  13.            set presupuesto-ptas to true                                        
  14.            perform varying i from 1 by 1 until i > 80                          
  15.                            or fic-lk(i) = ' '                                  
  16.                  move fic-lk(i) to nombre-regis(i:1)                            
  17.            end-perform                                                          
  18.            perform abrir-pantalla.                                              
  19.       d     accept nombre-regis update line 1 end-accept                        
  20.            PERFORM VARYING INDICE FROM 1 BY 1 UNTIL INDICE = 2001              
  21.              
  22.               if es-unix then
  23.                   inspect linea-atributo(indice) converting
  24.                    '*‚¡¢£¤¥§¦‡€' to 'áéíóúñѺªçÇ'
  25.               end-if
  26.              
  27.               MOVE LINEA-ATRIBUTO(INDICE) TO LINEA-Aa(INDICE)                  
  28.            END-PERFORM                                                          
  29.            if RM-VersionNumber = ' '
  30.               display linea-P line 1 position 1 LOW                                
  31.                       CONTROL sicolor                                                  
  32.            end-if          
  33.            PERFORM VARYING LINEA FROM 1 BY 1 UNTIL LINEA = 25                  
  34.             PERFORM VARYING COLUMNA FROM 1 BY 1 UNTIL COLUMNA = 81            
  35.              COMPUTE INDICE = (LINEA - 1) * 80 + COLUMNA                      
  36.              IF LINEA-ATRIBUTO(INDICE) < '³' or > 'Ú'
  37.                 or RM-VersionNumber = ' '
  38.      *         or es-unix
  39.               EVALUATE LINEA-COLOR(INDICE)                                      
  40.               WHEN ''                                                          
  41.                 if RM-VersionNumber not = ' '
  42.                  DISPLAY LINEA-ATRIBUTO(INDICE) low                                
  43.                    LINE LINEA POSITION COLUMNA                                  
  44.                    CONTROL sicolor                                              
  45.                 end-if  
  46.               WHEN ''                                                          
  47.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  48.                    LINE LINEA POSITION COLUMNA                                  
  49.                    CONTROL sicolor                                              
  50.               WHEN 'p'                                                          
  51.                 DISPLAY LINEA-ATRIBUTO(INDICE) LOW                              
  52.                    LINE LINEA POSITION COLUMNA                                  
  53.                    CONTROL sicolor reverse
  54.      *             CONTROL 'FCOLOR=BLACK, BCOLOR=WHITE'                        
  55.               WHEN ''                                                          
  56.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  57.                    LINE LINEA POSITION COLUMNA                                  
  58.                    CONTROL 'FCOLOR=GREY, BCOLOR=WHITE'                        
  59.               WHEN '?'                                                          
  60.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  61.                    LINE LINEA POSITION COLUMNA                                  
  62.                    CONTROL 'FCOLOR=WHITE, BCOLOR=CYAN'                          
  63.               WHEN 'O'                                                          
  64.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  65.                    LINE LINEA POSITION COLUMNA                                  
  66.                    CONTROL 'FCOLOR=WHITE, BCOLOR=RED'                          
  67.               WHEN '0'                                                          
  68.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  69.                    LINE LINEA POSITION COLUMNA LOW                              
  70.                    CONTROL 'FCOLOR=BLACK, BCOLOR=CYAN'                          
  71.               WHEN 'K'                                                          
  72.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  73.                    LINE LINEA POSITION COLUMNA                                  
  74.                    CONTROL 'FCOLOR=CYAN, BCOLOR=RED'                            
  75.               WHEN ';'                                                          
  76.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  77.                    LINE LINEA POSITION COLUMNA REVERSE                          
  78.                    CONTROL 'FCOLOR=CYAN, BCOLOR=CYAN'                          
  79.               WHEN ' '                                                          
  80.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  81.                    LINE LINEA POSITION COLUMNA                                  
  82.                    CONTROL 'FCOLOR=CYAN, BCOLOR=BLACK'                          
  83.               WHEN OTHER                                                        
  84.                 DISPLAY LINEA-ATRIBUTO(INDICE) low                                
  85.                    LINE LINEA POSITION COLUMNA                                  
  86.                    CONTROL sicolor                                              
  87.      *          CONTINUE                                                        
  88.      *          DISPLAY LINEA-ATRIBUTO(INDICE)                                
  89.      *             LINE LINEA POSITION COLUMNA LOW                            
  90.               END-EVALUATE                                                      
  91.              ELSE
  92.               move ' ' to high-graphics
  93.               string sicolor 'high GRAPHICS' delimited by size into
  94.                  HIGH-GRAPHICS
  95.               EVALUATE LINEA-ATRIBUTO(INDICE)                                      
  96.               WHEN '³'                                                          
  97.                 MOVE 'x' TO LINEA-ATRIBUTO(INDICE)                                  
  98.               WHEN '´'                                                          
  99.                 MOVE 'u' TO LINEA-ATRIBUTO(INDICE)                                  
  100.               WHEN 'µ'                                                          
  101.                 MOVE 'u' TO LINEA-ATRIBUTO(INDICE)                                  
  102.               WHEN '¶'                                                          
  103.                 MOVE 'u' TO LINEA-ATRIBUTO(INDICE)                                  
  104.               WHEN '·'                                                          
  105.                 MOVE 'k' TO LINEA-ATRIBUTO(INDICE)                                  
  106.               WHEN '¸'                                                          
  107.                 MOVE 'k' TO LINEA-ATRIBUTO(INDICE)                                  
  108.               WHEN '¹'                                                          
  109.                 MOVE 'U' TO LINEA-ATRIBUTO(INDICE)                                  
  110.               WHEN 'º'                                                          
  111.                 MOVE 'X' TO LINEA-ATRIBUTO(INDICE)                                  
  112.               WHEN '»'                                                          
  113.                 MOVE 'K' TO LINEA-ATRIBUTO(INDICE)                                  
  114.               WHEN '¼'                                                          
  115.                 MOVE 'J' TO LINEA-ATRIBUTO(INDICE)                                  
  116.               WHEN '½'                                                          
  117.                 MOVE 'j' TO LINEA-ATRIBUTO(INDICE)                                  
  118.               WHEN '¾'                                                          
  119.                 MOVE 'j' TO LINEA-ATRIBUTO(INDICE)                                  
  120.               WHEN '¿'                                                          
  121.                 MOVE 'k' TO LINEA-ATRIBUTO(INDICE)                                  
  122.               WHEN 'À'                                                          
  123.                 MOVE 'm' TO LINEA-ATRIBUTO(INDICE)                                  
  124.               WHEN 'Á'                                                          
  125.                 MOVE 'v' TO LINEA-ATRIBUTO(INDICE)                                  
  126.               WHEN 'Â'                                                          
  127.                 MOVE 'w' TO LINEA-ATRIBUTO(INDICE)                                  
  128.               WHEN 'Ã'                                                          
  129.                 MOVE 't' TO LINEA-ATRIBUTO(INDICE)                                  
  130.               WHEN 'Ä'                                                          
  131.                 MOVE 'q' TO LINEA-ATRIBUTO(INDICE)                                  
  132.               WHEN 'Å'                                                          
  133.                 MOVE 'n' TO LINEA-ATRIBUTO(INDICE)                                  
  134.               WHEN 'Æ'                                                          
  135.                 MOVE 't' TO LINEA-ATRIBUTO(INDICE)                                  
  136.               WHEN 'Ç'                                                          
  137.                 MOVE 't' TO LINEA-ATRIBUTO(INDICE)                                  
  138.               WHEN 'È'                                                          
  139.                 MOVE 'M' TO LINEA-ATRIBUTO(INDICE)                                  
  140.               WHEN 'É'                                                          
  141.                 MOVE 'L' TO LINEA-ATRIBUTO(INDICE)                                  
  142.               WHEN 'Ê'                                                          
  143.                 MOVE 'V' TO LINEA-ATRIBUTO(INDICE)                                  
  144.               WHEN 'Ë'                                                          
  145.                 MOVE 'W' TO LINEA-ATRIBUTO(INDICE)                                  
  146.               WHEN 'Ì'                                                          
  147.                 MOVE 'T' TO LINEA-ATRIBUTO(INDICE)                                  
  148.               WHEN 'Í'                                                          
  149.                 MOVE 'Q' TO LINEA-ATRIBUTO(INDICE)                                  
  150.               WHEN 'Î'                                                          
  151.                 MOVE 'N' TO LINEA-ATRIBUTO(INDICE)                                  
  152.               WHEN 'Ï'                                                          
  153.                 MOVE 'v' TO LINEA-ATRIBUTO(INDICE)                                  
  154.               WHEN 'Ð'                                                          
  155.                 MOVE 'v' TO LINEA-ATRIBUTO(INDICE)                                  
  156.               WHEN 'Ñ'                                                          
  157.                 MOVE 'w' TO LINEA-ATRIBUTO(INDICE)                                  
  158.               WHEN 'Ò'                                                          
  159.                 MOVE 'w' TO LINEA-ATRIBUTO(INDICE)                                  
  160.               WHEN 'Ó'                                                          
  161.                 MOVE 'm' TO LINEA-ATRIBUTO(INDICE)                                  
  162.               WHEN 'Ô'                                                          
  163.                 MOVE 'm' TO LINEA-ATRIBUTO(INDICE)                                  
  164.               WHEN 'Õ'                                                          
  165.                 MOVE 'l' TO LINEA-ATRIBUTO(INDICE)                                  
  166.               WHEN 'Ö'                                                          
  167.                 MOVE 'l' TO LINEA-ATRIBUTO(INDICE)                                  
  168.               WHEN '×'                                                          
  169.                 MOVE 'n' TO LINEA-ATRIBUTO(INDICE)                                  
  170.               WHEN 'Ø'                                                          
  171.                 MOVE 'n' TO LINEA-ATRIBUTO(INDICE)                                  
  172.               WHEN 'Ù'                                                          
  173.                 MOVE 'j' TO LINEA-ATRIBUTO(INDICE)                                  
  174.               WHEN 'Ú'                                                          
  175.                 MOVE 'l' TO LINEA-ATRIBUTO(INDICE)                                  
  176.               WHEN OTHER
  177.                 MOVE ' ' TO LINEA-ATRIBUTO(INDICE)                                  
  178.      *         CONTINUE
  179.               END-EVALUATE
  180.               EVALUATE LINEA-COLOR(INDICE)                                      
  181.               WHEN ''            
  182.      *          if linea = 2 and columna = 2
  183.      *            accept high-graphics line 1 position 1 update
  184.      *          end-if
  185.                 DISPLAY LINEA-ATRIBUTO(INDICE)  LOW                                
  186.                    LINE LINEA POSITION COLUMNA                                  
  187.      *             CONTROL HIGH-GRAPHICS                                            
  188.                    CONTROL 'BCOLOR=BLUE , FCOLOR=WHITE HIGH GRAPHICS'
  189.  
  190.               WHEN ''                                                          
  191.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  192.                    LINE LINEA POSITION COLUMNA                                  
  193.                    CONTROL HIGH-GRAPHICS                                            
  194.               WHEN 'p'                                                          
  195.                 DISPLAY LINEA-ATRIBUTO(INDICE) LOW                              
  196.                    LINE LINEA POSITION COLUMNA                                  
  197.                    CONTROL  HIGH-GRAPHICS reverse
  198.      *             CONTROL 'FCOLOR=BLACK, BCOLOR=WHITE'                        
  199.               WHEN ''                                                          
  200.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  201.                    LINE LINEA POSITION COLUMNA                                  
  202.                    CONTROL
  203.               'BCOLOR=WHITE , FCOLOR=HIGH-INTENSITY WHITE HIGH GRAPHICS'
  204.      *             CONTROL 'FCOLOR=GREY, BCOLOR=WHITE  HIGH GRAPHICS'
  205.               WHEN '?'                                                          
  206.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  207.                    LINE LINEA POSITION COLUMNA                                  
  208.                    CONTROL 'FCOLOR=WHITE, BCOLOR=CYAN  HIGH GRAPHICS'
  209.               WHEN 'O'                                                          
  210.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  211.                    LINE LINEA POSITION COLUMNA                                  
  212.                    CONTROL 'FCOLOR=WHITE, BCOLOR=RED  HIGH GRAPHICS'                          
  213.               WHEN '0'                                                          
  214.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  215.                    LINE LINEA POSITION COLUMNA LOW                              
  216.                    CONTROL 'FCOLOR=BLACK, BCOLOR=CYAN  HIGH GRAPHICS'                          
  217.               WHEN 'K'                                                          
  218.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  219.                    LINE LINEA POSITION COLUMNA                                  
  220.                    CONTROL 'FCOLOR=CYAN, BCOLOR=RED  HIGH GRAPHICS'                            
  221.               WHEN ';'                                                          
  222.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  223.                    LINE LINEA POSITION COLUMNA REVERSE                          
  224.                    CONTROL 'FCOLOR=CYAN, BCOLOR=CYAN  HIGH GRAPHICS'                          
  225.               WHEN ' '                                                          
  226.                 DISPLAY LINEA-ATRIBUTO(INDICE)                                  
  227.                    LINE LINEA POSITION COLUMNA                                  
  228.                    CONTROL 'FCOLOR=CYAN, BCOLOR=BLACK  HIGH GRAPHICS'                          
  229.               WHEN OTHER                                                        
  230.                 DISPLAY LINEA-ATRIBUTO(INDICE)  LOW                                
  231.                    LINE LINEA POSITION COLUMNA                                  
  232.      *             CONTROL HIGH-GRAPHICS                                            
  233.                    CONTROL 'BCOLOR=BLUE , FCOLOR=WHITE'
  234.      *          DISPLAY LINEA-ATRIBUTO(INDICE)                                
  235.      *             LINE LINEA POSITION COLUMNA LOW                            
  236.               END-EVALUATE                                                      
  237.              END-IF
  238.             END-PERFORM                                                        
  239.            END-PERFORM                                    
  240.            initialize indice                      
  241.            inspect nombre-regis tallying indice for all '.cr6' '.cp6'
  242.            initialize i                      
  243.            inspect nombre-regis tallying indice for all '.cr5' '.cp5'
  244.            if indice = 0 and i = 0 then
  245.             if mun00-corr-ex > 50 then
  246.              move 1900 to ejercicio-presupuesto
  247.             else
  248.              move 2000 to ejercicio-presupuesto
  249.             end-if
  250.             add mun00-corr-ex to ejercicio-presupuesto
  251.             initialize linea-p
  252.             string 'Presupuesto ' delimited by size
  253.                     ejercicio-presupuesto delimited by size
  254.                     ' Entidad ' delimited by size
  255.                     mun00-cif-ex delimited by ' '
  256.                     ' ' delimited by size
  257.                     mun00-nombre-ex delimited by size
  258.                     into linea-p
  259.             move 0 to indice j k        
  260.             perform varying i from 80 by -1 until i = 0 or i = indice
  261.                if linea-p(i:1) not = ' ' and indice = 0 then
  262.                   compute indice = ( 80 - i ) / 2
  263.                   compute indice = 80 - indice
  264.                   compute k = indice + 2
  265.                end-if
  266.                if indice not = 0 then
  267.                   move linea-p(i:1) to linea-p(indice:1)
  268.                   if linea-p(indice:1) not = ' '
  269.                      compute j = indice - 2
  270.                   end-if
  271.                   move ' ' to linea-p(i:1)
  272.                   subtract 1 from indice
  273.                end-if
  274.             end-perform
  275.             display linea-p(1:80) line 25 position 1 erase eol                
  276.                CONTROL sicolor low
  277. *************
  278.             move ' ' to high-graphics
  279.             if RM-VersionNumber not = ' '
  280.               string sicolor 'high GRAPHICS' delimited by size into
  281.                  HIGH-GRAPHICS
  282.               MOVE 'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq'
  283.                    TO LINEA-p                                  
  284.             else
  285.               MOVE 'ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ'
  286.                    TO LINEA-p                                  
  287.             end-if  
  288.             if k <= 80 then
  289.               DISPLAY LINEA-p(1 : 80 - k + 1)  LOW                                
  290.                    LINE 25 POSITION k                                  
  291.                    CONTROL 'BCOLOR=BLUE , FCOLOR=WHITE HIGH GRAPHICS'
  292.             end-if      
  293.             if j >= 1 then
  294.               DISPLAY LINEA-p(1 : j)  LOW                                
  295.                    LINE 25 POSITION 1                                  
  296.                    CONTROL 'BCOLOR=BLUE , FCOLOR=WHITE HIGH GRAPHICS'
  297.             end-if      
  298. *************          
  299.            else
  300.                 DISPLAY ' ' low                                
  301.                    LINE 25 POSITION 1 erase eol
  302.                    CONTROL sicolor                                              
  303.            end-if.                                      
  304.            goback.                                                              
  305.                                                                                
  306.        abrir-pantalla.                                                          
  307.            open input rgregis.                                                  
  308.       d    accept nombre-regis update line 1 position 1                        
  309.            if f-noexiste-regis and not presupuesto-euros then                  
  310.              perform varying i from 1 by 1 until nombre-regis(i:1) = ' '        
  311.                continue                                                        
  312.              end-perform                                                        
  313.              perform varying columna from i by -1                              
  314.                until nombre-regis(columna:1) = '\' or = '/'                            
  315.               continue                                                        
  316.             end-perform                                                        
  317.             move nombre-regis(columna + 1:) to nombre-regis(1:)                
  318.             set presupuesto-euros to true                                      
  319.             go abrir-pantalla                                                  
  320.           end-if                                                              
  321.           read rgregis.                                                        
  322.           close rgregis.                                                      
  323.           if si-presupuesto-nuevo then
  324.             inspect nombre-regis replacing all '.cr' by '.cp'
  325.             open input rgregis                                                  
  326.             if esta-regis
  327.                read rgregis end-read                                                        
  328.             end-if  
  329.             close rgregis                                                      
  330.           end-if.                                                                    
JCantero is offline   Responder Con Cita