Foxtable(狐表)用户栏目专家坐堂 → 按条件增加行出错的问题


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

主题:按条件增加行出错的问题

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


加好友 发短信
等级:小狐 帖子:303 积分:2363 威望:0 精华:0 注册:2015/10/14 16:55:00
按条件增加行出错的问题  发帖心情 Post By:2015/12/29 13:30:00 [只看该作者]

老师好:  下面代码出错,请帮忙看看是什么问题,谢谢!

---------------------------
错误
---------------------------
编译错误:“r”是“Private”,因此它在此上下文中不可访问。

 

错误代码:If r.Checked  = True Then
---------------------------
确定  
---------------------------

 

For Each r As Row In Tables("转移过账_上传预览table1").Rows ''遍历所有行
    If r.IsNull("移动数量") = False Then ''如果行的数量不为空,设其复选框为选中
        r.Checked = True
    Else r.Checked = False '如果没有选中,弹出提示
        MessageBox.show(r.Index+1 & "行" & r("描述") & vbcrlf & """移动数量"" 不能为空!")
    End If
Next
If r.Checked  = True Then '对复选选中的行进行批量操作
    Dim r1 As Row = Tables("库存").AddNew() '定义在表库存中增加行
    If r("移动代码").StartsWith(2) Then '假如以2开头,按照下列规则增加行
        Dim r1 As Row = Tables("库存").AddNew()
        r1("物料描述") = r("描述")
        r1("移动单元") = r("移动单元")
        r1("移动代码") = r("移动代码")
        r1("移动文本") = r("移动文本")
        r1("移动数量") = r("移动数量")
        r1.Save()
    ElseIf r("移动代码").StartsWith(1) AndAlso r("接收单元") <> "0" Then '假如以1开头,并且行值不为0,按下面规则增加行
        Dim r1 As Row = Tables("库存").AddNew()
        r1("物料描述") = r("描述")
        r1("移动单元") = r("接收单元")
        r1("移动代码") = r("移动代码")
        r1("移动文本") = r("移动文本")
        r1("移动数量") = r("移动数量")
        r1.Save()
    End If
    If r("移动代码").StartsWith(3) Then '假如以3开头,按下面规则增加行
        Dim r1 As Row = Tables("库存").AddNew()
        r1("物料描述") = r("描述")
        r1("移动单元") = r("移动单元")
        r1("移动代码") = r("移动代码")
        r1("移动文本") = r("移动文本")
        r1("移动数量") = -r("移动数量")
        r1.Save()
    ElseIf r("移动代码").StartsWith(1) Then '假如以1开头,按下面规则增加行
        Dim r1 As Row = Tables("库存").AddNew()
        r1("物料描述") = r("描述")
        r1("移动单元") = r("移动单元")
        r1("移动代码") = r("移动代码")
        r1("移动文本") = r("移动文本")
        r1("移动数量") = -r("移动数量")
        r1.Save()
    End If
    r.Delete() '以上所有行增加到r1表之后,删除r表中对应的行
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/29 14:24:00 [只看该作者]

你下面的代码是不是要写在循环里面?

 

For Each r As Row In Tables("转移过账_上传预览table1").Rows ''遍历所有行
    If r.IsNull("移动数量") = False Then ''如果行的数量不为空,设其复选框为选中
        r.Checked = True
    Else r.Checked = False '如果没有选中,弹出提示
        MessageBox.show(r.Index+1 & "行" & r("描述") & vbcrlf & """移动数量"" 不能为空!")
    End If

 

    '其余的代码

 


Next


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


加好友 发短信
等级:小狐 帖子:303 积分:2363 威望:0 精华:0 注册:2015/10/14 16:55:00
  发帖心情 Post By:2015/12/29 14:51:00 [只看该作者]

是的,写在循环里面,但是怎么就只执行三次呢

For Each r As Row In Tables("转移过账_上传预览table1").Rows ''遍历所有行
    If r.Checked = True Then
        If r("移动代码").StartsWith(2) Then '假如以2开头,按照下列规则增加行
            Dim r1 As Row = Tables("库存").AddNew()
            r1("物料描述") = r("描述")
            r1("移动单元") = r("移动单元")
            r1("移动代码") = r("移动代码")
            r1("移动文本") = r("移动文本")
            r1("移动数量") = r("移动数量")
            r1.Save()
            r.Delete() '以上所有行增加到r1表之后,删除r表中对应的行
        End If
    End If
Next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/29 15:21:00 [只看该作者]

For i As Integer =Tables("转移过账_上传预览table1").Rows.count-1 To 0 Step -1 ''遍历所有行
    Dim r As Row = Tables("转移过账_上传预览table1").Rows(i)
    If r.Checked = True Then
        If r("移动代码").StartsWith(2) Then '假如以2开头,按照下列规则增加行
            Dim r1 As Row = Tables("库存").AddNew()
            r1("物料描述") = r("描述")
            r1("移动单元") = r("移动单元")
            r1("移动代码") = r("移动代码")
            r1("移动文本") = r("移动文本")
            r1("移动数量") = r("移动数量")
            r1.Save()
            r.Delete() '以上所有行增加到r1表之后,删除r表中对应的行
        End If
    End If
Next

 回到顶部