起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 353|回复: 12

【结贴】时间段过滤

[复制链接]
发表于 2010-3-12 10:25:20 | 显示全部楼层 |阅读模式
我想实现打开功能时默认查询出当前日期前30天到当前日期的数据,请问如何写代码?或者如何实现?
回复

使用道具 举报

发表于 2010-3-12 10:41:38 | 显示全部楼层
把自动打开数据集的属性都去掉,让其不自动打开数据集。
然后再功能主窗体的create事件上用sqlfilter设置sql条件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-12 10:58:49 | 显示全部楼层
取这个时间段的代码怎么写?
回复 支持 反对

使用道具 举报

发表于 2010-3-12 11:05:44 | 显示全部楼层
你先把sql语句造出来。在查询分析器试验好。然后把where部分赋值给sqlfilter
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-12 11:37:11 | 显示全部楼层
我在业务信息-数据集条件的地方设置了:KmResult.日期 >= getdate() - 90,打开数据集时,条件生效了,把这个值赋给sqlfilter后没有生效
能不能麻烦你们在解答问题的时候尽量详细一点,初学,理解起来有点困难。
回复 支持 反对

使用道具 举报

发表于 2010-3-12 11:43:52 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-12 11:57:22 | 显示全部楼层
我也是这样写的,刚才测试出已经生效了。
不过被另一个问题影响,所以没看出来
这数据集的数据量很大,我把数据集条件里的SQL条件取消后,窗口打不开(几分钟都没有反应,估计是因为这个代码是创建窗体时生效,但是创建窗体的同时要打开数据集)
这个怎么办?
回复 支持 反对

使用道具 举报

发表于 2010-3-12 13:11:39 | 显示全部楼层
No.2

把自动打开数据集的属性都去掉,让其不自动打开数据集。
或者你在信息的create事件里面赋值那个数据集的sqlfilter:='1<>1'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-12 13:15:36 | 显示全部楼层
你说这个都做了,

代码:
procedure TMainForm.BizFormCreate(Sender: TObject);
begin
//  DataSetBroker1.DataSet.Close ;
  TBizDataSet(DataSetBroker1.DataSet)
  DataSetBroker1.DataSet.Open ;
  TBizDataSet(DataSetBroker1.DataSet).SQLFiltered :=false;
  TBizDataSet(DataSetBroker1.DataSet).SQLFilter := '1 = 1';
  TBizDataSet(DataSetBroker1.DataSet).SQlFilter := 'KmResult.Fdate >= getdate() - 80';
  TBizDataSet(DataSetBroker1.DataSet).SQLFiltered :=true;

end;

截图

未命名.jpg

29.66 KB, 下载次数: 115

回复 支持 反对

使用道具 举报

发表于 2010-3-12 13:26:19 | 显示全部楼层
你在信息的create事件   info...
你要检查自动打开,需要检查4个地方。http://bbs.justep.com/forum.php?mod=viewthread&tid=25826
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-11 01:37 , Processed in 0.046196 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表