关于过滤后记录的编辑问题(60分)

  • 主题发起人 主题发起人 jwf
  • 开始时间 开始时间
J

jwf

Unregistered / Unconfirmed
GUEST, unregistred user!
FilterButton按钮OnClick后,在InforPower的TwwDBGrid控件显示出
用OnFilterRecord事件过滤后的记录.现在要编辑过滤后的记录,但当
我编辑完一条记录后,由于它已不符合OnFilterRecord事件定义的条
件,所以在TwwDBGrid控件中就不显示了.现在我想让它还在TwwDBGrid控件
中显示,等编辑完所有过滤的记录(这些记录编辑完也要显示在TwwDBGrid),
按PrintButtonClick,打印出来后才不显示在TwwDBGrid中.请问有何高招?
 
编辑记录设置 table1.Filtered :=false;
打印后设置 table1.Filtered :=true;
 
1.做一个与table结构相同的temptable
2.将符合过滤条件的记录导入temptable,同时将datasource的dataset改为temptable
3.编辑temptable
4.temptable导入table,晴空temptable,同时将datasource的dataset改为table
5.打印table中的符合过滤条件的记录

 
To:bobby_ym
能否具体点,最好写一段代码。当table。filtered:=false时,所有记录又都冒出来了。
To:shangjintong
能否有更简单的捷径?我最怕数据倒来倒去了。
 
添加一个Table和一个DataSource,DataSource指向Table,用Location将要修改的过滤记录
在Table中定位,然后Table.Edit。
 
pos之前必须将Filtered置为True
 
shangjintong 的意见是正确的,这种情况只能用临时表来解决。不过可以加以改进避免用
table倒数据,即使用公文包模式,具体做法是:在窗体中加入Ttable,Tdatasetprovider,
Tdatasource,TClientdataset,table照样连好数据库,做好过滤,datasetprovider的
dataset属性设置为table,datasource指向clientdataset,这样你就可以直接对
clientdataset编辑了,编辑完之后,记得更新table,语句为clientdataset1.applyupdates(-1);
然后在你的printbutton最后写上datasource1.dataset:=table1,当然,还有一些细节问题
如:如何清空clientdataset等,你自己在琢磨琢磨,我就不多说,免得大家说我罗嗦。
 
多人接受答案了。
 
后退
顶部