Jb18.AddExp("系统单号", "R04_MaterialsAllocation.smartID", True)
Jb18.AddExp("单内序号", "1")
Jb18.AddExp("工费单号", "R04_MaterialsAllocation.smartID", True)
Jb18.AddExp("领料单号", "R04_MaterialsAllocation.smartID", True)
'Jb18.AddExp("产品成色", "''")
Jb18.AddExp("比较成色", "R02_SilverStyle.materialName", True)
Jb18.AddExp("比较银重", "-sum(isnull(weight,0))")
Jb18.AddExp("产品件数", "0")
Jb18.AddExp("产品净银重", "0 * 0.00001")
Jb18.AddExp("备注", "R04_MaterialsAllocation.outboundWarehouseName", True)
'Jb18.AddExp("实领料成色", "R02_SilverStyle.materialName ", True)
Jb18.AddExp("实领料银重", "-sum(isnull(weight,0))")
Jb18.AddExp("实工费", "0 * 0.00001")
If e.Sender.Name = "Button3" Then
Jb18.Filter = "convert(nvarchar(10),R04_MaterialsAllocation.smartDate,121)>='" & StartDate & "' And convert(nvarchar(10), R04_MaterialsAllocation.smartDate,121)<='" & LastDay & "' and R02_Customer. customerCode='" & cmdCustomerCode & "' And R04_MaterialsAllocation.audited = 'true'" '加载数据时用
Else
If e.Sender.Name = "Button06" Then
Jb18.Filter = "R02_Customer. customerCode='" & cmdCustomerCode & "' and R04_MaterialsAllocation.smartID in " & s & " and R04_MaterialsAllocation.audited='true'" '审核时用
End If
End If
'组合jb1 '采购入库的产品净银重
jb1.Merge(jb2) '组合jb2 '领料出库领料重
jb1.Merge(jb3) '组合jb3 '半成品入库的产品净银重
jb1.Merge(jb4) '组合jb4 '报废退货单的产品净银重
jb1.Merge(jb5) '组合jb5 '报废退货单的领料重
jb1.Merge(jb6) '组合jb6 '半成品入库的实工费
jb1.Merge(jb7) '组合jb7 '委外入库的实工费
jb1.Merge(jb8) '组合jb8 '返修入库的实工费
jb1.Merge(jb9) '组合jb9 '报废退货的实工费
jb1.Merge(jb10) '组合jb10 '付款单的实工费
jb1.Merge(jb11) '组合jb11 '往来费用单的实工费
jb1.Merge(jb12) '组合jb12 '材料入库的实工费
jb1.Merge(jb13) '组合jb13 '采购成品入库的实工费
jb1.Merge(jb14) '组合jb14 '材料入库的领料重
jb1.Merge(jb15) '组合jb15 '调拨出库领料重
jb1.Merge(jb16) '组合jb16 '返修退厂的实工费
jb1.Merge(jb17) '组合jb17 '旧料回收的领料重
jb1.Merge(jb18) '组合jb18 ''调拨入库领料重
Dim dt As DataTable
dt = jb1.Build(True)
Dim sCols() As String = {"系统单号", "单内序号", "类型", "单据类型", "比较成色", "比较银重", "比较工费", "供应商代码", "供应商名称", "本单日期", "工费单号", "领料单号", "实工费", "产品件数", "产品净银重", "实领料银重", "备注"}
Dim dCols() As String = {"ID", "number", "kind", "tableName", "contrastmaterialName" , "contrastweight", "contrastAmount", "customerCode", "customerName", "smartDate", "factoryID", "sourceID",
For Each dr As DataRow In dt.DataRows
'填充数据
If DataTables("R03_payable_Detail").Find("customerCode= '" & dr("供应商代码") & "' and kind = '" & dr("类型") & "' and ID = '" & dr("系统单号") & "'And number = '" & dr("单内序号") & "' And c And c And c ") Is Nothing Then
Dim nr As DataRow = DataTables("应付副表本地表").AddNew()
For i As Integer = 0 To sCols.Length - 1
nr(dCols(i)) = dr(sCols(i))
Next
End If
Next
老师,以上代码,在填充数据代码段耗时很长,导致界面闪退,有什么方法优化吗?上面查询结果也只有100多行
[此贴子已经被作者于2023/6/6 18:21:06编辑过]