Consultor Eletrônico



Kbase P97815: How to add a calculated field to a Dynamic Lookups Browser
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   1/6/2006
Status: Unverified

GOAL:

How to add an calculated field to a Dynamic Lookups

GOAL:

Is it possible to add a Calculated Field to a Dynamic Lookup


FACT(s) (Environment):

Dynamics

FIX:

1. Place a lookup on a field in a viewer (just give a query and select some
fields) 2. In the initializeObject of the viewer, before the RUN SUPER, add
following lines:
SUBSCRIBE TO 'getBrowseCalcColumns':u IN THIS-PROCEDURE.
SUBSCRIBE TO 'getBrowseCalcValues':u IN THIS-PROCEDURE.
3. Add a procedure in the viewer with the name 'getBrowseCalcColumns'. This
one's for the adding of the column.
a possible example of code:
/************************************************************************/
DEFINE INPUT PARAMETER phBrowse AS HANDLE NO-UNDO.
DEFINE INPUT PARAMETER phLookup AS HANDLE NO-UNDO.
DEFINE OUTPUT PARAMETER pcCalcColumnHandles AS CHARACTER NO-UNDO. DEFINE VARIABLE vhNewColumn AS HANDLE NO-UNDO.
CASE phLookup:
WHEN h_dynlookup THEN
DO:

ASSIGN vhNewColumn = phBrowse:ADD-CALC-COLUMN("CHARACTER":U,
"x(30)":U, "":U,"Test":U, 2)
pcCalcColumnHandles = STRING(vhNewColumn).
END.
END CASE.
END PROCEDURE.
/************************************************************************/ 4. Add a procedure in the viewer with the name 'getBrowseCalcValues'. This
procedure is responsible for filling up the calculted column in the browse.
a possible example of code:
/************************************************************************/
DEFINE INPUT PARAMETER pcAllFields AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pcValueList AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER phLookup AS HANDLE NO-UNDO.
DEFINE INPUT PARAMATER pcCalcColumnHandles AS CHARACTER NO-UNDO. DEFINE VARIABLE vhCalcColumn AS HANDLE NO-UNDO.
DEFINE VARIABLE vcSomething AS CHARACTER NO-UNDO.
IF pcCalcColumnHandles = '':u THEN
RETURN. CASE phLookup:
WHEN h_dynlookup THEN
DO:
vcSomething = "Something".
ASSIGN vhCalcColumn = WIDGET-HANDLE(pcCalcColumnHandles)
vhCalcColumn:SCREEN-VALUE = vcSomething.
END.
END CASE.
END PROCEDURE.
/************************************************************************/