Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Cocina PowerCOBOL (https://www.cobolforo.es/forumdisplay.php?f=24)
-   -   [PowerCOBOL v3] Selección de línea en Table control (https://www.cobolforo.es/showthread.php?t=227)

Kuk 2 de septiembre de 2015 13:35

Selección de línea en Table control
 
1 Archivos Adjunto(s)
Código COBOL:
  1.  ENVIRONMENT DIVISION.
  2.  DATA        DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  R       PIC 9(9).         *> Row actual
  5.  01  R-1     PIC 9(9) VALUE 0. *> Row seleccionado antes
  6.  
  7.  01  IDX-1   PIC 9(9).    
  8.  01  IDX-2   PIC 9(9).
  9.  
  10.  01  SV-COLOR              PIC X(4).
  11.  
  12.  PROCEDURE   DIVISION.
  13.      
  14.      IF  POW-CLICKROW OF TABLE1 NOT = 0
  15.          MOVE POW-CLICKROW OF TABLE1 TO R
  16.        
  17.          *> no seleccionamos líneas vacías
  18.          IF  POW-TEXT (R 1) OF TABLE1 = SPACES        
  19.              EXIT PROGRAM
  20.          END-IF
  21.        
  22.          *> si la línea seleccionada no es la misma que la anterior selección
  23.          IF  R NOT = R-1
  24.             *> si no es la primera selección después de cargar los datos
  25.              IF  R-1 NOT = 0
  26.                  MOVE 1 TO IDX-1
  27.                
  28.                  *> coloreamos línea anterior con el color que tenía (lo guardamos en SV-COLOR)
  29.                  PERFORM UNTIL IDX-1 > 15
  30.                      MOVE SV-COLOR TO POW-BACKCOLOR (R-1 IDX-1) OF TABLE1
  31.                      
  32.                      ADD 1 TO IDX-1
  33.                  END-PERFORM
  34.              END-IF
  35.            
  36.              *> esta parte compatibiliza con el AltBackColor para no perder orden de colores
  37.              IF  FUNCTION REM(R 2) NOT = 0
  38.                  MOVE POW-WHITE TO SV-COLOR
  39.                  
  40.              ELSE
  41.                  MOVE X'FFEEFF00' TO SV-COLOR
  42.              END-IF
  43.              
  44.              MOVE 1 TO IDX-1
  45.            
  46.              *> coloreamos la línea con el color selección
  47.              PERFORM UNTIL IDX-1 > 15
  48.                  MOVE X'FBFFA800' TO POW-BACKCOLOR (R IDX-1) OF TABLE1
  49.                  
  50.                  ADD 1 TO IDX-1
  51.              END-PERFORM
  52.          
  53.              MOVE R TO R-1
  54.          END-IF    
  55.      END-IF

El color X'FBFFA800' corresponde al color de la línea seleccionada (yo he puesto amarillento tipo ultra edit). Se puede cambiar, es RGB en formato para HTML y un nulo al final (X'00').

Galileo 19 de diciembre de 2015 21:39

Éste código es sencillo y directo. Me gusta.


La franja horaria es GMT +2. Ahora son las 03:50.

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