以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]提示——已经添加了具有相同键的项 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187426) |
-- 作者:tkxffb -- 发布时间:2023/7/17 20:16:00 -- [求助]提示——已经添加了具有相同键的项 各位老师好,下面这段代码运行时提示:已经添加了具有相同键的项。请老师检查一下问题出在哪里,谢谢 Dim jf1 As New GroupTableBuilder("各单位差旅支出统计表", DataTables("差旅费统计表")) jf1.Groups.AddDef("录入日期",DateGroupEnum.Year,"年份") \'----按年分组 jf1.Groups.AddDef("单位","单位") \'---按单位分组 jf1.Totals.AddDef("住宿_公务卡","住宿公务卡") \'---Totals.AddDef是统计列,AggregateEnum.Sum是求和 jf1.Totals.AddDef("住宿_现金","住宿现金") jf1.Totals.AddDef("公共交通费_公务卡","车票公务卡") jf1.Totals.AddDef("公共交通费_现金","车票现金") jf1.Totals.AddDef("其它_公务卡","其它公务卡") jf1.Totals.AddDef("其它_现金","其它现金") jf1.Build \'生成统计表 DataTables("各单位差旅支出统计表").DataCols.Add("差旅支出", Gettype(Double), "IsNull([住宿公务卡],0) + IsNull([住宿现金],0) + IsNull([车票公务卡],0) + IsNull([车票现金],0) + IsNull([其它现金],0) + IsNull([其它公务卡],0)") Dim jf2 As New GroupTableBuilder("各单位采购支出统计表", DataTables("日常采购统计表")) jf2.Groups.AddDef("录入日期",DateGroupEnum.Year,"年份") jf2.Groups.AddDef("单位","单位") jf2.Totals.AddDef("合计金额_公务卡","采购支出") jf2.Build \'生成统计表 Dim jf3 As New GroupTableBuilder("各单位车辆支出统计表", DataTables("车辆日常加油维修保养统计表")) jf3.Groups.AddDef("录入日期",DateGroupEnum.Year,"年份") jf3.Groups.AddDef("单位","单位") jf3.Totals.AddDef("加油金额_公务卡","加油公务卡") jf3.Totals.AddDef("加油金额_现金","加油现金") jf3.Totals.AddDef("维修金额_公务卡","维修公务卡") jf3.Totals.AddDef("维修金额_现金","维修现金") jf3.Totals.AddDef("保养金额_公务卡","保养公务卡") jf3.Totals.AddDef("保养金额_现金","保养现金") jf3.Build \'生成统计表 DataTables("各单位车辆支出统计表").DataCols.Add("车辆支出", Gettype(Double), "IsNull([加油公务卡],0) + IsNull([加油现金],0) + IsNull([维修公务卡],0) + IsNull([维修现金],0) + IsNull([保养公务卡],0) + IsNull([保养现金],0)") Dim jf4 As New GroupTableBuilder("各单位就餐支出统计表", DataTables("基层单位加班就餐统计表")) jf4.Groups.AddDef("录入日期",DateGroupEnum.Year,"年份") jf4.Groups.AddDef("单位","单位") jf4.Totals.AddDef("金额_合计","就餐支出") jf4.Build \'生成统计表 \'----以下是综合统计 Dim bd1 As New GroupTableBuilder("统计表h1",DataTables("各单位差旅支出统计表")) Dim dt1 As fxDataSource bd1.Groups.AddDef("年份") \'根据年份分组 bd1.Groups.AddDef("单位") \'根据单位分组 bd1.Totals.AddDef("差旅支出") \'对支出金额进行统计 dt1 = bd1.BuildDataSource() Dim bd2 As New GroupTableBuilder("统计表h2",DataTables("各单位采购支出统计表")) Dim dt2 As fxDataSource bd2.Groups.AddDef("年份") bd2.Groups.AddDef("单位") bd2.Totals.AddDef("采购支出") dt2 = bd2.BuildDataSource() Dim bd3 As New GroupTableBuilder("统计表h3",DataTables("各单位车辆支出统计表")) Dim dt3 As fxDataSource bd3.Groups.AddDef("年份","年份") bd3.Groups.AddDef("单位") bd3.Totals.AddDef("车辆支出") dt3 = bd3.BuildDataSource() Dim bd4 As New GroupTableBuilder("统计表h4",DataTables("各单位就餐支出统计表")) Dim dt4 As fxDataSource bd4.Groups.AddDef("年份") bd4.Groups.AddDef("单位") bd4.Totals.AddDef("就餐支出") dt4 = bd4.BuildDataSource() \'----以下是组合多个统计结果(本方法是多个联接列的组合方法) Dim nms As String() = {"年份","单位"} \'指定连接列 dt1.Combine(nms,dt2,nms) dt1.Combine(nms,dt3,nms) \'代码运行到这一行报错,错误提示“已经添加了具有相同键的项” dt1.Combine(nms,dt4,nms) dt1.Show("统计表h1") \'显示统计结果 Tables("经费支出统计_综合统计表").DataSource = dt1 \'将统计结果绑定到Table
[此贴子已经被作者于2023/7/17 20:26:11编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/7/17 20:24:00 -- bd3.Groups.AddDef("年份","年份") 改为 bd3.Groups.AddDef("年份")
|
-- 作者:tkxffb -- 发布时间:2023/7/17 20:29:00 -- 你好,有点蓝老师。 改了之后还是不行
|
-- 作者:有点蓝 -- 发布时间:2023/7/17 20:43:00 -- 看看生成的"各单位车辆支出统计表"表是不是有重复的【"年份","单位"】数据? |
-- 作者:tkxffb -- 发布时间:2023/7/17 20:58:00 -- 有点蓝老师厉害,一眼看出了问题,还真有年份和单位相同的行。可是,已经按年份和单位分组了,为什么还会出现年份和单位都相同的行呢?怎么修改代码才能避免? |
-- 作者:有点蓝 -- 发布时间:2023/7/17 21:01:00 -- 应该是"车辆日常加油维修保养统计表"原始数据有问题,比如相同名称的单位可能有些有多余的空格 |
-- 作者:tkxffb -- 发布时间:2023/7/17 21:07:00 -- 谢谢老师,解决了,真是老师说的这种问题 |