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').