起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 491|回复: 15

【结】关于透视数据集对数据过滤的问题[问题]**

[复制链接]
发表于 2008-3-22 16:32:25 | 显示全部楼层 |阅读模式
我需要根据选择的条件(点击树形数据)对数据进行过滤,通过透视数据集展现。过滤代码如下:
procedure TSJWG1.MDDataTreeView1Click(Sender: TObject);
.........
  sql1:='.......' ;
  TPivotDataSet(DSSECTIONLIMIT_TS.dataSet).SQLFilter:=sql1;
  TPivotDataSet(DSSECTIONLIMIT_TS.dataSet).SQLFiltered:=true;
end;
遇到这样的问题:
    对过滤后透视数据集中的数据进行修改保存后,再进行过滤(点击树形数据)时报错,
“运行稳定限额数据录入功能的时候发生异常:字段“Field_2_LIMIT_NEGATIVE”不存在。”,如果不对透视数据集修改保存,就不会报错。如何解决这个问题?
回复

使用道具 举报

发表于 2008-3-24 09:01:13 | 显示全部楼层
你这样不要用SQLFilter,直接修改透视数据集的SQL.text属性(在修改前Close,修改后open)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-24 09:40:55 | 显示全部楼层

关于透视数据集对数据过滤的问题

我需要根据选择的条件(点击树形数据)对数据进行过滤,通过透视数据集展现。过滤代码如下:
procedure TSJWG1.MDDataTreeView1Click(Sender: TObject);
.........
  sql1:='.......' ;
  TPivotDataSet(DSSECTIONLIMIT_TS.dataSet).SQLFilter:=sql1;
  TPivotDataSet(DSSECTIONLIMIT_TS.dataSet).SQLFiltered:=true;
end;
遇到这样的问题:
    对过滤后透视数据集中的数据进行修改保存后,再进行过滤(点击树形数据)时报错,
“运行稳定限额数据录入功能的时候发生异常:字段“Field_2_LIMIT_NEGATIVE”不存在。”,如果不对透视数据集修改保存,就不会报错。如何解决这个问题?

2.gif

9.39 KB, 下载次数: 208

回复 支持 反对

使用道具 举报

发表于 2008-3-24 09:55:32 | 显示全部楼层
看2楼,一个问题,请楼主不要开多个帖子,这样便于你我的沟通,如果有啥补充的,可以直接跟原帖
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-24 11:56:57 | 显示全部楼层

还是有问题

首先谢谢您的帮助!
您的建议是对透视数据集的过滤做这样的改动吗?
  DSSECTIONLIMIT_TS.dataSet.Close;
  TPivotDataSet(DSSECTIONLIMIT_TS.dataSet).DecisionDef.SQL:=sql1;
  DSSECTIONLIMIT_TS.dataSet.Open;

程序运行的时候报这样的错误

31.gif

7.32 KB, 下载次数: 202

回复 支持 反对

使用道具 举报

发表于 2008-3-24 12:17:33 | 显示全部楼层
1、5楼在错误在执行哪句报错的?
2、sql1 这是一个啥,是一个SQL语句吧,应该是TPivotDataSet(DSSECTIONLIMIT_TS.dataSet).DecisionDef.SQL.text:=sql1;
回复 支持 反对

使用道具 举报

发表于 2008-3-28 09:29:18 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 10:07:33 | 显示全部楼层

新的问题

上面的问题解决了,谢谢!
现在遇到新的问题,简单描述一下
在透视数据集中,“设备运行状况”为行维,“断面名称”为列维,“正方向限额”“反方向限额”为数据项
问题:
   1.现在需要控制行维与列维的显示顺序,怎么写代码?例如我需要让“川渝断面”显示在前面(已经给了这些“断面名称”的顺序了)
   2.新增记录时,还需要插入除上述字段以外的字段,该如何写代码?

1.gif

9.12 KB, 下载次数: 201

回复 支持 反对

使用道具 举报

发表于 2008-3-28 10:47:00 | 显示全部楼层
1、  1.现在需要控制行维与列维的显示顺序,怎么写代码?例如我需要让“川渝断面”显示在前面(已经给了这些“断面名称”的顺序了)
行维,可以直接排序
列维是根据列维的实际值自己从小到大的排序,如果要排序只能从实际值进行处理。

2.新增记录时,还需要插入除上述字段以外的字段,该如何写代码?
请问你增加的啥记录,你看展示的DataGrid,直接在格子上写值就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 11:59:32 | 显示全部楼层

[问题]

透视数据集连接的原表如图所示:
   1.现在需要根据“运行状况顺序”来显示记录的顺序,即“正常方式”作为第一条记录来显示,断面要根据“断面顺序”中给定的顺序在列中显示,如何实现?不知我清楚了没
   2.原表中还有像“记录ID”、“所属表格ID”等域,在透视数据集中没有显示体现,但在透视数据集新增记录保存时我需要插入这些数据(数据已经知道),如何实现?不知我清楚了没
   3.我需要更改透视数据集中列维字段的显示名称,例如“川渝断面_正方向限额”,如何实现?

1.gif

12.32 KB, 下载次数: 206

回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 09:19 , Processed in 0.062460 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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