善用SQLJoinTableBuilder

前面提到,DataTable和Table都有Fill方法,可以从另一个表加载数据。
Fill使用的是SQL语句,如果遇到较为复杂的需求,例如同时从多个表中提取列加载,普通用户可能无法应付。
不过不用担心,有了SQLJoinTableBuilder,不管多复杂的需求,都可以自动生成SQL语句供你调用。

假定有三个表:

希望从提取产品表的产品名称列、客户表的客户名称列,订单表的所有列,并利用订单表的数量、单价、折扣计算出金额,加载到某窗口的Table控件中,
假定这三个表来自于一个名为"Sale"的外部数据源,代码为:

Dim jb As New SQLJoinTableBuilder("查询表1","订单")
jb
.ConnectionName = "Sale"
jb
.AddTable("订单","产品ID","产品","产品ID")
jb
.AddTable("订单", "客户ID","客户","客户ID")
jb
.AddCols("产品名称","客户名称","日期", "数量","单价")
jb
.AddExp("金额","数量 * 单价 * (1-折扣)")
Tables
("窗口1_Table1").Fill(jb.BuildSql,"Sale",True)

提示:由于数据来自于多个数据表,所以Fill的最后一个参数必须设置为True。


本页地址:http://www.foxtable.com/webhelp/topics/2336.htm