Consultor Eletrônico



Kbase P144638: 4GL/ABL:  How to create a dynamic FRAME widget?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   13/04/2009
Status: Unverified

GOAL:

4GL/ABL: How to create a dynamic FRAME widget?

GOAL:

How to add dynamic FILL-IN widgets to a dynamic FRAME widget?

GOAL:

How to assign the DATA-TYPE and FORMAT for dynamic FILL-IN widgets?

GOAL:

How to assign the SCREEN-VALUE attributes to dynamic FILL-IN widgets?

GOAL:

How to create an ENTRY event TRIGGER for dynamic FILL-IN widgets?

GOAL:

How to display the STRING-VALUE attribute of a dynamic Buffer-Field object handle using a dynamic FILL-IN widget and the format expression defined by the ADD-NEW-FIELD() method?

FACT(s) (Environment):

All Supported Operating Systems
Progress 9.x
OpenEdge 10.x

FIX:

The following sample code demonstrates how to create a dynamic FRAME widget, add dynamic FILL-IN widgets to a dynamic FRAME widget, assign the DATA-TYPE and FORMAT for dynamic FILL-IN widgets, assign the SCREEN-VALUE attributes to dynamic FILL-IN widgets, create an ENTRY event trigger for dynamic FILL-IN widgets and display the STRING-VALUE attribute of a dynamic Buffer-Field object handle using a dynamic FILL-IN widget and the format expression defined by the ADD-NEW-FIELD() method:

DEFINE VARIABLE hDynamicFrame AS WIDGET-HANDLE.
DEFINE VARIABLE hDynamicTempTable AS HANDLE NO-UNDO.
DEFINE VARIABLE hTempTableBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hBufferFieldObject AS HANDLE NO-UNDO.
DEFINE VARIABLE hDynamicFillin AS HANDLE NO-UNDO.
CREATE TEMP-TABLE hDynamicTempTable.
hDynamicTempTable:ADD-NEW-FIELD("x","dec",0,"$999,999,999.999").
hDynamicTempTable:TEMP-TABLE-PREPARE("tt").
hTempTableBuffer = hDynamicTempTable:DEFAULT-BUFFER-HANDLE.
hBufferFieldObject = hTempTableBuffer:BUFFER-FIELD(1).
hTempTableBuffer:BUFFER-CREATE().
hBufferFieldObject:BUFFER-VALUE = 123456789.99.
/* Create a dynamic FRAME widget */
CREATE FRAME hDynamicFrame
ASSIGN
WIDTH-CHARS = 50
HEIGHT-CHARS = 28
SENSITIVE = YES.
VIEW hDynamicFrame.
/* Create a dynamic FILL-IN widget and add it to the dynamic frame */
CREATE FILL-IN hDynamicFillin
ASSIGN
FRAME = hDynamicFrame
/* Assign the DATA-TYPE and FORMAT of the dynamic FILL-IN widget */
DATA-TYPE = hBufferFieldObject:DATA-TYPE
FORMAT = hBufferFieldObject:FORMAT
SENSITIVE = TRUE
VISIBLE = TRUE
/* Create an ENTRY trigger for the dynamic FILL-IN widget */
TRIGGERS:
ON ENTRY PERSISTENT RUN AssignStringValue.
END TRIGGERS.
VIEW hDynamicFillin.
WAIT-FOR GO OF hDynamicFrame.
/* Assign the SCREEN-VALUE attributes of the dynamic FILL-IN widget */
PROCEDURE AssignStringValue:
hDynamicFillin:SCREEN-VALUE = hBufferFieldObject:STRING-VALUE.
END PROCEDURE.