-- 作者:dyzkdxy
-- 发布时间:2017/6/3 13:48:00
-- 非常奇怪的事情:代码在设计的窗口按钮中无任何反应,但在命令窗口中运行没有任何问题。
很奇怪:在订货单表中选取数据行,按客户每天的金额汇总到采购应付款中进行处理。代码在设计的窗口按钮中无任何反应,但在命令窗口中运行没有任何问题。 (类似的代码,用同样的方法处理订单和客户应收款时,没有问题 。)
代码如下:
If Tables("进货单").rows().count=0 Then MessageBox.Show("暂时没有符合条件的进货数据!") Else Dim dtb As New DataTableBuilder("采购应付款0") \' 添加临时表 dtb.AddDef("是否打印", Gettype(Boolean)) dtb.AddDef("是否结清", Gettype(Boolean)) dtb.AddDef("供应商名称", Gettype(String), 40) dtb.AddDef("已付款总额", Gettype(Single)) dtb.AddDef("应付款", Gettype(Single)) dtb.AddDef("总金额", Gettype(Double)) dtb.AddDef("联系人", Gettype(String), 16) dtb.AddDef("联系电话", Gettype(String), 40) dtb.AddDef("综合名称", Gettype(String), 60) dtb.AddDef("到货日期", Gettype(Date)) dtb.Build() DataTables("采购应付款0").DataRows.clear() Dim zje As Single For Each dr As Row In Tables("进货单").GetCheckedRows \' For Each dr As Row In Tables("进货单").rows 按钮的代码改为此代码后,对所有表中数据进行处理没问题。 dr("已编入应付款")=True Dim dr2 As DataRow = DataTables("采购应付款0").AddNew() For Each dc As DataCol In DataTables("进货单").DataCols If DataTables("采购应付款0").DataCols.Contains(dc.Name) Then dr2(dc.Name) = dr(dc.name) End If Next Dim t As TimeSpan Dim d0 As Date = #12/31/2015# Dim d1 As Date = dr2("到货日期") t = d1 - d0 dr2("综合名称")= t.TotalDays & "/" & dr2("供应商名称") Next Dim zhms As List(Of String) zhms = DataTables("采购应付款0").GetValues("综合名称") For Each zhm As String In zhms zje=DataTables("采购应付款0").Compute("Sum(总金额)","综合名称 = \'" & zhm & "\'") Dim ddr As DataRow ddr =DataTables("采购应付款0").Find("综合名称 = \'" & zhm & "\'") If ddr IsNot Nothing Then \'如果找到的话 ddr("总金额")=zje Dim drdr As DataRow drdr =DataTables("采购应付款").Find("综合名称 = \'" & zhm & "\'") If drdr IsNot Nothing Then \'如果找到的话,重写总金额,因为可能金额有变化。 drdr("总金额")=ddr("总金额") Else drdr= DataTables("采购应付款").AddNew() For Each dc As DataCol In DataTables("采购应付款0").DataCols If DataTables("采购应付款").DataCols.Contains(dc.Name) Then drdr(dc.Name) = ddr(dc.name) End If Next End If End If Next For Each addr2 As Row In Tables("采购应付款").rows addr2("应付款")=addr2("总金额")-addr2("已付款总额") If addr2("应付款")<=0 Then addr2("是否结清")= True addr2("是否打印")= False addr2.Locked = True Else addr2("是否结清")= False addr2("是否打印")= True End If Next Tables("采购应付款").Cols("总金额").GrandTotal = True Tables("采购应付款").Cols("已付款总额").GrandTotal = True Tables("采购应付款").Cols("应付款").GrandTotal = True Tables("采购应付款").GrandTotal = True
End If
Tables("采购应付款").Sort = "供应商名称,到货日期 desc" Tables("采购应付款").Select(0,0)
|