lookup和计算列的问题
a表
product totalQty
产品A 100
产品B 200
b表
Id customer product Qty
1 客户1 产品A 10
2 客户2 产品A 20
DBGridEh中要显示成如下
Id customer product Qty balQty(剩余数量)
5 客户3 产品A 5 50
5 客户3 产品A 15 50
5 客户3 产品B 30 170
a,b表是数据库中的,DBGridEh显示的是没存入数据库,点保存时才批量更新
要怎么实现界面上的:产品A的balQty(50)=a表中totalQty(100)-b表中Qty和(10+20)-界面上的产品A的Qty(5+15)???
请高手帮忙....
-----------------------------------------------------------
P.S
我现在只能实现成如下:
产品A的balQty(65)=a表中totalQty(100)-b表中Qty和(10+20)-界面上的产品A的Qty(5)
产品A的balQty(55)=a表中totalQty(100)-b表中Qty和(10+20)-界面上的产品A的Qty(15)
Id customer product Qty balQty(剩余数量)
5 客户3 产品A 5 65
5 客户3 产品A 15 55
5 客户3 产品B 30 170
DBGridEh的数据源为ADOQueryB.SQL为
select customer,product,Qty from b
lookup数据源为ADOQueryA.SQL为
select a.product,a.totalqty-sum(b.qty) as TQty from a left join b on a.product=b.product
group by a.product
我在ADOQueryb中添加lookup关联到ADOQueryA表返回TQty的字段:TQty
在ADOQueryb中添加一个计算列:balQty
在ADOQueryb的CalcFields事件中
ADOQueryb.FieldByName('balQty').asinteger:=ADOQueryb.FieldByName('TQty').asinteger-ADOQueryb.FieldByName('Qty').asinteger;