| Kuk |
2 de septiembre de 2015 13:35 |
Selección de línea en Table control
1 Archivos Adjunto(s)
Código COBOL:
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 R PIC 9(9). *> Row actual 01 R-1 PIC 9(9) VALUE 0. *> Row seleccionado antes 01 IDX-1 PIC 9(9). 01 IDX-2 PIC 9(9). 01 SV-COLOR PIC X(4). PROCEDURE DIVISION. IF POW-CLICKROW OF TABLE1 NOT = 0 MOVE POW-CLICKROW OF TABLE1 TO R *> no seleccionamos líneas vacías IF POW-TEXT (R 1) OF TABLE1 = SPACES EXIT PROGRAM END-IF *> si la línea seleccionada no es la misma que la anterior selección IF R NOT = R-1 *> si no es la primera selección después de cargar los datos IF R-1 NOT = 0 MOVE 1 TO IDX-1 *> coloreamos línea anterior con el color que tenía (lo guardamos en SV-COLOR) PERFORM UNTIL IDX-1 > 15 MOVE SV-COLOR TO POW-BACKCOLOR (R-1 IDX-1) OF TABLE1 ADD 1 TO IDX-1 END-PERFORM END-IF *> esta parte compatibiliza con el AltBackColor para no perder orden de colores IF FUNCTION REM(R 2) NOT = 0 MOVE POW-WHITE TO SV-COLOR ELSE MOVE X'FFEEFF00' TO SV-COLOR END-IF MOVE 1 TO IDX-1 *> coloreamos la línea con el color selección PERFORM UNTIL IDX-1 > 15 MOVE X'FBFFA800' TO POW-BACKCOLOR (R IDX-1) OF TABLE1 ADD 1 TO IDX-1 END-PERFORM MOVE R TO R-1 END-IF 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').
|