以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]显示代码错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71363)

--  作者:oubenming
--  发布时间:2015/7/9 22:33:00
--  [求助]显示代码错误
请教老师:下面二组代码,任何一组单独使用都没问题,放在一起就显示代码错误,请老师们帮助怎么处理?

If e.DataCol.Name = "计划单编号" Then

    Dim nms() As String = {"机械名称","机械编号","任务单编号"}

    If e.NewValue Is Nothing Then

        For Each nm As String In nms

            e.DataRow(nm) = Nothing

        Next

    Else

        Dim dr As DataRow

        dr = DataTables("材料申购明细表").Find("[计划单编号] = \'" & e.NewValue & "\'")

        If dr IsNot Nothing

            For Each nm As String In nms

                e.DataRow(nm) = dr(nm)

            Next

        End If

    End If

End If

Dim dr As DataRow = e.DataRow

Select Case e.DataCol.Name

    Case "单价","调拨","采购"

        If e.DataRow("调整") = False Then

            dr("金额") = dr("单价") * (dr("调拨") + dr("采购"))

        End If

    Case "金额"

        e.DataRow("调整") = dr("金额") <> dr("单价") * (dr("调拨") + dr("采购"))

End Select


 Next
此主题相关图片如下:qq截图20150709222639.png
按此在新窗口浏览图片



--  作者:大红袍
--  发布时间:2015/7/9 22:37:00
--  

Dim dr As DataRow = e.DataRow
If e.DataCol.Name = "计划单编号" Then

    Dim nms() As String = {"机械名称","机械编号","任务单编号"}

    If e.NewValue Is Nothing Then

        For Each nm As String In nms

            e.DataRow(nm) = Nothing

        Next

    Else

        Dim fdr As DataRow

        fdr = DataTables("材料申购明细表").Find("[计划单编号] = \'" & e.NewValue & "\'")

        If fdr IsNot Nothing

            For Each nm As String In nms

                e.DataRow(nm) = fdr(nm)

            Next

        End If

    End If

End If

Select Case e.DataCol.Name

    Case "单价","调拨","采购"

        If e.DataRow("调整") = False Then

            dr("金额") = dr("单价") * (dr("调拨") + dr("采购"))

        End If

    Case "金额"

        e.DataRow("调整") = dr("金额") <> dr("单价") * (dr("调拨") + dr("采购"))


End Select


--  作者:oubenming
--  发布时间:2015/7/9 22:45:00
--  
谢谢老师!!!能用了。
--  作者:oubenming
--  发布时间:2015/7/11 15:38:00
--  [求助]
遇到同样的问题了,请老师帮忙看看怎么写。谢谢了。


Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("付款登记")
If e.DataCol.Name = "结算单位" Then
    dr("当年付款数") = dt.Compute("Sum(金额)","[结算单位] = \'" & dr("结算单位") & "\'")
End If
Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("发票登记")
If e.DataCol.Name = "结算单位" Then
    dr("当年累计入账数") = dt.Compute("Sum(金额)","[结算单位] = \'" & dr("结算单位") & "\'")
End If

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


--  作者:狐狸爸爸
--  发布时间:2015/7/11 16:34:00
--  
删除第二个:

Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("付款登记")
If e.DataCol.Name = "结算单位" Then
    dr("当年付款数") = dt.Compute("Sum(金额)","[结算单位] = \'" & dr("结算单位") & "\'")
End If
Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("发票登记")
If e.DataCol.Name = "结算单位" Then
    dr("当年累计入账数") = dt.Compute("Sum(金额)","[结算单位] = \'" & dr("结算单位") & "\'")
End If

--  作者:oubenming
--  发布时间:2015/7/11 16:36:00
--  
谢谢狐狸爸爸   能用了   
--  作者:oubenming
--  发布时间:2015/7/11 16:42:00
--  [求助]
还是不行

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


--  作者:y2287958
--  发布时间:2015/7/11 18:53:00
--  
Dim dr As DataRow = e.DataRow
Dim dt As DataTable = DataTables("付款登记")
If e.DataCol.Name = "结算单位" Then
    dr("当年付款数") = dt.Compute("Sum(金额)","[结算单位] = \'" & dr("结算单位") & "\'")
End If
dt = DataTables("发票登记")
If e.DataCol.Name = "结算单位" Then
    dr("当年累计入账数") = dt.Compute("Sum(金额)","[结算单位] = \'" & dr("结算单位") & "\'")
End If

--  作者:oubenming
--  发布时间:2015/7/11 21:37:00
--  
谢谢老师!!!  能用了!!!!!