Kbase P27097: How to create a dynamic expandable browse
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/29/2008 |
|
Status: Verified
GOAL:
How to create a dynamic expandable browse
GOAL:
How to create a dynamic temp-table
GOAL:
how to create a dynamic query
FACT(s) (Environment):
Progress 9.x
OpenEdge 10.x
Windows
FIX:
The following code demonstrates how to create a dynamic browse, a dynamic temp-table, a dynamic query and how to set the browse's EXPANDABLE attribute of to TRUE:
DEFINE VARIABLE hTable AS HANDLE NO-UNDO.
DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.
DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hBufferField AS HANDLE NO-UNDO.
DEFINE VARIABLE hBrowse AS HANDLE NO-UNDO.
DEFINE VARIABLE hCol AS HANDLE NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE j AS INTEGER NO-UNDO.
CREATE WIDGET-POOL.
DEFINE FRAME f
WITH SIZE 80 BY 20.
/************ Create a dynamic temp-table object **********/
CREATE TEMP-TABLE hTable.
hTable:ADD-NEW-FIELD('Name','CHARACTER',0,?,'').
hTable:ADD-NEW-FIELD("Address","char",0,?,"").
hTable:TEMP-TABLE-PREPARE('guru').
/************** Create the dynamic query object ************/
CREATE QUERY hQuery.
CREATE BUFFER hBuffer FOR TABLE hTable:DEFAULT-BUFFER-HANDLE.
hQuery:SET-BUFFERS(hBuffer).
hQuery:QUERY-PREPARE('FOR EACH guru no-lock').
/************* Create the dynamic browse widget ***********/
CREATE BROWSE hBrowse
ASSIGN QUERY = hQuery
FRAME = FRAME f:HANDLE
VISIBLE = NO
SENSITIVE = YES
X = 2
Y = 2
WIDTH = 70
DOWN = 5.
/************ Create the dynamic browse columns ***********/
DO i = 1 TO hBuffer:NUM-FIELDS:
hBufferField = hBuffer:BUFFER-FIELD(i).
hCol = hBrowse:ADD-LIKE-COLUMN(hBufferField).
END.
/*************** Create the temp-table records ************/
DO j = 1 TO 10:
hBuffer:BUFFER-CREATE().
DO i = 1 TO hBuffer:NUM-FIELDS:
hBufferField = hBuffer:BUFFER-FIELD(i).
hBufferField:BUFFER-VALUE = hBufferField:NAME + ' ' + STRING(j).
END.
END.
/** Set the browse widget's EXPANDABLE attribute to TRUE **/
/*Here I make the BROWSE EXPANDABLE !!!!!*/
hBrowse:EXPANDABLE = YES.
hBrowse:VISIBLE = YES.
hQuery:QUERY-OPEN.
WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.