以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何将一个数据底表的结构,如何展示时更改结构? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189716) |
-- 作者:guosheng -- 发布时间:2023/12/20 15:40:00 -- 如何将一个数据底表的结构,如何展示时更改结构? 基础表的结构: 编号 子编号
类别 金额 A01
A01-01 成本 100 A01
A01-01 费用 200 A01
A01-02 成本 300 A01
A01-02 费用 400 导出表的结构: 编号 子编号 成本_金额 费用_金额 A01
A01-01 100 200 A01
A01-02 300 400 在AddCols时,应该怎么控制啊? Dim jb As New SQLJoinTableBuilder("查询表1","基础表") jb.C jb.AddTable("基础表","编号","明细表","编号",JoinModeEnum.Left) jb.AddCols("编号","子编号",******** ) jb.filter= filter jb.Build() [此贴子已经被作者于2023/12/20 15:43:40编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/12/20 15:47:00 -- 这种使用交叉统计:http://www.foxtable.com/webhelp/topics/3285.htm Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))
b.HGroups.AddDef("编号") \'添加客户列用于水平分组 b.HGroups.AddDef("子编号") \'添加客户列用于水平分组 b.VGroups.AddDef("类别") \'添加产品列用于垂直分组 b.Totals.AddDef("金额") \'添加数量列用于统计 b.Build \'生成统计表 Maintable = Tables("统计表1") \'打开生成的统计表 |
-- 作者:guosheng -- 发布时间:2023/12/20 15:59:00 -- SQLGroupTableBuilder 的结果和SQLcrossTableBuilder的结果,能进行拼接吗 比如用:dt1.Combine("合同编号",dt3,"合同编号")
|
-- 作者:有点蓝 -- 发布时间:2023/12/20 16:26:00 -- 可以 |
-- 作者:guosheng -- 发布时间:2023/12/20 16:49:00 -- 想在Combine后的结果拼上【明细表3】中的列,有办法吗?1、将【日期列】的最大值拼到后边,2、获取到对应的【明细编号】拼接字符串。 想要的结果(主要是最后两列怎么拼上): 编号 金额 数量 最大日期 明细编号 A01 100 200 2023-10-20 101,102 A02 300 400 2021-02-01 211,222 ----------------------------------------------------- Dim b As New SQLGroupTableBuilder("统计表2","明细表") dt1 = b.BuildDataSource() Dim b2 As New SQLGroupTableBuilder("统计表3","明细表2") dt2 = b2.BuildDataSource() dt1.Combine("编号",dt2,"编号") dt1.Show("统计表2") \'显示统计结果,必须有这一句 统计表2的结果: 编号 金额 数量 A01 100 200 A02 300 400 ------------------------------------- 明细表3的结构: 编号 日期 明细编号 A01 2022-10-10 101 A01 2023-10-20 102 A02 2020-01-01 211 A02 2021-02-01 222 [此贴子已经被作者于2023/12/20 16:50:24编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/12/20 17:15:00 -- 先生成统计表,然后遍历统计表所有行逐行处理,根据编号使用compute取最大日期,使用GetComboListString取明细编号 |
-- 作者:guosheng -- 发布时间:2023/12/20 17:20:00 -- 行比较多,遍历可能比较费时间。 能用公式解决吗? DataTables("查询表1").DataCols.Add("最大日期",Gettype(date), " **** " ) DataTables("查询表1").DataCols.Add("明细编号",Gettype(string), " ***** " ) [此贴子已经被作者于2023/12/20 17:20:11编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/12/20 17:26:00 -- 只能遍历 |