Consultor Eletrônico



Kbase 20760: ADM2: How to Change Column Labels / Dynamic SmartDataBrowser (SDB)
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   16/10/2008
Status: Verified

GOAL:

How to change the column labels on a Dynamic SmartDataBrowser (SDB)

FACT(s) (Environment):

Progress ADM2
Progress 9.x

FIX:

DEFINE VARIABLE hColumn AS HANDLE NO-UNDO.
DEFINE VARIABLE cDisplayedFields AS CHARACTER NO-UNDO.
DEFINE VARIABLE cFieldHandles AS CHARACTER NO-UNDO.
DEFINE VARIABLE cCurColLabel AS CHARACTER NO-UNDO.
DEFINE VARIABLE cNewColLabel AS CHARACTER NO-UNDO.
DEFINE VARIABLE iCurColLabelFont AS INTEGER NO-UNDO.
DEFINE VARIABLE iCurColWidthPixels AS INTEGER NO-UNDO.
DEFINE VARIABLE iNewColWidthPixels AS INTEGER NO-UNDO.

/* Find The Handle Of The Column Whose Label We Want to Change */

ASSIGN cDisplayedFields = DYNAMIC-FUNCTION('getDisplayedFields' IN h_dynbrowser)
cFieldHandles = DYNAMIC-FUNCTION('getFieldHandles' IN h_dynbrowser)
hColumn = WIDGET-HANDLE(ENTRY(LOOKUP('Cust-Num',
cDisplayedFields),cFieldHandles)).

/* Save The Columns Attributes So We Can Properly Resize It */

ASSIGN iCurColLabelFont = hColumn:LABEL-FONT
iCurColWidthPixels = hColumn:WIDTH-PIXELS
cCurColLabel = hColumn:LABEL.

/* Calculate The Needed Column Width For The New Label */

ASSIGN cNewColLabel = 'Some New Label'
iNewColWidthPixels = FONT-TABLE:GET-TEXT-WIDTH-PIXELS(
cNewColLabel,iCurColLabelFont).

/* Change Column Label And Set Proper Column Size */

ASSIGN hColumn:LABEL = cNewColLabel
hColumn:WIDTH-PIXELS = MAXIMUM(iCurColWidthPixels,
iNewColWidthPixels).

/* Reopen The Query */

DYNAMIC-FUNCTION('openQuery' IN h_dcustomer).