以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  分组统计关于  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146628)

--  作者:裴保民
--  发布时间:2020/2/28 1:32:00
--  分组统计关于

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

似上图功能,窗口中的数据表下方希望增加分组行,类似垂直统计功能,但不希望采用汇总模式(因为汇总模式不能编辑数据),请问如何设置?
出货单录入数据时,下面的统计数据随着变化,请问如何设置?(调整列宽度时统计行列的宽度也跟着调整,隐藏某一列时,下面统计行对应的列也隐藏)
[此贴子已经被作者于2020/2/28 12:30:58编辑过]

--  作者:有点蓝
--  发布时间:2020/2/28 10:03:00
--  
合计行固定,如:

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=45520&skin=0
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=110420&authorid=0&page=1&star=1

--  作者:裴保民
--  发布时间:2020/2/28 12:07:00
--  
啷两3个实例确实挺好的收藏学习,但我要实现的和那两个实例有些出路,只要数据多了合计就看不到了的下拉到数据的底部才能看到,我是在数据表下方按您的思路放了一个panel ,里面放了几个文本框,

要实现以上功能,即文本框的固定在表下对应的列下方,并随着对应列的宽度调整而调整,

--  作者:有点蓝
--  发布时间:2020/2/28 12:16:00
--  
2楼就是
--  作者:裴保民
--  发布时间:2020/2/28 12:27:00
--  
是这个例子么?运行后的效果
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文件夹 (3).rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:合计行固定.table









[此贴子已经被作者于2020/2/28 12:51:22编辑过]

--  作者:有点蓝
--  发布时间:2020/2/28 14:46:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:合计行.foxdb

--  作者:裴保民
--  发布时间:2020/2/28 15:20:00
--  
这个实例和我的不一样我按那个步骤设置后运行不管用,您看看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:日常记账.foxdb

打开分组筛选窗体运行后合计还是在最下面下拉表后才能看到

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

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



[此贴子已经被作者于2020/2/28 15:24:00编辑过]

--  作者:有点蓝
--  发布时间:2020/2/28 16:49:00
--  
支持合计,不支持汇总

Dim dr As DataRow
Dim Filter As String
Dim g As New GroupTableBuilder("统计表1", DataTables("收支交易流水"))
g.Groups.AddDef("收支分类","收支类型")
g.Totals.AddDef("单号", AggregateEnum.Count,"笔数")
g.Totals.AddDef("收入金额","金额")
g.Totals.AddDef("收入金额", AggregateEnum.Average, "每笔平均金额")
g.Filter = "[交易类型] =\'收入\'"
\'g.Build()
\'MainTable = Tables("统计表1")
Tables("分组筛选窗体_srTable").DataSource = g.BuildDataSource()
Tables("分组筛选窗体_srTable").SetColVisibleWidth("收支类型|200|笔数|160|金额|300|每笔平均金额|300")

Dim t As Table = Tables("分组筛选窗体_srTable")
t.Cols("笔数").GrandTotal = True \'指定要合计的列
t.Cols("金额").GrandTotal = True
t.GrandTotal = True \'显示合计模式
t.Grid.Name = t.Name
AddHandler t.grid.Paint, AddressOf Grid_Paint

--  作者:裴保民
--  发布时间:2020/2/28 18:02:00
--  
经过测试有两个问题:
(1)为什么最下面合计一行和上面各列没对齐呢只能用鼠标点击一下表头才能对齐呢?
(2) 并且如果隐藏“收支类型”列时,合计列也被隐藏了,怎么一直显示“合计”呢?

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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:日常记账.foxdb



[此贴子已经被作者于2020/2/28 18:11:25编辑过]

--  作者:有点蓝
--  发布时间:2020/2/28 20:08:00
--  
改下函数

……
    hui.Cols.Frozen = sender.Cols.Frozen   \'同步冻结列
    hui.ScrollPosition = sender.ScrollPosition   \'同步水平滚动
    
    hui.ExtendLastCol = sender.ExtendLastCol
    sender.Cols(0).width = 30
    hui.Cols(0).width = sender.Cols(0).width

    \'End If
Else   \'检查并删除控件
    If sender.Controls.ContainsKey("Myhuizong")  Then  \'删除控件
        sender.Controls.RemoveByKey("Myhuizong")
    End If
End If