以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]统计 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174880) |
-- 作者:江南小镇 -- 发布时间:2022/2/10 15:46:00 -- [求助]统计 老师新年好 下面中奖金额列不显示 Dim dtb As New DataTableBuilder("统计") dtb.AddDef("姓名", Gettype(String), 16) dtb.AddDef("项目", Gettype(String), 16) dtb.AddDef("购票金额", Gettype(Integer)) dtb.AddDef("付款金额", Gettype(Integer)) dtb.AddDef("中奖金额", Gettype(Integer)) \'dtb.AddDef("购票金额", Gettype(Integer)) \'dtb.AddDef("付款金额", Gettype(Double)) \'dtb.AddDef("中奖金额", Gettype(Double)) dtb.Build() Tables("打票记录_Table1").DataSource = dtb.BuildDataSource() For Each nm() As String In DataTables("打票收付款记录").GetValues("姓名|项目") Dim dr As DataRow = DataTables("打票记录_Table1").AddNew() \'Dim dr As DataRow = DataTables("统计").AddNew() dr("姓名") = nm(0) dr("项目") = nm(1) \'dr("") = nm(2) dr("购票金额") = DataTables("打票收付款记录").Compute("Sum(购票金额)","姓名 = \'" & nm(0) & "\' And [项目] = \'" & nm(1) & "\'") dr("付款金额") = DataTables("打票收付款记录").Compute("Sum(付款金额)","姓名 = \'" & nm(0) & "\' And [项目] = \'" & nm(1) & "\'") dr("中奖金额") = DataTables("打票收付款记录").Compute("Sum(中奖金额)","姓名 = \'" & nm(0) & "\' And [项目] = \'" & nm(1) & "\'") Next
|
-- 作者:有点蓝 -- 发布时间:2022/2/10 15:52:00 -- 不想显示中奖金额列? Tables("打piao记录_Table1").DataSource = dtb.BuildDataSource() Tables("打piao记录_Table1").cols("中奖金额").visible = false
|
-- 作者:江南小镇 -- 发布时间:2022/2/10 16:03:00 -- 不,我要显示中奖金额列,上面的代码不显示。 |
-- 作者:有点蓝 -- 发布时间:2022/2/10 16:09:00 -- 没看到有隐藏列的代码,肯定是显示的。如果是指这个列没有统计值,应该是没有符合条件的数据 |
-- 作者:江南小镇 -- 发布时间:2022/2/10 16:18:00 -- 临时表是显示的窗口表不显示,这是全部代码。 Dim dtb As New DataTableBuilder("统计") dtb.AddDef("姓名", Gettype(String), 16) dtb.AddDef("项目", Gettype(String), 16) dtb.AddDef("购票金额", Gettype(Integer)) dtb.AddDef("付款金额", Gettype(Integer)) dtb.AddDef("中奖金额", Gettype(Integer)) \'dtb.AddDef("购票金额", Gettype(Integer)) \'dtb.AddDef("付款金额", Gettype(Double)) \'dtb.AddDef("中奖金额", Gettype(Double)) dtb.Build() Tables("打票记录_Table1").DataSource = dtb.BuildDataSource() For Each nm() As String In DataTables("打票收付款记录").GetValues("姓名|项目") Dim dr As DataRow = DataTables("打票记录_Table1").AddNew() \'Dim dr As DataRow = DataTables("统计").AddNew() dr("姓名") = nm(0) dr("项目") = nm(1) \'dr("") = nm(2) dr("购票金额") = DataTables("打票收付款记录").Compute("Sum(购票金额)","姓名 = \'" & nm(0) & "\' And [项目] = \'" & nm(1) & "\'") dr("付款金额") = DataTables("打票收付款记录").Compute("Sum(付款金额)","姓名 = \'" & nm(0) & "\' And [项目] = \'" & nm(1) & "\'") dr("中奖金额") = DataTables("打票收付款记录").Compute("Sum(中奖金额)","姓名 = \'" & nm(0) & "\' And [项目] = \'" & nm(1) & "\'") Next \'MainTable= Tables("统计") With Tables(e.Form.Name & "_Table1") .EnterKeyActionDown = True .AutoSizeCols Dim dz_FilterCol As WinForm.CheckedComboBox = e.Form.Controls("复选1") dz_FilterCol.Items.Clear For Each C As Col In .Cols dz_FilterCol.Items.Add(C.Name) Next dz_FilterCol.Value = "" End With Tables("打票记录_table1").SetColVisibleWidth ("姓名|260|项目|120|购票金额|70|付款金额|100|中奖金额") Tables("打票记录_table1").DefaultRowHeight = 30 For Each c As Col In Tables("打票记录_table1").Cols C.TextAlign =TextAlignEnum.Center Next Tables("打票记录_table1").grid.Styles("Normal").border.Color = Color.DodgerBlue Tables("打票记录_table1").Font = New Font("微软雅体",12,FontStyle.Regular) Tables("打票记录_table1").ListMode = True \'整行突出 Tables("打票记录_table1").Cols("购票金额").GrandTotal = True \'指定要合计的列 Tables("打票记录_table1").Cols("中奖金额").GrandTotal = True \'指定要合计的列 \'Tables("订单").Cols("金额").GrandTotal = True Tables("打票记录_table1").GrandTotal = True \'显示合计模式 Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1") tab.SelectedIndex = 1 \'msgbox(tab.tabpages(3).text) e.form.controls("标签").text = e.form.controls("TabControl1").tabpages(1).text e.Form.Controls("Panel2").TopMost= True e.Form.Controls("Panel2").Visible= True e.Form.Controls("Panel1").Visible= False |
-- 作者:有点蓝 -- 发布时间:2022/2/10 16:19:00 -- Tables("打piao记录_table1").SetColVisibleWidth ("姓名|260|项目|120|购piao金额|70|付款金额|100|中奖金额|100") |
-- 作者:江南小镇 -- 发布时间:2022/2/10 17:00:00 -- 谢谢老师 |
-- 作者:有点蓝 -- 发布时间:2022/2/10 17:04:00 -- 方法1、到datacolchanged事件处理 |
-- 作者:江南小镇 -- 发布时间:2022/2/10 18:26:00 -- 以下是引用江南小镇在2022/2/10 17:00:00的发言:
谢谢老师 老师,我要在统计的临时表中计算 Dim dtb As New DataTableBuilder("统计") dtb.AddDef("姓名", Gettype(String), 16) dtb.AddDef("项目", Gettype(String), 16) dtb.AddDef("购票金额", Gettype(Integer)) dtb.AddDef("付款金额", Gettype(Integer)) dtb.AddDef("中奖金额", Gettype(Integer)) dtb.AddDef("结欠金额", Gettype(Integer)) dtb.Build() Tables("打票记录_Table1").DataSource = dtb.BuildDataSource() For Each nm() As String In DataTables("打票收付款记录").GetValues("姓名|项目") Dim dr As DataRow = DataTables("打票记录_Table1").AddNew() \'Dim dr As DataRow = DataTables("统计").AddNew() dr("姓名") = nm(0) dr("项目") = nm(1) \'dr("") = nm(2) dr("购票金额") = DataTables("打票收付款记录").Compute("Sum(购票金额)","姓名 = \'" & nm(0) & "\' And [项目] = \'" & nm(1) & "\'") dr("付款金额") = DataTables("打票收付款记录").Compute("Sum(付款金额)","姓名 = \'" & nm(0) & "\' And [项目] = \'" & nm(1) & "\'") dr("中奖金额") = DataTables("打票收付款记录").Compute("Sum(中奖金额)","姓名 = \'" & nm(0) & "\' And [项目] = \'" & nm(1) & "\'") Next \'MainTable= Tables("统计") With Tables(e.Form.Name & "_Table1") .EnterKeyActionDown = True .AutoSizeCols Dim dz_FilterCol As WinForm.CheckedComboBox = e.Form.Controls("复选1") dz_FilterCol.Items.Clear For Each C As Col In .Cols dz_FilterCol.Items.Add(C.Name) Next dz_FilterCol.Value = "" End With Tables("打票记录_table1").SetColVisibleWidth ("姓名|260|项目|120|购票金额|70|付款金额|100|中奖金额|100|结欠金额|100") Tables("打票记录_table1").DefaultRowHeight = 30 For Each c As Col In Tables("打票记录_table1").Cols C.TextAlign =TextAlignEnum.Center Next |
-- 作者:有点蓝 -- 发布时间:2022/2/10 20:28:00 -- 如果是指datacolchanged事件,参考:http://www.foxtable.com/webhelp/topics/1452.htm Dim dr As DataRow = e.DataRow |