急用,请各位帮忙!!TclientDataset 中 Lookup字段 显示,增加,修改,删除,定位问题!! ( 积分: 100 )

  • 主题发起人 主题发起人 intime
  • 开始时间 开始时间
I

intime

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一Cientdataset,使用合同表,其中因为有客户编码和业务员编码,又有其它两个表客户表和员工表,现在需要根据客户名称及业务员名称进行显示,Filter,定位和增加修改删除。
1.使用Lookup字段(及在客户端CDS中对两个编码加个LOOKUP字段),可以显示,增加,修改,删除但不能进行定位及Filter操作且时间太长(需要打开两表)
2.将Lookup改为FieldType改为fkInternalCalc 并在OnTableCalc添以下代码
cdscompact.FieldByName('厂商名称').Value:=cdsFactory.Lookup('厂商编码', cdscompact.FieldByName('厂商编码').AsString,'厂商名称');
可以全部进行操作但打开时间更长。
3.在服务器端将SQL改为
SELECT Sale_Compact.*, Share_Factory.厂商名称
FROM Sale_Compact LEFT OUTER JOIN
Share_Factory ON Sale_Compact.厂商编码 = Share_Factory.厂商编码
可以Filter但插入不出错,更新出错。因为Compact表中无真实的厂商名称字段
现已经小驴技穷。望大家多多帮忙!!!重谢!!
 
我有一Cientdataset,使用合同表,其中因为有客户编码和业务员编码,又有其它两个表客户表和员工表,现在需要根据客户名称及业务员名称进行显示,Filter,定位和增加修改删除。
1.使用Lookup字段(及在客户端CDS中对两个编码加个LOOKUP字段),可以显示,增加,修改,删除但不能进行定位及Filter操作且时间太长(需要打开两表)
2.将Lookup改为FieldType改为fkInternalCalc 并在OnTableCalc添以下代码
cdscompact.FieldByName('厂商名称').Value:=cdsFactory.Lookup('厂商编码', cdscompact.FieldByName('厂商编码').AsString,'厂商名称');
可以全部进行操作但打开时间更长。
3.在服务器端将SQL改为
SELECT Sale_Compact.*, Share_Factory.厂商名称
FROM Sale_Compact LEFT OUTER JOIN
Share_Factory ON Sale_Compact.厂商编码 = Share_Factory.厂商编码
可以Filter但插入不出错,更新出错。因为Compact表中无真实的厂商名称字段
现已经小驴技穷。望大家多多帮忙!!!重谢!!
 
我在李伟的书中看到过关于多表更新的问题(Delphi5.X ADO_MTS_COM+高级程序设计篇 第三章,第一节),3中用ADO更新可以。
 
你的方法俺没有试过,
但是楼上这位仁兄说的
《Delphi5.X ADO_MTS_COM+高级程序设计篇 》
我有电子版,
如果需要可以给你看看
QQ236309574,
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部