起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 151|回复: 3

【结】[请求]透视数据集过滤问题**

[复制链接]
发表于 2009-2-11 12:38:30 | 显示全部楼层 |阅读模式
第一种方式:
  TPivotDataSet(dsbReport.DataSet).SQLFilter := sFilter;
    if not TPivotDataSet(dsbReport.DataSet).Active then
      TPivotDataSet(dsbReport.DataSet).Open
    else
      TPivotDataSet(dsbReport.DataSet).SQLFiltered := True;
第一次打开数据集根本不按sFilter的条件过滤,第二次打开如果该条件没有数据就报地址错误。

第二种方式:
  dsbReport.DataSet.Close;
   TPivotDataSet(dsbReport.DataSet).DecisionDef.SQL := sSQL;     
   dsbReport.DataSet.Open;
这个报错更让人不可理解:"Cannot perform this operation on an open dataset” 明明前面有这句:dsbReport.DataSet.Close了,为什么还要提示不能在打开状态下进行操作??!!

我的版本是2970
回复

使用道具 举报

发表于 2009-2-11 13:55:18 | 显示全部楼层
第一种写法可能存在逻辑问题。你可以跟踪看看
设置SQLFilter 后,必须执行SQLFiltered := True;
你就留这两句测试看看
TPivotDataSet(dsbReport.DataSet).SQLFilter := sFilter;
TPivotDataSet(dsbReport.DataSet).SQLFiltered := True;

第二种方法,是在执行哪句报错呢?是给TPivotDataSet(dsbReport.DataSet).DecisionDef.SQL 这个赋值,还是dsbReport.DataSet.Open?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-11 14:35:43 | 显示全部楼层
好了,查找了一下以前的帖子,在修改SQL的时候前,取消 DocView 的 DocClassID  。结贴吧
回复 支持 反对

使用道具 举报

发表于 2009-2-11 16:08:50 | 显示全部楼层
ok
谢谢反馈
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-27 23:32 , Processed in 0.041574 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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