起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 186|回复: 9

【结帖】数据过滤问题**

[复制链接]
发表于 2007-11-25 16:32:05 | 显示全部楼层 |阅读模式
有这样一个需求:打开一功能时,数据默认是本站本月的数据,我用的业务信息策略中的默认过滤,已经实现,但是当用
DataNavigator中的过滤进行过滤的时候,出现“sql条件过滤窗体”,怎样限制该窗体的出现?急!!!!
回复

使用道具 举报

 楼主| 发表于 2007-11-26 08:30:14 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2007-11-26 08:41:53 | 显示全部楼层
如果不想使用望远镜就把DataNavigator的VisibleButtons的nbFilter的属性去掉就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-26 08:51:18 | 显示全部楼层
要求必须用nbfilter,因为这个功能是一个查询功能
回复 支持 反对

使用道具 举报

发表于 2007-11-26 09:06:32 | 显示全部楼层
那就不明白1楼说得是怎么回事?能在描述一下么?
点击望远镜探出来的就是“Sql构造窗体”的
回复 支持 反对

使用道具 举报

发表于 2007-11-26 09:08:35 | 显示全部楼层
那你想在DataNavigator中的过滤进行过滤的时候,出现啥窗体呢?是看到的 简单SQL的过滤窗体吗?那应该是你定义的过滤条件,简单SQL窗体 解析不了了,然后就弹出sql条件过滤窗体了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-26 09:29:34 | 显示全部楼层
我现在又换了一种方法:不用业务信息的默认过滤了。
在窗体的formcreat中加入以下过滤代码:默认是本站本月的数据
lContextCurrent := TContextCurrent.Create(Context);
lStr:=' year(sj)='+''''+yearstr+''''+'and month(sj)='+''''+monstr+''''+'and zm='''+lContextCurrent.dept.DisplayName+'''';
  with TSQLDataSet(dlsbxsjl.DataSet) do
  begin
    SQLFiltered := False;
    SQLFilter := lStr;
    SQLFiltered := True;
  end;
  dlsbxsjl.DataSet.Open;
在DataNavigator的DataNavigatorBeforeAction中加入代码:
case (Sender as TBizDataSetAction).ID of
BizActnConsts.ActionDataSetfilter:
begin
dlsbxsjl.DataSet.Close;
  with TSQLDataSet(dlsbxsjl.DataSet) do
  begin
  //if accept then  Accept := false;
    SQLFiltered := False;
    SQLFilter := lStr;
    SQLFiltered := True;
  end;
  dlsbxsjl.DataSet.Open;
  Accept := true;
end;
这样实现的是点击过滤时,过滤的数据和sql条件构造窗体一块出现,我所要的是点击过滤时,当输入过滤条件点击确定的时候,解除过滤条件并且查询出所要的数据。急!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-26 09:51:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2007-11-27 14:56:16 | 显示全部楼层
点击望远镜的时候弹出的就是sql条件构造窗体,如果楼主想实现其它的过滤条件只能自己添加按钮了。
回复 支持 反对

使用道具 举报

发表于 2007-12-3 14:35:21 | 显示全部楼层
楼主,还有问题吗?
没有就结帖了
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-1 10:58 , Processed in 0.043342 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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