Foxtable(狐表)用户栏目专家坐堂 → 上载excel数据如何实现多行数据相加


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

主题:上载excel数据如何实现多行数据相加

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 11:22:00 [显示全部帖子]

http://www.foxtable.com/webhelp/topics/2334.htm,看示例3

      Dim dr As DataRow = DataTables("综合所得申报").find("身份证码='" & sheet(n,3).Text & "'")
if dr isnot nothing
dr("上月税务局实际扣税") = dr("上月税务局实际扣税") + val(Sheet(n,上月税务局实际扣税列索引).Value)
else
            dr =  DataTables("综合所得申报").AddNew()
            For m As Integer = 0 To nms.Length - 1
            If nms(m) = "" Then Continue For '跳过空标题(这个if不用加end if)
                dr(nms(m)) = Sheet(n,m).Value
            Next
end if
        Next
    Tables("综合所得申报").ResumeRedraw()

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 13:40:00 [显示全部帖子]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm

     For n As Integer = 8 To Sheet.Rows.Count -1
            Dim dr As DataRow = DataTables("综合所得申报").find("身份证号='" & sheet(n,3).Text & "'")
msgbox(dr IsNot Nothing)
            If dr IsNot Nothing
msgbox(dr("上月税务局实际扣税"))
msgbox(Sheet(n,38).Value)
                dr("上月税务局实际扣税") = dr("上月税务局实际扣税") + val(Sheet(n,38).Value)
msgbox(dr("上月税务局实际扣税"))
            Else
                dr =  DataTables("综合所得申报").AddNew()
                For m As Integer = 0 To nms.Length - 1
                If nms(m) = "" Then Continue For '跳过空标题(这个if不用加end if)
                    dr(nms(m)) = Sheet(n,m).Value
                Next
            End If
        Next

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 14:07:00 [显示全部帖子]

没有任何反应,说明这个循环代码根本就没有执行,检查这个嗲之上的其它代码的各种条件是否符合

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 20:33:00 [显示全部帖子]

       For n As Integer = 1 To Sheet.Rows.Count -1
msgbox(sheet(n,3).Text)
            Dim dr As DataRow = DataTables("工资计算").find("身份证号='" & sheet(n,3).Text & "'")
msgbox(dr IsNot Nothing)
            If dr IsNot Nothing
msgbox(Sheet(n,38).Value)
                dr("上月税务局实际扣税") = dr("上月税务局实际扣税") + val(Sheet(n,38).Value)
            Else

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/16 15:17:00 [显示全部帖子]

表格是不是其它事件影响了?如果没有事件,请上传实例测试

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/17 14:47:00 [显示全部帖子]

应该是数据有问题,检查execl里身份证号前面是不是会有一个单引号?把exec数据复制到记事本看看

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/17 17:37:00 [显示全部帖子]

新增项目做个例子发上来测试

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/18 11:02:00 [显示全部帖子]

DataTables("工资计算").find查询的是所有已经加载的数据,不管有没有筛选

如果要加上筛选条件

dim f as string = "身份证号='" & sheet(n,3).Text & "'"
if Tables("工资计算").filter > "" then
f = f & " and " & Tables("工资计算").filter
end if

Dim dr As DataRow = DataTables("工资计算").find(f)

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/18 13:44:00 [显示全部帖子]

val就是做转换的,不需要CSng

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109503 积分:557183 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/18 14:23:00 [显示全部帖子]

去掉所有的CSng

 回到顶部
总数 11 1 2 下一页