以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]代码保存出错(已解决)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=18119)

--  作者:yyzlxc
--  发布时间:2012/4/2 19:49:00
--  [求助]代码保存出错(已解决)

按钮代码,计算累计总产值,代码保存出错,如何修改,请各位老师指教,谢谢!!

  

For Each dr As DataRow In DataTables("scjyyb").DataRows
    If dr.IsNull("年月") OrElse dr.IsNull("单位") OrElse dr.IsNull("总产值") Then
        dr("累计_总产值") = Nothing
    Else
        Dim dqny As String = dr("年月")
        Dim sqny As String
        Dim nf As String  = Left(dqny,5)
        Dim yf As String = Right(dqny,2)
        If yf = 01 Then
            dr("累计_总产值")  = dr("总产值")
        Else
            If CByte(yf) < 11
                sqny = Left(dqny,5) & 0 & CStr(CByte(yf)-1)
            Else
                sqny = Left(dqny,5) & CStr(CByte(yf)-1)
            End If
            Dim dr1 As DataRow = e.DataTable.Find("单位 = \'" & dr("单位") & "\' And 年月 = \'" & sqny & "\'")
            If dr1 IsNot Nothing Then
                dr("累计_总产值") = dr1("累计_总产值") + dr("总产值")
            Else
                dr("累计_总产值")  = 0
            End If
        End If
    End If
Next

 

 


图片点击可在新窗口打开查看此主题相关图片如下:k.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-4-2 22:17:42编辑过]

--  作者:kylin
--  发布时间:2012/4/2 20:45:00
--  
把e.DataTable换成DataTables("具体的表名称")就可以了
--  作者:yyzlxc
--  发布时间:2012/4/2 21:43:00
--  

谢谢kylin老师的回复,好像还是不行,错误提示如下:

 

 


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

 

还请帮助想想办法。

原来代码是在表的DataColChanged事件中运行,没有问题,现在想把它放到按钮中去,不知道如何修改,附上原来的代码:

 

Select Case e.DataCol.Name
    Case "年月","单位","总产值"
        Dim sqny As String
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("年月") OrElse dr.IsNull("单位") OrElse dr.IsNull("总产值") Then
            dr("累计_总产值") = Nothing
        Else
            Dim dqny As String = dr("年月")
            Dim nf As String  = Left(dqny,5)
            Dim yf As String = Right(dqny,2)
            If yf = 01 Then
                dr("累计_总产值")  = dr("总产值")
            Else
                If CByte(yf) < 11
                    sqny = Left(dqny,5) & 0 & CStr(CByte(yf)-1)
                Else
                    sqny = Left(dqny,5) & CStr(CByte(yf)-1)
                End If
                Dim dr1 As DataRow = e.DataTable.Find("单位 = \'" & dr("单位") & "\' And 年月 = \'" & sqny & "\'")
                If dr1 IsNot Nothing Then
                    dr("累计_总产值") = dr1("累计_总产值") + dr("总产值")
                Else
                    dr("累计_总产值")  = 0
                End If
            End If
        End If
End Select


--  作者:kitty
--  发布时间:2012/4/2 21:47:00
--  
DataTable改为DataTables.劝你还是多看看帮助,再动手吧。
图片点击可在新窗口打开查看此主题相关图片如下:123.png
图片点击可在新窗口打开查看

--  作者:yyzlxc
--  发布时间:2012/4/2 22:17:00
--  
谢谢kitty老师的指教,都怪我粗心,代码运行成功,再次衷心感谢kylin老师和kitty老师的热情帮助!!