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.