Consultor Eletrônico



Kbase 33474: How to enable/disable columns in a SmartDataBrowser
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   5/10/1998
Solution ID: P3474

GOAL:

How to enable/disable columns in a SmartDataBrowser

FACT(s) (Environment):

Progress 9.x

FIX:

1) Define the following two internal procedures:

PROCEDURE disableColumn:
DEFINE INPUT PARAMETER hB AS HANDLE NO-UNDO.
DEFINE INPUT PARAMETER cColName AS CHARACTER NO-UNDO.

DEFINE VARIABLE hC AS HANDLE NO-UNDO.
DEFINE VARIABLE vi AS INTEGER NO-UNDO.

hC = hb:FIRST-COLUMN.

DO vi = 1 TO hB:NUM-COLUMNS:
IF hC:NAME = cColName THEN
DO:
         hc:READ-ONLY = TRUE.
        RETURN.
   END.
   hC = hC:NEXT-COLUMN.
END.
END PROCEDURE.

PROCEDURE enableColumn:
DEFINE INPUT PARAMETER hB AS HANDLE NO-UNDO.
DEFINE INPUT PARAMETER cColName AS CHARACTER NO-UNDO.

DEFINE VARIABLE hC AS HANDLE NO-UNDO.
DEFINE VARIABLE vi AS INTEGER NO-UNDO.

hC = hb:FIRST-COLUMN.

DO vi = 1 TO hB:NUM-COLUMNS:
   IF hC:NAME = cColName THEN
DO:
     hc:READ-ONLY = FALSE.
        RETURN.
   END.
   hC = hC:NEXT-COLUMN.
END.
END PROCEDURE.

2) Get the browse handle and the column name.

DEFINE VARIABLE handleToBrowse AS HANDLE NO-UNDO.

handleToBrowse = BROWSE {&BROWSE-NAME}:HANDLE.

3) To make the column read-only run the following code:

RUN disableColumn (handleToBrowse, 'ColumnNameGoesHere').

4) To make the column editable run the following code:

RUN enableColumn (handleToBrowse, 'ColumnNameGoesHere').