以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  编码计算问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92919)

--  作者:feixianzhi
--  发布时间:2016/11/16 14:18:00
--  编码计算问题

Select Case e.DataCol.Name
    Case "供应商名称","会计年月","发票金额"     \'加入无税金额和税率的目的是,当无税金额或税率改变时,发票金额变化.
        If e.DataRow.IsNull("供应商名称") OrElse e.DataRow.IsNull("会计年月")  Then
        Else
            Dim filter As String = "供应商名称=\'" & e.DataRow("供应商名称") & "\' and 会计年月=\'" & e.DataRow("会计年月")  & "\'"
            Dim vl As Double =  e.DataTable.Compute("sum(当月汇总金额)",filter)
            Dim dr1 As DataRow = e.DataTable.Find(filter,"[_Identify] desc")
            e.DataTable.ReplaceFor("发票金额",Nothing,filter)
            If dr1 IsNot Nothing Then
                dr1("发票金额") = vl
            End If
        End If
End Select


表中有,供应商名称、会计年月、发票号码、发票金额、当月汇总金额列。以上代码我想统计相同供应商名称、会计年月的发票金额。
现在有两个问题:一是重置供应商名称列,程序就显退;二是当月汇总金额全部为零。
请各位老师帮忙看一下问题出在哪了。

--  作者:feixianzhi
--  发布时间:2016/11/16 14:24:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:222_看图王.png
图片点击可在新窗口打开查看

这是截图,请各位老师帮忙。

--  作者:feixianzhi
--  发布时间:2016/11/16 14:27:00
--  
请有点蓝老师帮忙呀。
--  作者:有点蓝
--  发布时间:2016/11/16 14:50:00
--  
Select Case e.DataCol.Name
    Case "供应商名称","会计年月"    \'加入无税金额和税率的目的是,当无税金额或税率改变时,发票金额变化.
        If e.DataRow.IsNull("供应商名称") OrElse e.DataRow.IsNull("会计年月")  Then
        Else
            Dim filter As String = "供应商名称=\'" & e.DataRow("供应商名称") & "\' and 会计年月=\'" & e.DataRow("会计年月")  & "\'"
            Dim vl As Double =  e.DataTable.Compute("sum(当月汇总金额)",filter)
            Dim dr1 As DataRow = e.DataTable.Find(filter,"[_Identify] desc")
            e.DataTable.ReplaceFor("发票金额",Nothing,filter)
            If dr1 IsNot Nothing Then
                dr1("发票金额") = vl
            End If
        End If
End Select

--  作者:feixianzhi
--  发布时间:2016/11/16 15:09:00
--  
有点蓝老师,以上代码,我重置供应商名称列后,发票金额变成零了。当月汇总金额没有数。请老师看一看是怎么回事?
--  作者:feixianzhi
--  发布时间:2016/11/16 15:30:00
--  
请有点蓝老师帮忙呀。
--  作者:有点蓝
--  发布时间:2016/11/16 15:34:00
--  
你自己搞反了吧

Select Case e.DataCol.Name
    Case "供应商名称","会计年月"    \'加入无税金额和税率的目的是,当无税金额或税率改变时,发票金额变化.
        If e.DataRow.IsNull("供应商名称") OrElse e.DataRow.IsNull("会计年月")  Then
        Else
            Dim filter As String = "供应商名称=\'" & e.DataRow("供应商名称") & "\' and 会计年月=\'" & e.DataRow("会计年月")  & "\'"
            Dim vl As Double =  e.DataTable.Compute("sum(发票金额)",filter)
            Dim dr1 As DataRow = e.DataTable.Find(filter,"[_Identify] desc")
            e.DataTable.ReplaceFor("当月汇总金额",Nothing,filter)
            If dr1 IsNot Nothing Then
                dr1("当月汇总金额") = vl
            End If
        End If
End Select

--  作者:feixianzhi
--  发布时间:2016/11/16 15:40:00
--  
非常感谢有点蓝老师。
--  作者:feixianzhi
--  发布时间:2016/11/16 16:01:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看


有点蓝老师,麻烦再看一下,如图出现的问题,当月汇总金额不含当月最后一行的金额。

--  作者:feixianzhi
--  发布时间:2016/11/16 16:03:00
--  
请有点蓝老师帮忙呀。