Foxtable(狐表)用户栏目专家坐堂 → 统计当前表


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

主题:统计当前表

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


加好友 发短信
等级:二尾狐 帖子:576 积分:4731 威望:0 精华:0 注册:2014/7/3 15:28:00
统计当前表  发帖心情 Post By:2024/6/23 15:52:00 [显示全部帖子]

请问如下代码是统计后台表的,请问如何改为统计当前表呀:,请大师修改下,谢谢!
Dim b As New CrossTableBuilder("排产计划表",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("Table5").Table
t.datasource = b.BuildDataSource
t.DataTable.GlobalHandler.AfterEdit = True
t.AllowEdit = True
e.form.controls("Table5").Table.AutoSizeCols(3)

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
t.Font = New Font("宋体",10.5,FontStyle.Regular)

For Each cl As Col In t.Cols  '整表居中
            cl.TextAlign = TextAlignEnum.Center
  Next
t.DefaultRowHeight = 31
t.Cols("地址").TextAlign = TextAlignEnum.Left

 回到顶部
帅哥哟,离线,有人找我吗?
yaojun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:576 积分:4731 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2024/6/24 8:11:00 [显示全部帖子]

谢谢,这样可以!但是这段代码的结果合计行没有到第一行,而是在第二行,请问这是怎么回事,怎样修改代码:
Dim b As New CrossTableBuilder("排产计划表",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
b.filter = Tables("生产进度表").filter
Dim t As Table = e.form.controls("Table5").Table
t.datasource = b.BuildDataSource
t.DataTable.GlobalHandler.AfterEdit = True
t.AllowEdit = True
e.form.controls("Table5").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
t.Font = New Font("宋体",10.5,FontStyle.Regular)
For Each cl As Col In t.Cols  '整表居中
            cl.TextAlign = TextAlignEnum.Center
  Next
t.Cols("地址").TextAlign = TextAlignEnum.Left
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20240624081015.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yaojun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:576 积分:4731 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2024/6/24 9:00:00 [显示全部帖子]

放到最后则会显示“不能在排序状态下移动行”,与如下代码效果一样:
Dim b As New CrossTableBuilder("排产计划表",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
b.filter = Tables("生产进度表").filter
Dim t As Table = e.form.controls("Table5").Table
t.datasource = b.BuildDataSource
t.DataTable.GlobalHandler.AfterEdit = True
t.AllowEdit = True
e.form.controls("Table5").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
t.Font = New Font("宋体",10.5,FontStyle.Regular)

For Each cl As Col In t.Cols  '整表居中
            cl.TextAlign = TextAlignEnum.Center
  Next

t.Cols("地址").TextAlign = TextAlignEnum.Left

 回到顶部
帅哥哟,离线,有人找我吗?
yaojun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:576 积分:4731 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2024/6/24 9:22:00 [显示全部帖子]

我想让合计行到第一行,去掉这句就实现不了这样的目的,如果不去掉这句就可以实现,只是弹出一个对话框,但是关闭对话框功能得到了实现,如果有办法让这个弹窗不出现也可以


[此贴子已经被作者于2024/6/24 9:23:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yaojun
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:576 积分:4731 威望:0 精华:0 注册:2014/7/3 15:28:00
  发帖心情 Post By:2024/6/24 9:27:00 [显示全部帖子]

谢谢蓝老师,我已经找到方法了,代码再换下顺序就可以,另外我想问下,增加一列日期列,怎么显示出来的是数字,而不是日期:
b.HGroups.AddDef("预交日期")
[此贴子已经被作者于2024/6/24 9:30:06编辑过]

 回到顶部