Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   RM/COBOL (https://www.cobolforo.es/forumdisplay.php?f=16)
-   -   [Duda] Pantallas RMCobol (https://www.cobolforo.es/showthread.php?t=1496)

ge5lo 31 de mayo de 2022 20:36

Pantallas RMCobol
 
Hola busco pantallas que sean hechas en RMcobol 85 ya rescate un codigo fuente que realice hace algunos años pero no son pantallas que tengan color ni teclas de funcion para navegar :jefe: y me gustaría saber si en este compilador se podia usar mouse? no se si tambien se pueda usar en Unix como en DOS???

JCantero 31 de mayo de 2022 23:07

Que version tiene el runtime ?

En windows, a partir de la versión 6.0 tiene soporte de ratón.

En Linux, no.

ge5lo 2 de junio de 2022 00:02

Cita:

Citación del post de JCantero (Mensaje 7874)
Que version tiene el runtime ?

En windows, a partir de la versión 6.0 tiene soporte de ratón.

En Linux, no.

el runtime es RMCOBOL 85 creo que es la 5xx
Hola JCantero Gracias por responder pero el codigo que tengo esta en DOS y lo rescate para que funcionara en DOSBox Solo que quiero mejorar las pantallas y no recuerdo para hacer las pantallas bonitas y con color

Loffreda 2 de junio de 2022 00:45

Cita:

Citación del post de ge5lo (Mensaje 7872)
Hola busco pantallas que sean hechas en RMcobol 85 ya rescate un codigo fuente que realice hace algunos años pero no son pantallas que tengan color ni teclas de funcion para navegar :jefe: y me gustaría saber si en este compilador se podia usar mouse? no se si tambien se pueda usar en Unix como en DOS???


Use muchos años RM, tengo rutinas armadas, no creo que puedas usar MOUSE, en cuanto al color de las pantallas puedes darles tonos básicos

:hi:

ge5lo 2 de junio de 2022 00:55

Cita:

Citación del post de Loffreda (Mensaje 7881)
Use muchos años RM, tengo rutinas armadas, no creo que puedas usar MOUSE, en cuanto al color de las pantallas puedes darles tonos básicos

:hi:

Si me puedes ayudar con esas rutinas te agradeceria... lo del Mouse no es importante si las pantallas tiene colores basico no importa

JCantero 2 de junio de 2022 01:12

Con la versión 5, no tienes soporte de ratón.

El color si lo puedes implementar.

Tienes que poner en el ACCEPT y DISPLAY la palabra CONTROL y los colores con. FCOLOR. Y BCOLOR

Ejemplo
Código COBOL:
  1.        Display ' Esto va en color ' líne 1 position 1 control 'fcolor=blue, bcolor=red'


---------- Post añadido el 2 de junio de 2022 a las 07:41 ----------

Si lo quieres automatizar puedes emplear una variable y la vas rellenando según las necesidades.

Código COBOL:
  1.  
  2. move  'fcolor=blue, bcolor=red' to color
  3. *
  4. *
  5. *
  6. Display ' Esto va en color ' líne 1 position 1 control color


---------- Post añadido el 2 de junio de 2022 a las 07:49 ----------

En versiones superiores se pueden indicar los colores con numeros, pero en la 5:

Código:

COLOR-NAME
 BLACK
 BLUE
 GREEN
 CYAN
 RED
 MAGENTA
 BROWN
 WHITE

Ademas puedes poner LOW y LIGHT para atenuar o resaltar el color.

Kuk 2 de junio de 2022 09:21

@ge5lo, no sé si te interesará, pero lo mismo quieres pasarte al mundo GUI: [Compilador] Fujitsu PowerCOBOL V3L10 para Windows 7 x86/x64 - COBOL Foro

ge5lo 2 de junio de 2022 17:29

Cita:

Citación del post de Kuk (Mensaje 7887)
@ge5lo, no sé si te interesará, pero lo mismo quieres pasarte al mundo GUI: [Compilador] Fujitsu PowerCOBOL V3L10 para Windows 7 x86/x64 - COBOL Foro

Gracias pero lo que busco es RMCobol 85, pantallas en Ascii

---------- Post añadido el 2 de junio de 2022 a las 16:31 ----------

Cita:

Citación del post de JCantero (Mensaje 7883)
Con la versión 5, no tienes soporte de ratón.

El color si lo puedes implementar.

Tienes que poner en el ACCEPT y DISPLAY la palabra CONTROL y los colores con. FCOLOR. Y BCOLOR

Ejemplo
Código COBOL:
  1.        Display ' Esto va en color ' líne 1 position 1 control 'fcolor=blue, bcolor=red'


---------- Post añadido el 2 de junio de 2022 a las 07:41 ----------

Si lo quieres automatizar puedes emplear una variable y la vas rellenando según las necesidades.

Código COBOL:
  1.  
  2. move  'fcolor=blue, bcolor=red' to color
  3. *
  4. *
  5. *
  6. Display ' Esto va en color ' líne 1 position 1 control color


---------- Post añadido el 2 de junio de 2022 a las 07:49 ----------

En versiones superiores se pueden indicar los colores con numeros, pero en la 5:

Código:

COLOR-NAME
 BLACK
 BLUE
 GREEN
 CYAN
 RED
 MAGENTA
 BROWN
 WHITE

Ademas puedes poner LOW y LIGHT para atenuar o resaltar el color.


HOLA CANTERO Encontre algo en esta pagina Cobol en español - MENU DE OPCIONES EN RMCOBOL-85

pero el manejo del cursor y las posiciones del menu estan estan cuadradas, busco algo simiar con recuadros con caracteres como estos "└" o "╚"
Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. MENU.
  3.        ENVIRONMENT DIVISION.
  4.        CONFIGURATION SECTION.
  5.        DATA DIVISION.
  6.        WORKING-STORAGE SECTION.
  7.        01 OPX PIC X.
  8.  
  9.        01 WCB.
  10.            03 WINCAB PIC 999 BINARY VALUE 0.
  11.            03 WINLIN PIC 999 BINARY.
  12.            03 WINCOL PIC 999 BINARY.
  13.            03 WINLOC PIC X VALUE "S".
  14.      * (S-W)
  15.            03 WINBORST PIC X VALUE "Y".
  16.      * (Y-N)
  17.            03 WINBORTI PIC 9 VALUE 2.
  18.            03 WINBORCH PIC X.
  19.            03 WINLLE PIC X.
  20.      * (Y-N)
  21.            03 WINLLECH PIC X.
  22.            03 WINTITSI PIC X VALUE "T".
  23.      * (T-B)
  24.            03 WINTITPO PIC X VALUE "C".
  25.      * (C-L-R)
  26.            03 WINTITLO PIC 999 BINARY.
  27.            03 WINTIT PIC X(64).
  28.  
  29.       * ----- * --- Colores.
  30.  
  31.        01 C0.
  32.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  33.            02 pic X(30) value "OR = WHITE , BCOLOR = BLUE ".
  34.        01 C1.
  35.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  36.            02 pic X(30) value "OR = WHITE , BCOLOR = BLACK ".
  37.        01 C2.
  38.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  39.            02 pic X(30) value "OR = GREEN , BCOLOR = BLACK ".
  40.        01 C3.
  41.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  42.            02 pic X(30) value "OR = RED , BCOLOR = WHITE ".
  43.        01 C4.
  44.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  45.            02 pic X(30) value "OR = RED , BCOLOR = BLCK ".
  46.        01 C5.
  47.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  48.            02 pic X(30) value "OR = CYAN , BCOLOR = BLACK ".
  49.        01 C6.
  50.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  51.            02 pic X(30) value "OR = BROWN , BCOLOR = WHITE ".
  52.        01 C7.
  53.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  54.            02 pic X(30) value "OR = BLUE , BCOLOR = WHITE ".
  55.        01 C8.
  56.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  57.            02 pic X(30) value "OR = MAGENTA, BCOLOR = BLACK ".
  58.        01 C9.
  59.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  60.            02 pic X(30) value "OR = MAGENTA, BCOLOR = WHITE ".
  61.        01 CA.
  62.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  63.            02 pic X(30) value "OR = BROWN , BCOLOR = BLACK ".
  64.        01 CB.
  65.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  66.            02 pic X(30) value "OR = BROWN , BCOLOR = WHITE ".
  67.        01 CC.
  68.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  69.            02 pic X(30) value "OR = BLACK , BCOLOR = WHITE ".
  70.        01 CJ.
  71.            02 pic X(37) value " HIGHNO REVERSE BLINK , FCOL".
  72.            02 pic X(31) value "OR = CYAN , BCOLOR = BLACK LOW ".
  73.  
  74.        01 VENTANAS.
  75.            02 WIN PIC X(80) OCCURS 10 TIMES.
  76.  
  77.        01 LI PIC 9(2).
  78.        01 LI2 PIC 9(2).
  79.        01 LIX PIC 9(2).
  80.        01 OP PIC X.
  81.        01 ESCA PIC 9(2).
  82.        01 QW PIC 9(1).
  83.  
  84.        01 TABLA-OPCIONES.
  85.            02 PIC X(45) VALUE " Programa de Contabilidad ".
  86.            02 PIC X(45) VALUE " Programa de Facturacion ".
  87.            02 PIC X(45) VALUE " Copias de Seguridad ".
  88.            02 PIC X(45) VALUE " Surpervision de la Red Local ".
  89.            02 PIC X(45) VALUE " Utilidades del Sistema ".
  90.            02 PIC X(45) VALUE " Salir del Menu ".
  91.        01 RTABLA REDEFINES TABLA-OPCIONES.
  92.            02 ELEMEN PIC X(45) OCCURS 6 TIMES.
  93.  
  94.        01 TABLA-OPCIONES2.
  95.            02 PIC X(45) VALUE " Hacer Copias de Seguridad ".
  96.            02 PIC X(45) VALUE " Restaurar Copias de Seguridad ".
  97.            02 PIC X(45) VALUE " Preferencias ".
  98.            02 PIC X(45) VALUE " Volver al Menu Principal ".
  99.        01 RTABLA2 REDEFINES TABLA-OPCIONES2.
  100.            02 ELEMEN2 PIC X(45) OCCURS 4 TIMES.
  101.  
  102.        PROCEDURE DIVISION.
  103.        INICIO.
  104.            DISPLAY SPACES ERASE CONTROL C1 LOW.
  105.            DISPLAY SPACES SIZE 80 LINE 1 POSITION 1 CONTROL C0
  106.            DISPLAY " Menu Principal de Opciones ³ "
  107.            LINE 1 POSITION 1 CONTROL C0
  108.            DISPLAY "Versi¢n 1.00/2.003" LINE 1 POSITION 00 CONTROL C0
  109.            DISPLAY SPACES SIZE 80 LINE 2 POSITION 1 CONTROL C5 LOW.
  110.        INI2.
  111.            MOVE 6 TO WINLIN
  112.            MOVE 45 TO WINCOL
  113.            MOVE " Opciones " TO WINTIT MOVE 10 TO WINTITLO
  114.            MOVE 3 TO WINBORTI
  115.            MOVE WCB TO WIN(1)
  116.            DISPLAY WIN(1) LINE 8 POSITION 19 LOW CONTROL "WINDOW-CREATE"
  117.            MOVE 1 TO LI.
  118.        UNO.
  119.            DISPLAY ELEMEN (LI) LINE LI POSITION 1 control c1 LOW.
  120.            ADD 1 TO LI IF LI > 6 NEXT SENTENCE ELSE GO UNO.
  121.        DOS.
  122.            IF LI = 6 MOVE 1 TO LI.
  123.            DISPLAY ELEMEN (LI) LINE LI POSITION 1 CONTROL C9 reverse.
  124.        TRES.
  125.            ACCEPT OP LINE LI POSITION 45 OFF NO BEEP
  126.            ON EXCEPTION ESCA MOVE 1 TO QW.
  127.            DISPLAY ELEMEN (LI) LINE LI POSITION 1 control c1 low.
  128.            IF ESCA = 27
  129.            DISPLAY WIN(1) CONTROL "WINDOW-REMOVE"
  130.            DISPLAY SPACES ERASE CONTROL C1
  131.            STOP RUN.
  132.            IF ESCA = 52 SUBTRACT 1 FROM LI GO DOS.
  133.            IF ESCA = 53 ADD 1 TO LI GO DOS.
  134.            IF ESCA = 13 NEXT SENTENCE ELSE GO TRES.
  135.        CUATRO.
  136.            IF LI = 1
  137.                CALL "GCM.COB" CANCEL "GCM.COB"
  138.                MOVE 0 TO QW
  139.                GO UNO
  140.            END-IF.
  141.            IF LI = 2
  142.                CALL "CGA.COB" CANCEL "CGA.COB"
  143.                MOVE 0 TO QW
  144.                GO UNO
  145.            END-IF.
  146.            IF LI = 3
  147.                PERFORM INI22 THRU CUATRO2
  148.                MOVE 0 TO QW
  149.                GO UNO
  150.            END-IF.
  151.            IF LI = 4
  152.                CALL "MEN-SRED.COB" CANCEL "MEN-SRED.COB"
  153.                MOVE 0 TO QW
  154.                GO UNO
  155.            END-IF.
  156.            IF LI = 5
  157.            CALL "MEN-UTIL.COB" CANCEL "MEN-UTIL.COB"
  158.                MOVE 0 TO QW
  159.                GO UNO
  160.            END-IF.
  161.            IF LI = 6
  162.                MOVE 0 TO QW
  163.                DISPLAY WIN(1) CONTROL "WINDOW-REMOVE"
  164.                DISPLAY SPACES ERASE CONTROL C1
  165.            STOP RUN
  166.            END-IF.
  167.  
  168.        INI22.
  169.            DISPLAY SPACES SIZE 1 LINE 2 POSITION 44 CONTROL C5 LOW
  170.            MOVE 4 TO WINLIN
  171.            MOVE 45 TO WINCOL
  172.            MOVE " Copias de Seguridad " TO WINTIT MOVE 21 TO WINTITLO
  173.            MOVE 3 TO WINBORTI
  174.            MOVE WCB TO WIN(2)
  175.            DISPLAY WIN(2) LINE 12 POSITION 25 LOW
  176.            CONTROL "WINDOW-CREATE"
  177.            MOVE 1 TO LI2.
  178.        UNO2.
  179.            DISPLAY ELEMEN2 (LI2) LINE LI2 POSITION 1 control c1 LOW
  180.            ADD 1 TO LI2 IF LI2 > 4 NEXT SENTENCE ELSE GO UNO2.
  181.        DOS2.
  182.            IF LI2 = 4 MOVE 1 TO LI2.
  183.                DISPLAY ELEMEN2 (LI2) LINE LI2 POSITION 1
  184.                CONTROL C9 reverse.
  185.        TRES2.
  186.            ACCEPT OP LINE LI2 POSITION 45 OFF NO BEEP
  187.            ON EXCEPTION ESCA MOVE 1 TO QW.
  188.            DISPLAY ELEMEN2 (LI2) LINE LI2 POSITION 1 control c1 low.
  189.            IF ESCA = 27
  190.            DISPLAY WIN(2) CONTROL "WINDOW-REMOVE"
  191.            go ini2.
  192.            IF ESCA = 52 SUBTRACT 1 FROM LI2 GO DOS2.
  193.            IF ESCA = 53 ADD 1 TO LI2 GO DOS2.
  194.            IF ESCA = 13 NEXT SENTENCE ELSE GO TRES2.
  195.        CUATRO2.
  196.            IF LI2 = 1
  197.                MOVE 0 TO QW
  198.                GO UNO2
  199.            END-IF.
  200.            IF LI2 = 2
  201.                MOVE 0 TO QW
  202.                GO UNO2
  203.            END-IF.
  204.            IF LI2 = 3
  205.                MOVE 0 TO QW
  206.                GO UNO2
  207.            END-IF.
  208.            IF LI2 = 4
  209.                MOVE 0 TO QW
  210.                DISPLAY WIN(2) CONTROL "WINDOW-REMOVE"
  211.                GO INI2
  212.            END-IF.

pe

JCantero 3 de junio de 2022 11:57

Para versiones superiores a 6.xx está implementado. Pero para la 5.xx no. Hay que hacerlo manualmente.

Para esa versión (5.xx), yo utilizaba un editor de pantallas. Que se puede hacer hasta en cobol.

El editor, basicamente, editaba la pantalla 80x25 ( 2000 caracteres, con cualquier caracter ASCII) y con posibilidad de dar color a cada caracter de la pantalla, eso es un fichero de 4000 caracteres.

Despues en los programas, una rutina (volcado) que sacaba esa pantalla.

ge5lo 6 de junio de 2022 21:00

Cita:

Citación del post de JCantero (Mensaje 7892)
Para versiones superiores a 6.xx está implementado. Pero para la 5.xx no. Hay que hacerlo manualmente.

Para esa versión (5.xx), yo utilizaba un editor de pantallas. Que se puede hacer hasta en cobol.

El editor, basicamente, editaba la pantalla 80x25 ( 2000 caracteres, con cualquier caracter ASCII) y con posibilidad de dar color a cada caracter de la pantalla, eso es un fichero de 4000 caracteres.

Despues en los programas, una rutina (volcado) que sacaba esa pantalla.

Hola y tienes algo de codigo de ejemplo para hacerlo manualmente???

JCantero 7 de junio de 2022 08:42

Si, por supuesto. Ahi va el "volcado de pantallas".

Para mayor comprensión, este volcado, identifica el sistema operativo (o interfaz) donde se ejecuta, MS-DOS, Windows, linux (unix, xenix, unisys)

La pantalla tiene un identificador de 7 caracteres y 2000 pares de color, caracter.

Código COBOL:
  1.        IDENTIFICATION DIVISION.                                                
  2.        PROGRAM-ID.  volcado1.                                                  
  3.      *     (volcado1 con colores)                                              
  4.      *            (por JCCC)                                                  
  5.        ENVIRONMENT DIVISION.                                                    
  6.        CONFIGURATION SECTION.                                                  
  7.        SOURCE-COMPUTER.  RMCOBOL-85.                                            
  8.        OBJECT-COMPUTER.  RMCOBOL-85.                                            
  9.        SPECIAL-NAMES.                                                          
  10.            DECIMAL-POINT IS COMMA.                                              
  11.      *                                                                        
  12.        INPUT-OUTPUT SECTION.                                                    
  13.        FILE-CONTROL.                                                            
  14.      *                                                                        
  15.            SELECT RGREGIS                                                      
  16.                ASSIGN TO RANDOM, NOMBRE-REGIS                                  
  17.                ORGANIZATION IS sequential                                      
  18.                ACCESS MODE IS sequential                                        
  19.                file status is fs-regis.                                        
  20.                                                                                
  21.                                                                                
  22.       *                                                                        
  23.        DATA DIVISION.                                                          
  24.        FILE SECTION.                                                            
  25.      *                                                                        
  26.                                                                                
  27.        FD  RGREGIS.                                                            
  28.        01  REG-REGISTRO.                                                        
  29.           02 lineaXXX  pic x(5000).                                            
  30.           02 REG-LINEAXX REDEFINES LINEAXXX.                                    
  31.               04 FILLER PIC X(7).                                              
  32.               04 REG-PAN OCCURS 2000 TIMES.                                    
  33.                   06 LINEA-ATRIBUTO PIC X.                                      
  34.                   06 LINEA-COLOR PIC X.                                        
  35.               04 FILLER PIC X.                                                  
  36.                                                                                
  37.        WORKING-STORAGE SECTION.                                                
  38.      *                                                                        
  39.        01  NOMBRE-REGIS     PIC X(80) VALUE all " ".                            
  40.        01 fs-regis pic xx.                                                      
  41.               88 esta-regis        value '00' '02'.                            
  42.               88 n-esta-regis      value '23'.                                  
  43.               88 fin-regis         value '46'  '10'.                            
  44.               88 bloqueado-regis   value '99'.                                  
  45.               88 f-bloqueado-regis value '38' '93'.                            
  46.               88 f-noexiste-regis  value '35'.                                  
  47.                                                                                
  48.        01 fs-regisx pic xx.                                                    
  49.                                                                                
  50.        01 i pic 99.                                                            
  51.        01 j pic s99.                                                            
  52.        01 k pic 99.                                                            
  53.        01 LINEA-P PIC X(2000).                                                  
  54.        01 LINEA-A REDEFINES LINEA-P.                                            
  55.            02 linea-aa pic x OCCURS 2000 TIMES.                                
  56.        01 INDICE  PIC 9999.                                                    
  57.        01 linea pic 99.                                                        
  58.        01 columna pic 99.                                                      
  59.        01  color1      pic x(37) value "fcolor= WHITE, bcolor=BLue".            
  60.        01  moneda-presupuesto pic x.                                            
  61.            88 presupuesto-euros value 'e' 'E'.                                  
  62.            88 presupuesto-ptas value ' ' 'P' 'p'.                              
  63.         copy 'sicolor.cpy'.            
  64.         copy 'sieuro.cpy'.                                  
  65.         copy 'siplannu.cpy'.                                  
  66.          copy 'sivarwin.cpy'.  
  67.        01 ejercicio-presupuesto pic 9999 value 0.        
  68.        01 HIGH-GRAPHICS pic x(80).
  69.        linkage section.                                                        
  70.        01 registro-lk.                                                          
  71.            02 fichero-lk.                                                      
  72.                03 fic-lk PIC X(1) OCCURS 80 times.                              
  73.                                                                                
  74. ------*                                                                        
  75.  

JCantero 7 de junio de 2022 08:42

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.                                                                    

Paco_Diaz 26 de octubre de 2022 13:05

Buenas.

g5lo, yo para hacer lo que estas buscando, uso el programa FSDPC, que te permite crear pantallas con codigos ascii.

Tambien hay que tener el programa TRADUCE que traduce las pantallas creadas a otros formatos, pero ese te serviria mucho.

Estoy buscando otro programa para generar que se llama GASS, pero no lo encuentro aun, si alguien lo tuviese, le agradecería que lo pusiera.

Un saludo. Paco.

Gusaiello 26 de octubre de 2022 19:52

1 Archivos Adjunto(s)
@ge5lo, Esto lo hice hace mucho tiempo t corría con RM/85.
No se si servirá.

Es un menú de opciones para un pequeño programita de un bar.


La franja horaria es GMT +2. Ahora son las 13:47.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.