LOCAL oForm
oForm = CREATEOBJECT("clsMultSourceGridForm")
oForm.SHOW()
READ EVENTS
DEFINE CLASS clsMultSourceGridForm AS FORM
DOCREATE = .T.
AUTOCENTER = .T.
DATASESSION = 2
WIDTH = 800
HEIGHT = 600
CAPTION = "Multi recordsource grid"
ADD OBJECT lblMultiSourceGrid AS LABEL WITH ;
FONTNAME = "Times New Roman", ;
FONTSIZE = 12, ;
LEFT = 10, ;
TOP = 10, ;
CAPTION = "Multi Source Grid", ;
AUTOSIZE = .T.
ADD OBJECT grdMultiSource AS GRID WITH ;
FONTNAME = "Times New Roman", ;
LEFT = 10, ;
TOP = THIS.lblMultiSourceGrid.TOP + THIS.lblMultiSourceGrid.HEIGHT + 4, ;
HEIGHT = THIS.HEIGHT - 348, ;
WIDTH = THIS.WIDTH - 20, ;
DELETEMARK = .F., ;
COLUMNCOUNT = 6, ;
column1.CONTROLSOURCE = "Orders.Order_Id", ;
column2.CONTROLSOURCE = "Orders.Order_Date", ;
column3.CONTROLSOURCE = "Orders.Order_Amt", ;
column4.CONTROLSOURCE = "Customer.Cust_Id", ;
column5.CONTROLSOURCE = "Customer.Company", ;
column6.CONTROLSOURCE = "padr(allt(Employee.Emp_Id),6,' ')+allt(Employee.First_Name)+' '+allt(Employee.Last_Name)"
ADD OBJECT lblOrderItems AS LABEL WITH ;
FONTNAME = "Times New Roman", ;
FONTSIZE = 12, ;
LEFT = 10, ;
TOP = THIS.grdMultiSource.TOP + THIS.grdMultiSource.HEIGHT + 16, ;
CAPTION = "Order Items", ;
AUTOSIZE = .T.
ADD OBJECT grdOrderItems AS GRID WITH ;
FONTNAME = "Times New Roman", ;
LEFT = 10, ;
TOP = THIS.lblOrderItems.TOP + THIS.lblOrderItems.HEIGHT + 4, ;
HEIGHT = 130, ;
WIDTH = THIS.WIDTH - 20, ;
RECORDSOURCE = "OrdItems", ;
DELETEMARK = .F.
ADD OBJECT lblProducts AS LABEL WITH ;
FONTNAME = "Times New Roman", ;
FONTSIZE = 12, ;
LEFT = 10, ;
TOP = THIS.grdOrderItems.TOP + THIS.grdOrderItems.HEIGHT + 16, ;
CAPTION = "Products", ;
AUTOSIZE = .T.
ADD OBJECT grdProducts AS GRID WITH ;
FONTNAME = "Times New Roman", ;
LEFT = 10, ;
TOP = THIS.lblProducts.TOP + THIS.lblProducts.HEIGHT + 4, ;
HEIGHT = 56, ;
WIDTH = THIS.WIDTH - 20, ;
RECORDSOURCE = "Products", ;
SCROLLBARS = 1, ;
DELETEMARK = .F.
PROCEDURE grdMultiSource.INIT
WITH THIS
.column1.header1.CAPTION = "Order ID"
.column2.header1.CAPTION = "Order Date"
.column3.header1.CAPTION = "Order Amt"
.column4.header1.CAPTION = "Customer ID"
.column5.WIDTH = 200
.column5.header1.CAPTION = "Customer Name"
.column6.WIDTH = 220
.column6.header1.CAPTION = "Emp_Id & First_Name & Last_Name"
ENDWITH
ENDPROC
PROCEDURE LOAD
SET CENT ON
SET TALK OFF
SET DELETED ON
OPEN DATABASE _samples+"\data\testdata"
USE Orders ORDER Order_Id IN 0 SHARED
USE Customer ORDER Cust_Id IN 0 SHARED
USE Employee ORDER Emp_Id IN 0 SHARED
USE OrdItems ORDER Order_Id IN 0 SHARED
USE Products ORDER Product_Id IN 0 SHARED
SELECT Orders
SET RELATION TO Cust_Id INTO Customer ADDI
SET RELATION TO Emp_Id INTO Employee ADDI
SET RELATION TO Order_Id INTO OrdItems ADDIT
SELECT OrdItems
SET RELATION TO Product_Id INTO Products ADDIT
SELECT Orders
ENDPROC
PROCEDURE DESTROY
CLEAR EVENTS
CLOSE DATABASE
ENDPROC
ENDDEFINE