昨天把两个表的明细列到一个表中,最后生成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编辑过]