如果主表不保存,从表肯定不能保存。
如果主表保存了,而从表不保存也是不对的。不能只有出库单号,而没有具体的东西。
这样的话,我现在只能用普通Grid,但数据显示、保存等都需手工处理,好麻烦但如果用DBGrid,又会出现问题:万一主表保存了,然后退出,那可怎么办啊。
在显示一条主记录时,必须控制从表的Filter,可新增时从表的Filter怎么控制啊,也许主表的ID还没有确定下来。
如果主表保存了,而从表不保存也是不对的。不能只有出库单号,而没有具体的东西。
这样的话,我现在只能用普通Grid,但数据显示、保存等都需手工处理,好麻烦但如果用DBGrid,又会出现问题:万一主表保存了,然后退出,那可怎么办啊。
在显示一条主记录时,必须控制从表的Filter,可新增时从表的Filter怎么控制啊,也许主表的ID还没有确定下来。
///////////////////////////////
这个很简单。但我的问题是,在主表没有保存之前,怎么控制从表的Filter,让DBGrid只显示新增的内容,而不显示以前的内容?如果从录入开始整个放在一个交易里,当用户不能及时保存提交时交易时间过长,也会占用很多资源。
有点奇怪
如果用SQLServer做后台,Table控件会提示莫名其妙的错误,比如不能处理定义为非空或者Identity的默认字段,所以我用TQuery。但TQuery我不知道怎么定义主从关系 :(
方法一:设置detailquery的datasource为datasource1
同时在detailquery的Sql中写
select * from detail where key=:key
方法二:在masterquery的Afterscroll事件中写:
with detailquery do
begin
close;
sql.clear;
sql.add('select * from detail where key='''+masterquery.fieldbyname('key').asstring+'''');
open;end;
用动态SQL确实能解决Filter解决不了的问题 :)