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.
/************************************************************************/