以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码检查  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55677)

--  作者:爱相随
--  发布时间:2014/8/21 11:11:00
--  代码检查
老师,下面三段代码,前面省略,第一段代码可以执行,后面两段为什么又不执行呢,谢帮助检查,谢谢!!


Else If User.IsRole("集团财务") Then
    For Each r As Row In Tables("ZJJHB").GetCheckedRows
        
        If Tables("ZJJHB").current.IsNull("SH") Then
            MessageBox.Show("集团总工办没有审核,不允许审核!.")
        Else
         If Tables("ZJJHB").current.IsNull("CWSH5") Then
                MessageBox.Show("你没有审定金额,请检查!.")
        Else
            Tables("ZJJHB").Current("CWSH2") = User.Name
            Tables("ZJJHB").Current.Save()
         End If
      End If
    Next
Else If User.IsRole("部门负责人") Then
    For Each r As Row In Tables("HTB").GetCheckedRows      
            Tables("HTB").Current("HTSH") = User.Name
            Tables("HTB").Current.Save()
    Next
Else If User.IsRole("部门负责人") Then
    For Each r As Row In Tables("XMJDB").GetCheckedRows      
            Tables("XMJDB").Current("BMSH") = User.Name
            Tables("XMJDB").Current.Save()
    Next

Else
    MessageBox.show("你无审核权限!")
End If

--  作者:Bin
--  发布时间:2014/8/21 11:26:00
--  
没符合条件就不执行呗  你用messageobox.show 调试一下就知道了
--  作者:有点甜
--  发布时间:2014/8/21 11:33:00
--  

 if 只会执行其中一个,每一段都要这样写

 

If User.IsRole("部门负责人") Then
    For Each r As Row In Tables("HTB").GetCheckedRows      
            Tables("HTB").Current("HTSH") = User.Name
            Tables("HTB").Current.Save()
    Next
    For Each r As Row In Tables("XMJDB").GetCheckedRows      
            Tables("XMJDB").Current("BMSH") = User.Name
            Tables("XMJDB").Current.Save()
    Next

Else
    MessageBox.show("你无审核权限!")
End If
[此贴子已经被作者于2014-8-21 11:32:50编辑过]

--  作者:爱相随
--  发布时间:2014/8/21 11:37:00
--  
老师,下面的代码从总工办开始以后的代码都不执行,而前面的代码又可以执行,都是一样的,为什么呢??谢指导,谢谢
\'以下代码为资计计划表审批流程
Else If User.IsRole("部门负责人") Then
    For Each r As Row In Tables("ZJJHB").GetCheckedRows
        
        If Tables("ZJJHB").current.IsNull("SBR") Then
            MessageBox.Show("未经上报的数据不允许审核!.")
        Else
            Tables("ZJJHB").Current("SHR") = User.Name
            Tables("ZJJHB").Current.Save()
        End If
    Next
Else If User.IsRole("造价合约部") Then
    For Each r As Row In Tables("ZJJHB").GetCheckedRows       
        If Tables("ZJJHB").current.IsNull("SHR") Then
            MessageBox.Show("部门负责人未审核!.")
        Else
         If Tables("ZJJHB").current.IsNull("合约意见") Then
                MessageBox.Show("你没有签暑审核意见,请检查!.")
        Else
            Tables("ZJJHB").Current("合约部") = User.Name
            Tables("ZJJHB").Current.Save()
         End If
      End If
    Next
Else If User.IsRole("总工办") Then
    For Each r As Row In Tables("ZJJHB").GetCheckedRows       
        If Tables("ZJJHB").current.IsNull("合约部") Then
            MessageBox.Show("造价合约部没有审核,不允许审核!.")
        Else
         If Tables("ZJJHB").current.IsNull("SHYJ") Then
                MessageBox.Show("你没有审定金额,请检查!.")
        Else
            Tables("ZJJHB").Current("SH") = User.Name
            Tables("ZJJHB").Current.Save()
         End If
      End If
    Next
Else If User.IsRole("集团财务") Then
    For Each r As Row In Tables("ZJJHB").GetCheckedRows
        
        If Tables("ZJJHB").current.IsNull("SH") Then
            MessageBox.Show("集团总工办没有审核,不允许审核!.")
        Else
         If Tables("ZJJHB").current.IsNull("CWSH5") Then
                MessageBox.Show("你没有审定金额,请检查!.")
        Else
            Tables("ZJJHB").Current("CWSH2") = User.Name
            Tables("ZJJHB").Current.Save()
         End If
      End If
    Next
Else If User.IsRole("部门负责人") Then
    For Each r As Row In Tables("HTB").GetCheckedRows      
            Tables("HTB").Current("HTSH") = User.Name
            Tables("HTB").Current.Save()
    Next
    For Each r As Row In Tables("XMJDB").GetCheckedRows      
            Tables("XMJDB").Current("BMSH") = User.Name
            Tables("XMJDB").Current.Save()
    Next

Else
    MessageBox.show("你无审核权限!")


--  作者:有点甜
--  发布时间:2014/8/21 11:41:00
--  

 不可能不执行啊。

 

 你msgbox(user.Roles) 看看,看得到的值是否有错啊。


--  作者:有点甜
--  发布时间:2014/8/21 11:43:00
--  

 先看五楼,再者,你这段代码明细不合理,Tables("xxx").Current 要改成 r

 

If User.IsRole("部门负责人") Then
    For Each r As Row In Tables("HTB").GetCheckedRows      
            r("HTSH") = User.Name
            Tables("HTB").Current.Save()
    Next
    For Each r As Row In Tables("XMJDB").GetCheckedRows      
            r("BMSH") = User.Name
            r.Save()
    Next

Else
    MessageBox.show("你无审核权限!")
End If

--  作者:爱相随
--  发布时间:2014/8/21 14:11:00
--  
老师。这段代码的红色部分,是项目进度表的部门审核按钮代码,为何点击后,部门负责人列会填上审核人,但为什么会把填表人列也替换为审核人呢,其他表就不会。

Else If User.IsRole("部门负责人") Then
    For Each r As Row In Tables("ZJJHB").GetCheckedRows
        
        If Tables("ZJJHB").current.IsNull("SBR") Then
            MessageBox.Show("未经上报的数据不允许审核!.")
        Else
            Tables("ZJJHB").Current("SHR") = User.Name
            Tables("ZJJHB").Current.Save()
        End If
    Next
    For Each r As Row In Tables("HTB").GetCheckedRows      
            Tables("HTB").Current("HTSH") = User.Name
            Tables("HTB").Current.Save()
    Next
    For Each r As Row In Tables("XMJDB").GetCheckedRows      
            Tables("XMJDB").Current("BMSH") = User.Name
            Tables("XMJDB").Current.Save()
    Next
   

[此贴子已经被作者于2014-8-21 14:11:00编辑过]

--  作者:有点甜
--  发布时间:2014/8/21 14:16:00
--  

 无关红色代码的问题,其它代码影响了,你自己排查一下原因。

 

 或者你直接修改BMSH,看填表人是否会变。


--  作者:爱相随
--  发布时间:2014/8/21 14:54:00
--  
我都看了,其他地方没有影响的代码啊。。。。
--  作者:有点甜
--  发布时间:2014/8/21 14:55:00
--  

 单独执行这一段代码,看效果。

 

For Each r As Row In Tables("ZJJHB").GetCheckedRows

        
        If Tables("ZJJHB").current.IsNull("SBR") Then
            MessageBox.Show("未经上报的数据不允许审核!.")
        Else
            Tables("ZJJHB").Current("SHR") = User.Name
            Tables("ZJJHB").Current.Save()
        End If
    Next
    For Each r As Row In Tables("HTB").GetCheckedRows      
            Tables("HTB").Current("HTSH") = User.Name
            Tables("HTB").Current.Save()
    Next
    For Each r As Row In Tables("XMJDB").GetCheckedRows      
            Tables("XMJDB").Current("BMSH") = User.Name
            Tables("XMJDB").Current.Save()
    Next