起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 161|回复: 8

【结贴】动态数据集如果字段不一样时的排序问题**

[复制链接]
发表于 2008-11-20 00:14:02 | 显示全部楼层 |阅读模式
2个SQL,分别用在同一个DataGrid.,第一个SQL查询出来后,点击列头排序,如果这时候代码更换了SQL,再查查询的时候,就会提示DataSet: Field 'XXX not found,请问如果再重新查询的时候将这个排序的设定清除。

PS.如果用了过滤,DataGrid.Filter.Clear;  可以清掉,但是排序一直就没找到方式,多谢回复。
回复

使用道具 举报

发表于 2008-11-20 10:00:58 | 显示全部楼层
在重新设置数据集的sql前,把数据集的order清空就可以了
回复 支持 反对

使用道具 举报

发表于 2008-11-20 10:12:32 | 显示全部楼层
http://bbs.justep.com/forum.php?mod=viewthread&tid=23072
试试设这个属性
NameSpace: Business.Forms
--------------------------------------------------------------------------------
TTreeListColumnSort = (csNone, csDown, csUp);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-21 10:56:33 | 显示全部楼层
我试验了一下,应该跟这个排序是没关联了,因为DataGrid.ClearColumnsSorted是可以清空排序,我看到DataGrid.SortedColumnCount的值都是由原来的排序数变成0。
现在的情况是某个地方记住了我点排序时的那个DataGrid.Columns[X].Caption,因为系统就是提示第一个按了排序后的字段显示名 NOT FOUND,如果这个动态的SQL变回前一个SQL,这个错误就消失。只有重新打开这个功能,直接用第二个SQL查询也是好的,但是同样点了排序返回用第一个SQL,就出同样的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-21 11:06:09 | 显示全部楼层
打开第二个SQL之前,第一个DataSet已经关闭了Close,照理说既然都关了,为什么还记住一些之前的东西,怎么清呢?
回复 支持 反对

使用道具 举报

发表于 2008-11-21 11:17:49 | 显示全部楼层
楼主,你看我做的简单测试,是否与你的情况相符?如果与你的情况相符的话,我这里没有出现你说的问题。

1.gif

219.21 KB, 下载次数: 101

回复 支持 反对

使用道具 举报

发表于 2008-11-21 12:07:14 | 显示全部楼层
楼主,我刚才测试了一下,
默认给DataGrid的一个SQL语句,然后点击DataGrid 的 列头排序后,再点击某个按钮,重新设置DataGrid的SQL,然后点击数据导航条的查询按钮,进行操作一切正常。
不知道楼主
1、是点击DataGrid 的列头的排序吗?
2、是在哪个事件上修改DataGrid连接的数据源的SQL语句的?
3、修改SQL语句后,显示正常吗?
4、是怎样进行查询的,是数据导航条的望远镜按钮吗?如果不是,那又是啥?
5、默认DataGrid 显示,你做过其他的设置吗?例如加载了Colunm等等
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-21 18:30:03 | 显示全部楼层
我开始用的是三楼的方法,清DataGrid 的Sort是不行的,看到你的代码,用DataSetBrokerXX.DataSet.Order := ''是OK的,非常感谢。
回复 支持 反对

使用道具 举报

发表于 2008-11-21 20:20:22 | 显示全部楼层
。。。楼主,一开始2楼就告诉你答案了。。。。
好了就好,谢谢反馈,结贴。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-27 18:09 , Processed in 0.044928 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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