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