Consultor Eletrônico



Kbase P167681: How to hide a column from a browser
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   09/06/2010
Status: Unverified

GOAL:

How to hide a column from a browser

GOAL:

How to unhide a column from a browser

GOAL:

Is there a way to remove all or some columns of a browser in run-time

FACT(s) (Environment):

All Supported Operating Systems
Progress 9.1x
OpenEdge 10.x

FIX:

Currently, the ABL does not have a method that allows remove columns of a browser. Instead, use VISIBLE attribute to hide or unhide a browser column.

Below is an example of a program that allow hide and unhide browse columns.

DEFINE TEMP-TABLE ttCust
FIELD custnum AS INTEGER
FIELD NAME AS CHARACTER
FIELD salesrep AS CHARACTER
FIELD state AS CHARACTER
FIELD city AS CHARACTER
INDEX custnum IS PRIMARY UNIQUE custnum.

DEFINE QUERY qCust FOR ttCust SCROLLING.

DEFINE BROWSE bCust QUERY qCust
DISPLAY ttCust
WITH 8 DOWN WIDTH 60.

DEFINE BUTTON hideColumn LABEL "Hide Column".
DEFINE VARIABLE cbColumns AS CHARACTER NO-UNDO LABEL "Column".

DEFINE FRAME f bCust SKIP
cbColumns VIEW-AS COMBO-BOX SIZE 15 BY 1.4
LIST-ITEM-PAIRS "custnum", 1,
"name", 2,
"salesrep", 3,
"state", 4,
"city", 5
hideColumn
WITH SIDE-LABELS THREE-D.

ON CHOOSE OF hideColumn IN FRAME f DO:
DEFINE VARIABLE hColumn AS HANDLE NO-UNDO.

IF (cbColumns:SCREEN-VALUE IN FRAME f GT "") NE TRUE THEN
LEAVE.

hColumn = BROWSE bCust:GET-BROWSE-COLUMN(INTEGER(cbColumns:SCREEN-VALUE)).
hColumn:VISIBLE = (IF hColumn:VISIBLE EQ TRUE THEN FALSE ELSE TRUE).
APPLY "VALUE-CHANGED" TO cbColumns IN FRAME f.
END.

ON VALUE-CHANGED OF cbColumns IN FRAME f DO:
DEFINE VARIABLE hColumn AS HANDLE NO-UNDO.

IF (SELF:SCREEN-VALUE GT "") NE TRUE THEN
LEAVE.

hColumn = BROWSE bCust:GET-BROWSE-COLUMN(INTEGER(SELF:SCREEN-VALUE)).
hideColumn:LABEL IN FRAME f = (IF hColumn:VISIBLE THEN "Hide Column"
ELSE "Show Column").
END.

ENABLE ALL WITH FRAME f.
OPEN QUERY qCust FOR EACH ttCust.

WAIT-FOR CLOSE OF THIS-PROCEDURE.