Foxtable(狐表)用户栏目专家坐堂 → [求助]代码保存出错(已解决)


  共有8346人关注过本帖树形打印复制链接

主题:[求助]代码保存出错(已解决)

帅哥哟,离线,有人找我吗?
yyzlxc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]代码保存出错(已解决)  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 F6
等级:狐精 帖子:3030 积分:19188 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2012/4/2 20:45:00 [只看该作者]

把e.DataTable换成DataTables("具体的表名称")就可以了

 回到顶部
帅哥哟,离线,有人找我吗?
yyzlxc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:99 积分:1589 威望:0 精华:0 注册:2011/9/19 0:57:00
  发帖心情 Post By:2012/4/2 21:47:00 [只看该作者]

DataTable改为DataTables.劝你还是多看看帮助,再动手吧。
图片点击可在新窗口打开查看此主题相关图片如下:123.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yyzlxc
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2012/4/2 22:17:00 [只看该作者]

谢谢kitty老师的指教,都怪我粗心,代码运行成功,再次衷心感谢kylin老师和kitty老师的热情帮助!!

 回到顶部