以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  统计排序  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146953)

--  作者:yaojun
--  发布时间:2020/3/6 16:13:00
--  统计排序

用如下代码统计,生产的表格顺序很乱,能不能顺序不要乱就按日期顺序来呀,请求帮助,谢谢!,代码如下:

e.Form.Controls("Textbox10").Value = Nothing

Dim b As New CrossTableBuilder("装配计划表1",DataTables("装配日计划"))

b.HGroups.AddDef("序列号")
b.HGroups.AddDef("产品名称")
b.HGroups.AddDef("订单数量")
b.HGroups.AddDef("排产数量")
b.HGroups.AddDef("生产备注")
b.HGroups.AddDef("排产日期",DateGroupEnum.none)
b.VGroups.AddDef("排产日期",DateGroupEnum.Year,"{0}年")
b.VGroups.AddDef("排产日期","{0}月")
b.VGroups.AddDef("排产日期",DateGroupEnum.day,"{0}日")
b.Totals.AddDef("排产数量")
b.OrderByTotal = True
b.VerticalTotal= True
b.HorizontalTotal = True
Dim t As Table = e.form.controls("Table11").Table
t.datasource = b.BuildDataSource
t.DataTable.GlobalHandler.AfterEdit = True
t.AllowEdit = True
e.form.controls("Table11").Table.AutoSizeCols(3)
t.DefaultRowHeight = 31

t.DataTable.DataCols.Add("_sortkey", Gettype(Decimal))
For Each r As Row In t.Rows
    r("_sortkey") = r.Index
Next
t.rows(t.rows.count - 1).Move(0)
t.Sort = "_sortkey"
t.DataTable.AcceptChanges
t.ResumeRedraw

 

生产图片如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

能否变成如下按顺序的:

 


 


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

 

谢谢老师们,救急


--  作者:有点蓝
--  发布时间:2020/3/6 17:44:00
--  
……

e.form.controls("Table11").Table.AutoSizeCols(3)
t.DefaultRowHeight = 31

t.DataTable.DataCols.Add("_sortkey", Gettype(Decimal))

t.Sort = "序列号,排产日期"

For Each r As Row In t.Rows
    r("_sortkey") = r.Index
Next
t.rows(t.rows.count - 1).Move(0)
t.Sort = "_sortkey"
t.DataTable.AcceptChanges
t.ResumeRedraw


--  作者:yaojun
--  发布时间:2020/3/6 17:54:00
--  

代码加入后,显示不能再排序状态下移动行


--  作者:狐狸爸爸
--  发布时间:2020/3/6 18:03:00
--  
1、没办法,插入行就必须取消排序
2、作为数据库软件,其实不应该有插入行功能,也不建议你的系统依赖这个

--  作者:有点蓝
--  发布时间:2020/3/6 20:25:00
--  
……

e.form.controls("Table11").Table.AutoSizeCols(3)
t.DefaultRowHeight = 31

t.DataTable.DataCols.Add("_sortkey", Gettype(Decimal))

t.rows(t.rows.count - 1).Move(0)

t.rows(0)("_sortkey") = 0

dim i as integer = 1

For Each dr As dataRow In t.DataTable.select("_sortkey is null","序列号,排产日期")

    dr("_sortkey") = i

i+=1
Next

t.Sort = "_sortkey"
t.DataTable.AcceptChanges
t.ResumeRedraw

[此贴子已经被作者于2020/3/6 20:31:56编辑过]