起步软件技术论坛-X3

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

【搞定】关于数据导航栏上的插入功能**

[复制链接]
发表于 2007-3-23 08:27:51 | 显示全部楼层 |阅读模式
我想实现如下功能:在数据网格中显示的数据的顺序和用户录入时的顺序一致。平台本身提供的数据导航按钮上有一个插入按钮,可是插入后,Post,数据会自动跑到最后一条。这和Append好像没有什么不同啊。数据集上我没有设排序和索引。请问我该如何实现选择插入时,数据录入完毕而记录位置不会发生改变?
回复

使用道具 举报

发表于 2007-3-23 09:38:16 | 显示全部楼层
如果是post以后,就跑到最后一条,说明数据集上定义了排序
如果是post以后,没有变位置,说明没有定义排序或者排序跟当前数据一致,如果这时候ApplyUpdates,然后刷新,或者再次读取数据时候,顺序不对,就需要在表中增加一个表示输入顺序的字段了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-23 10:33:43 | 显示全部楼层
可是我在数据集中没有设置排序啊,取数据的SQL也没有使用排序,网格的AutoSort属性我也去了,还有什么地方有排序呢?
回复 支持 反对

使用道具 举报

发表于 2007-3-23 10:36:13 | 显示全部楼层
如果你找不到哪里做了排序,建议你增加一个字段,按照这个字段来排序,这样可以保证按照你要求的实现了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-23 10:55:59 | 显示全部楼层
是可以这样,可是那样需要自己维护这个字段的值,特别是插入数据的时候,这样比较麻烦,如果平台能实现就简单了。
当选择插入时,网格控件的行号会自动维护么?
回复 支持 反对

使用道具 举报

发表于 2007-3-23 13:51:58 | 显示全部楼层
Grid显示的行号,完全按照记录在数据集中的顺序显示的
关键是控制数据集中记录的顺序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-26 14:52:48 | 显示全部楼层
对啊,真是个问题。其实那个网格的行号想想也简单,直接取数据集的RecNO就是了。关键是数据集中的记录顺序。
如果增加一个字段记录顺序,那么当我插入数据时,当前记录以后的所有记录的这个序号字段值都会作相应的修改。这样在这个数据集中处理的业务也会再处理一遍,其实这个字段并不影响业务。唉,真是个挠头的问题。
回复 支持 反对

使用道具 举报

发表于 2007-3-26 16:17:49 | 显示全部楼层
如果你认为顺序有意义,就需要记录下来这个顺序,当然维护起来是有些麻烦的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-27 22:44:38 | 显示全部楼层
又试了好多次,还是Insert后记录跑到最后一条去了。我的数据集没有做任何排序设置,SQL语句中没有,数据集的Order也没有,网格的AutoSort是False。请问可能的原因能在哪里呢?ApplyUpdates后数据顺序发生改变无所谓,只要能保证在Post以后记录顺序不会改变就行。所以,请帮我分析一下原因吧。
回复 支持 反对

使用道具 举报

发表于 2007-3-28 14:21:31 | 显示全部楼层
不好意思,确实是这样的,Append也好,Insert也好,只要Post,都是放到了最后一条了
你只能是增加一个临时字段作为排序了
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-28 17:51 , Processed in 0.042126 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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