我的系统使用三层结构,前台是Tclientdataset,客户要求能自己组合排序在,前台里,而TClientdataset有个属性indexfieldnames,可以进行组合排序,如先按客户编号,再按订单日期,那indexfieldnames 得到的排序值为'KHBH;DDRQ',那就可可以了.这种方法在单个表,和统计报表中没有问题.
但是在主从关系表中,对子表进行排序就会出现:一个怪问题:排序后子表的记录数是所有打开子表的记录数.如我有两张订单,第一张单子表有10条记录,第二张单子表有5条记录.当我对任何一张单的子表进行排序时.子表的记录总数变成了15条了,本改是本单的记录也混近来了。 还有在我的电脑上不会出现(有开发环境).在别的机子上就会.
另外对主表移动记录后,就恢复正常了。 那一位能给出一点意见!实在困惑.
但是在主从关系表中,对子表进行排序就会出现:一个怪问题:排序后子表的记录数是所有打开子表的记录数.如我有两张订单,第一张单子表有10条记录,第二张单子表有5条记录.当我对任何一张单的子表进行排序时.子表的记录总数变成了15条了,本改是本单的记录也混近来了。 还有在我的电脑上不会出现(有开发环境).在别的机子上就会.
另外对主表移动记录后,就恢复正常了。 那一位能给出一点意见!实在困惑.
那我的做法是这样的。Tclientdataset 有个属性Indexfieldnames,这个属性就可以进行在前台进行排序。只要给它赋要排序的字段值就可以了.如要对客户编号(KHBH)排序,IndexFieldnames :='KHBH';假如要先按客户编号排,后按订单日期排,就这样做.
IndexFieldnames :='KHBH;DDRQ'. 这种方法是可行的,但在有的机子里排序后会出现,记录数增多的现象,本不属于本主记录的子记录也在本单中出现了. 如我有两张订单,
第一张单子表有10条记录,
第二张单子表有5条记录. 当我对任何一张单的子表进行排序时.
子表的记录总数变成了15条了,
不是本单的记录也混近来了。 你们说这如何解决吗?