起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 783|回复: 0

在表格文档中,如何实现分组以后的每组序号都从1开始

[复制链接]
发表于 2008-7-1 17:05:11 | 显示全部楼层 |阅读模式
如果用DataGrid来表现,直接设置,然后设置显示行号就可以了

用表格文档表现,就需要写代码来实现,步骤:
1、设置数据集以分组字段进行排序,
2、在数据集上增加一个临时字段,用来显示排序号,
3、循环数据集,判断下一个记录的排序字段的值跟前面一条一样,如果不一样,序号从1开始,如果一样,序号加1(代码写在哪里需要根据你的业务需求了,如果数据一次性全取,且不进行然后过滤,那么可以写在数据集的AfterOpen,如果要进行过滤,那么过滤后,还需要执行这段代码)
参考代码
var
  i,j:integer;
  lStr:String;
begin
   DataSetBroker1.DataSet.First;
   j := 1;
   DataSetBroker1.DataSet.DisableControls;
   for i:=0 to DataSetBroker1.DataSet.RecordCount-1 do
   begin
     lStr := DataSetBroker1.DataSet.FieldbyName('ID').AsString;
     DataSetBroker1.DataSet.Edit;
     DataSetBroker1.DataSet.FieldbyName('LSZD').AsInteger := j;
     DataSetBroker1.DataSet.next;
     if lStr = DataSetBroker1.DataSet.FieldbyName('ID').AsString then
        j:=j+1
     else
        j:=1;
   end;
   DataSetBroker1.DataSet.EnableControls;
end;

//其中ID是分组字段的ID,LSZD是存储序号的临时字段的ID
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-4-30 23:42 , Processed in 0.041116 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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