以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 统计当前表 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192451) |
-- 作者:yaojun -- 发布时间: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 |
-- 作者:有点蓝 -- 发布时间:2024/6/23 21:05:00 -- 所谓的【当前表】是指什么?是指已经加载的表数据?还是指table筛选后的数据? 如果是后者,加上筛选条件即可 b.HorizontalTotal = True b.filter = Tables("生产进度表").filter Dim t As Table = e.form.controls("Table5").Table t.datasource = b.BuildDataSource |
-- 作者:yaojun -- 发布时间: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 |
-- 作者:有点蓝 -- 发布时间:2024/6/24 8:43:00 -- 下面2句代码放到最后 t.rows(t.rows.count - 1).Move(0) t.rows(0)("_sortkey") = 0 |
-- 作者:yaojun -- 发布时间: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 |
-- 作者:有点蓝 -- 发布时间:2024/6/24 9:06:00 -- 把下面代码去掉,如果有_sortkey列,默认就会按_sortkey排序的,不需要多此一举 t.Sort = "_sortkey"
|
-- 作者:yaojun -- 发布时间:2024/6/24 9:22:00 -- 我想让合计行到第一行,去掉这句就实现不了这样的目的,如果不去掉这句就可以实现,只是弹出一个对话框,但是关闭对话框功能得到了实现,如果有办法让这个弹窗不出现也可以 [此贴子已经被作者于2024/6/24 9:23:58编辑过]
|
-- 作者:yaojun -- 发布时间:2024/6/24 9:27:00 -- 谢谢蓝老师,我已经找到方法了,代码再换下顺序就可以,另外我想问下,增加一列日期列,怎么显示出来的是数字,而不是日期: b.HGroups.AddDef("预交日期")
[此贴子已经被作者于2024/6/24 9:30:06编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/6/24 9:33:00 -- 添加水平分组到HGroups的语法是: HGroups.AddDef(Name) 参数说明 DateGroupEnum枚举的可选值:
None : 不分组 |