以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数据填充filler出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58256) |
||||
-- 作者:andy123 -- 发布时间:2014/10/14 16:30:00 -- 数据填充filler出错 昨天把两个表的明细列到一个表中,最后生成EXCEL报表的功能眼看就要实现了。 但使用时发现,订单明细正常,而收款明细有漏掉行,检查发现是重复值,于Distinct属性改为FALSE,但马上报错。 报错信息: .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2014.10.9.1 错误所在事件: 详细错误信息: 该行已经属于此表。 去掉 fss.Distinct = False这句就不报错了,但填充的数据有漏掉一些重复值。 代码一并贴上,请帮忙看看哪里有错? Dim txt As String txt = e.Form.Controls("客户筛选").value If txt <> "客户筛选" Then Dim f As New Filler \'先填充订单统计 f.SourceTable = DataTables("订单统计表") \'指定数据来源 f.SourceCols = "客户名称,名称,型号规格,数量,单位,单价,小计,发货日期" \'指定数据来源列 f.Append = False f.Distinct = False \'允许出现重复值 f.Filter = "客户名称 =\'" & txt & "\' And 发货标志 = True " f.DataTable = DataTables("对账单") \'指定数据接收表 f.DataCols = "客户名称,名称,型号规格,数量,单位,单价,小计,发货日期" \'指定数据接收列 f.Fill() \'填充数据 Tables("对账单").Sort = "发货日期" Dim fss As New Filler \'再填充收款金额 fss.SourceTable = DataTables("收款明细表") \'指定数据来源 fss.SourceCols = "日期,收款金额" \'指定数据来源列 fss.Distinct = False fss.Append = False fss.Filter = "客户名称=\'" & txt & "\'" fss.DataTable = DataTables("对账单") \'指定数据接收表 fss.DataCols = "收款日期,收款金额" \'指定数据接收列 fss.Fill() \'填充数据 Dim Book As New XLS.Book(ProjectPath & "Attachments\\对账单.xls") Dim fl As String = ProjectPath & "Reports\\对账单.xls" Book.Build() \'生成细节区 Book.Save(fl) \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File = fl Proc.Start() DataTables("对账单").DataRows.Clear Else MessageBox.Show("未选择客户,请重新选择!") End If
[此贴子已经被作者于2014-10-14 16:32:11编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2014/10/14 16:34:00 -- 目测,应该是你的列名写错了,检测一下 SourceCols 和 DataCols 对应的列名是否正确。 |
||||
-- 作者:andy123 -- 发布时间:2014/10/14 16:46:00 -- 以下是引用有点甜在2014-10-14 16:34:00的发言:
目测,应该是你的列名写错了,检测一下 SourceCols 和 DataCols 对应的列名是否正确。 检查列名正确。 将fss.Append = False这行注释掉就不会报错。 只是有些重复行会漏掉,数据不完整。 |
||||
-- 作者:有点甜 -- 发布时间:2014/10/14 17:06:00 -- 出错例子发上来,说明意图。
我测试没有报错。 |
||||
-- 作者:andy123 -- 发布时间:2014/10/14 17:33:00 -- 例子来了
忘记说明问题了,生成EXCEL报表,收款金额的重复值不见了
[此贴子已经被作者于2014-10-14 17:38:00编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2014/10/14 17:40:00 -- 如果去到Append有什么问题?不是应该去掉的么? |
||||
-- 作者:andy123 -- 发布时间:2014/10/14 18:05:00 -- 以下是引用有点甜在2014-10-14 17:40:00的发言: 如果去到Append有什么问题?不是应该去掉的么? |
||||
-- 作者:有点甜 -- 发布时间:2014/10/14 19:07:00 -- 那不是空白,收款表就没有这些列的记录啊
Dim f As New Filler \'先填充订单统计 Dim fss As New Filler \'再填充收款金额 f.SourceTable = DataTables("订单明细表") \'指定数据来源 Tables("对账单").Sort = "发货日期" fss.SourceTable = DataTables("收款明细表") \'指定数据来源 Dim Book As New XLS.Book(ProjectPath & "Attachments\\对账单.xls") \'DataTables("对账单").DataRows.Clear |
||||
-- 作者:andy123 -- 发布时间:2014/10/15 9:45:00 -- 实际想实现的是这种效果:
|