Foxtable(狐表)用户栏目专家坐堂 → 索引超出了数组界限


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

主题:索引超出了数组界限

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


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

For Each dr As Row In Tables("装配日记录表").rows
    Dim ary() As String = dr("不良原因及数量").split(",")
    For Each s As String In ary
        Dim ndr As Row = Tables("装配质量流水账").addnew
        Dim a() As String = s.split("*")
        ndr("不良原因") = a(0)
if a.length > 1 then ndr("不良数量") = a(1)
ndr("产品编号") = dr("产品编号")
    Next
Next

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


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

说明源表就没有数据

For Each dr As Row In Tables("装配日记录表").rows
msgbox(dr("不良原因及数量"))
……

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


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

源数据源怎么样的?根据什么字符分隔?不可能根据空字符串分隔到的.split("")

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


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

数据里要改为英文的逗号:Dim ary() As String = dr("不良原因及数量").split(",")

然后“掌声30”这种中间没有分隔符,是无法使用split拆分的。改为“掌声-30”这种,或者其它符号分隔

不然有点麻烦,可以参考
Dim pattern As String = "[\u4e00-\u9fa5]"
For Each dr As Row In Tables("装配日记录表").rows
    Dim ary() As String = dr("不良原因及数量").split(",")
    For Each s As String In ary
        Dim ndr As Row = Tables("装配质量流水账").addnew
Dim str = System.Text.RegularExpressions.Regex.Replace(s, pattern ,"")
ndr("不良数量") = str
ndr("不良原因") = s.replace(str,"")
ndr("产品编号") = dr("产品编号")
    Next
Next

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


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

使用8楼的方法处理后,在对"不良数量"列数据进行统计

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


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

判断一下空值

For Each dr As Row In Tables("装配日记录表").rows
if dr.isnull("不良原因及数量")=false
    Dim ary() As String = dr("不良原因及数量").split(",")
    For Each s As String In ary
if s > ""
        Dim ndr As Row = Tables("装配质量流水账").addnew

 回到顶部