Foxtable(狐表)用户栏目专家坐堂 → 求助:列拆分问题


  共有26091人关注过本帖树形打印复制链接

主题:求助:列拆分问题

帅哥哟,离线,有人找我吗?
yuanbin
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:102 积分:880 威望:0 精华:4 注册:2008/8/31 21:47:00
  发帖心情 Post By:2008/12/9 15:19:00 [显示全部帖子]

样本表中数据太有规律了,班级是排序的,班级的抽样人员是固定的3人。假设抽样人员不是固定的,比如6班级是4个人,追加到原来的表后面,未排序。要求拆分时,按班级序号连续拆分,而且,同一个班级人必须在同一列中,不能拆分到2列中。以上代码就要改改了。(先将班级列类型改为数字型)
Dim dr1,dr2 As DataRow
dim pmr as integer =Math.floor(datatables("样本").compute("count(班级)","班级 <> 0")/3) '排名表3等分后平均行数
Dim drs As List(Of DataRow) =datatables("样本").select("[班级]<> 0","班级")  '取不含空行且排序后的样本表
dim r as integer=0  '排列表的行指针
dim c as integer=1  '排列表的列名序号指针
datatables("排列表").datarows.clear()
for i as integer = 0 to drs.count-1    '遍历有效的样本表
    dr1=drs(i)    '读样本表当前行
    if r>= pmr then  '排列表的当前指针行大于排名表3等分后的平均行数,
       if dr1("班级")<>drs(i-1)("班级")  '如果和上一行的班级不相同
          c=c+1  ' 排列表的列指针加1
          r=0    ' 排列表的行指针归0,指向第一行
       end if
    end if       
    if datatables("排列表").datarows.count<r+1 then    ' 实际行数小于即将写数的指针行
       dr2 = DataTables("排列表").AddNew()    '增加行
    else
       dr2= DataTables("排列表").datarows(r)        
    end if
    dr2("班级" & c)=dr1("班级")    '填数据
    dr2("姓名" & c)=dr1("姓名")      
    r=r+1  
next

[此贴子已经被作者于2008-12-9 16:13:35编辑过]

 回到顶部