单I”D的值不确定而出现错误。()主表中的“3客户I、‘D”‘运货商I”D,从表中的“品I”产D等字段,不应该让用户直接输入字段值,
一
方面这些字段值大多是一些无规则的数字编码,不易记忆,另…方面直接输入容易出错,导致因违反
主从表之间的数据参照完整性而无法保存记录。2解决问题的关键
第一,要解决打开大数据量表速度慢的问题,首先想到的是使用非数据感知组件进行数据输入,然
后通过ACmmad组件执行SL命令来实现数据的录入、修改与删除等操作,这样可避免打开整张DOonQ
表,从而大大提高数据处理速度。但是,Dlh供的主从表数据关联功能是基于数据感知控件的,对epi提于非数据感知控件,要实现主从表关联,必须通过编程实现,比较繁琐。如何充分利用Dlh提供的主从表数据关联功能从而尽量减少代码编写又能避免打开整个表?答案eip
是:主从表均使用ADOurQey组件代替ATbe组件。DOal第二个问题,只要强制用户先保存主表记录,然后才能输入子表记录。
第三个问题,可以通过DBokpoooLouCmbBx组件来实现,比如:用户通过DLouCmbBx选Bokpooo择客户名称,但实际保存到“订单”中的则是客户I表D。
3设计思路
用ADOQey组件实现主从表关联有两个关键点:一是获取从表数据的SltSuree-QL命令必须带cWhree条件子句并提供一个参数,而该参数正是主表的主关键字“单I”订D;二是对应从表的ADOurQey
toreaaaore组件ADOQeyDurDMX,其DaSuc属性必须指定为主表所对应的那个DtSuc组件
_
DaaoctSure
_
D见表1。D(1表lADurOQey组件属性设置
另外,添加主表记录时,因为须调用ADur件的ApnOQey组ped方法,而前提条件是ADurOQey必
须处于打开状态。为达此目的,可以使用如下技巧:
()给“eetfm订单”1Slrco增加一个条件:“ee订单I=”whrd0,而“单I=”订d0的记录实际是不存在
的。这样,当打开ADOurD,便产生一个我们所需的空的数据集。QeyD时
.
LokTpe()对于减少
网络负载,可以将从表对应的A2DOQeyDDMX组件的cy属性设置为ur
.
lahpiscttOtt,使更新的数据在客户端缓存,当用户需要更新的时候再一次性提交到数据库服务器。Bcmii
()对于录入界面的设计,主表采用DBdt与DLouCmbBx等数据感知控件,子表采用3EiBokpooo
DGiBrd控件,这样的设计既直观又非常符合用户的录入习惯(图2。见)()于从表“4对订单明细”的“品I字段录入,可以通过对应的A中产D”DOQeyDDMXur组件的“字段
.
编辑器”创建一个Louokp字段“品名称”产,来实现从下拉
列表中选择产品名称这样一种既直观又方便的方式来录入,而实际保存到“单明细”的则是“订中订单I。D”
4具体实现解决了以上问题之后,以“订单”订单明细”与“表数据录入为例,对主从表的录入功能进行具体实现,
2.0
.
本文共4页,欲获取全文,请点击链接http://www.cqvip.com/QK/85086X/201001/34090510.html,并