Consultor Eletrônico



Kbase 19094: Sample Code to Create Dynamic Browser
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   15/10/2008
Status: Verified

GOAL:

Sample Code to Create Dynamic Browser

GOAL:

How to Create Dynamic Browser?

FACT(s) (Environment):

Progress 9.x
OpenEdge 10.x

FIX:


DEFINE VARIABLE cBaseQuery AS CHARACTER NO-UNDO INITIAL "FOR EACH Customer NO-LOCK".
DEFINE VARIABLE cDetailQuery AS CHARACTER NO-UNDO INITIAL "FOR EACH Customer NO-LOCK WHERE Cust-Num = &1, EACH Order OF Customer NO-LOCK".
DEFINE VARIABLE hBrowse AS HANDLE NO-UNDO.
DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.
DEFINE VARIABLE hCustomerBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hOrderBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hButton AS HANDLE NO-UNDO.

FORM WITH FRAME X WIDTH 100 TITLE "BROWSE" 20 DOWN.

CREATE BUFFER hCustomerBuffer FOR TABLE "Customer".

CREATE QUERY hQuery.

hQuery:SET-BUFFERS(hCustomerBuffer).
hQuery:QUERY-PREPARE(cBaseQuery).
hQuery:QUERY-OPEN.

CREATE BROWSE hBrowse
ASSIGN X = 5
Y = 10
WIDTH = 80
DOWN = 10
QUERY = hQuery
FRAME = FRAME X:HANDLE
READ-ONLY = FALSE
SENSITIVE = TRUE
FONT = 2.

CREATE BUTTON hButton
ASSIGN X = 35
Y = 340
WIDTH = 40
FRAME = FRAME x:handle
SENSITIVE = TRUE
LABEL = "Order OF customer"
FONT = 2
TRIGGERS:
ON CHOOSE
DO:
CREATE BUFFER hOrderBuffer FOR TABLE "order".

hQuery:QUERY-CLOSE().
hQuery:ADD-BUFFER(hOrderBuffer).
hQuery:QUERY-PREPARE(SUBSTITUTE(cDetailQuery, hCustomerBuffer:BUFFER-FIELD("Cust-Num"):BUFFER-VALUE)).
hQuery:QUERY-OPEN.

hBrowse:QUERY = hQuery.
hBrowse:ADD-LIKE-COLUMN("Customer.Cust-Num").
hBrowse:ADD-LIKE-COLUMN("Customer.Name").
hBrowse:ADD-LIKE-COLUMN("Order.Order-Num").
hBrowse:ADD-LIKE-COLUMN("Order.Order-Date").
hBrowse:WIDTH = 75.

SELF:SENSITIVE = FALSE.
END.
END TRIGGERS.

hBrowse:ADD-LIKE-COLUMN("Customer.Cust-Num").
hBrowse:ADD-LIKE-COLUMN("Customer.Name").

VIEW FRAME X.

WAIT-FOR CLOSE OF THIS-PROCEDURE.

DELETE OBJECT hBrowse.
DELETE OBJECT hQuery.
DELETE OBJECT hCustomerBuffer.
DELETE OBJECT hOrderBuffer.