Foxtable(狐表)用户栏目专家坐堂 → 代码纠错(新年好)


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

主题:代码纠错(新年好)

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
代码纠错(新年好)  发帖心情 Post By:2020/1/30 10:04:00 [只看该作者]

Select Case e.DataCol.Name
    Case "审批结果1","审批人1","审批结果2","审批人2","审批结果3","审批人3","审批结果4","审批人4","审批结果5","审批人5","审批人6","审批日期6","审批日期7","审批人7","维修厂"
        Dim dr As DataRow = e.DataRow
        If dr("所属部门") <> "行政管理部"
            If dr.IsNull("审批结果1") = False AndAlso dr.IsNull("审批人1") = False Then
                e.DataRow("进度") = "2A"
                If dr.IsNull("审批结果2") = False AndAlso dr.IsNull("审批人2") = False Then
                    e.DataRow("进度") = "3A"
                    If dr.IsNull("审批结果3") = False AndAlso dr.IsNull("审批人3") = False Then
                        e.DataRow("进度") = "4A"
                        If dr.IsNull("审批结果4") = False AndAlso dr.IsNull("审批人4") = False Then
                            e.DataRow("进度") = "5A"
                            If dr.IsNull("审批结果5") = False AndAlso dr.IsNull("审批人5") = False
                                If User.IsRole(dr("维修厂")) Then
                                    e.DataRow("进度") = "6A"
                                Else
                                    e.DataRow("进度") = "7A"
                                End If
                                If dr.IsNull("审批人6") = False AndAlso dr.IsNull("审批日期6") = False Then
                                    e.DataRow("进度") = "7A"
                                        If dr.IsNull("审批人7") = False AndAlso dr.IsNull("审批日期7") = False Then
                                    e.DataRow("进度") = "8A"
                                   
                                    End If
                                End If
                            End If
                        End If
                       
                    End If
                End If
            End If
           
        Else
            If dr.IsNull("审批结果1") = False AndAlso dr.IsNull("审批人1") = False Then
                e.DataRow("进度") = "4A"
               
                If dr.IsNull("审批结果4") = False AndAlso dr.IsNull("审批人4") = False Then
                    e.DataRow("进度") = "5A"
                    If dr.IsNull("审批结果5") = False AndAlso dr.IsNull("审批人5") = False
                        If User.IsRole(dr("维修厂")) Then
                            e.DataRow("进度") = "6A"

                        Else
                            e.DataRow("进度") = "7A"
                        End If
                        If dr.IsNull("审批人6") = False AndAlso dr.IsNull("审批日期6") = False Then
                            e.DataRow("进度") = "7A"
                             If dr.IsNull("审批人7") = False AndAlso dr.IsNull("审批日期7") = False Then
                                    e.DataRow("进度") = "8A"

                            End If
                        End If
                    End If
                End If
            End If
        End If
End Select
审批人和审批时间为系统自动填充,打开就自动填充;审批结果为手动选择。
1、流程走到红色部分就自动跳过了,进度不论什么条件自动执行ELSE下面的代码进度变为"7A"。当我选择字段“维修厂”的为系统设置好的“修理厂审核员”角色时,还是会跳过红色部分, User.IsRole(dr("维修厂")) 好像有点问题,麻烦指定点一下。
2、紫色部分代码也没有执行,即便"审批人7""审批日期7"有审批记录了



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


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/30 10:16:00 [只看该作者]



                    If dr.IsNull("审批结果5") = False AndAlso dr.IsNull("审批人5") = False
msgbox(dr("维修厂")) '这里显示什么内容?
                        If User.IsRole(dr("维修厂")) Then
                            e.DataRow("进度") = "6A"

                        Else
                            e.DataRow("进度") = "7A"
                        End If
msgbox(dr.IsNull("审批人6")) '这里显示什么内容?
msgbox(dr.IsNull("审批日期6")) '这里显示什么内容?
                        If dr.IsNull("审批人6") = False AndAlso dr.IsNull("审批日期6") = False Then
                            e.DataRow("进度") = "7A"
msgbox(dr.IsNull("审批人7")) '这里显示什么内容?
msgbox(dr.IsNull("审批日期7")) '这里显示什么内容?
                             If dr.IsNull("审批人7") = False AndAlso dr.IsNull("审批日期7") = False Then
                                    e.DataRow("进度") = "8A"

                            End If
                        End If
                    End If

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2020/1/30 11:15:00 [只看该作者]

没有任何反应,上面的代码时写在表属性datacolchanged,

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2020/1/30 11:15:00 [只看该作者]

                            If dr.IsNull("审批结果5") = False AndAlso dr.IsNull("审批人5") = False
                                If User.IsRole(dr("维修厂")) Then
                                    e.DataRow("进度") = "6A"
                                Else
msgbox(dr.IsNull("审批人6")) '这里显示什么内容?
msgbox(dr.IsNull("审批日期6")) '这里显示什么内容?
                                    e.DataRow("进度") = "7A"
                                End If
                                If dr.IsNull("审批人6") = False AndAlso dr.IsNull("审批日期6") = False Then
msgbox(dr.IsNull("审批人7")) '这里显示什么内容?
msgbox(dr.IsNull("审批日期7")) '这里显示什么内容?
                                    e.DataRow("进度") = "7A" 

我改成这样也没有反应,但是进度却变成7A
[此贴子已经被作者于2020/1/30 11:15:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/30 11:46:00 [只看该作者]

说明dr("所属部门") <> "行政管理部",代码不会进入后面的else代码里面

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2020/1/30 12:00:00 [只看该作者]

If User.IsRole(dr("维修厂")) Then
                                    e.DataRow("进度") = "6A"

这个代码有问题,始终条件不满足,跳到else了。

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


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/30 13:20:00 [只看该作者]

看2楼

msgbox(dr("维修厂")) '这里显示什么内容?

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2020/1/30 16:50:00 [只看该作者]

弹出2次窗口,分别显示修理厂的字段名称以及ture

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


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/30 16:57:00 [只看该作者]

当前用户有这个修理厂名称的角色吗?

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4295 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2020/1/30 17:14:00 [只看该作者]

蓝老师,我找到原因了,这是我自己的问题,我之前没有表述清楚。
1、我之前上上个帖子想表达的是:当用户点击“维修厂”这个字段选择任意一个下拉选项名,当这个选项在系统里属于角色修理厂审核员时,将进度改成'6A'.但是If User.IsRole(dr("维修厂")) Then
                            e.DataRow("进度") = "6A"有问题,老是跳过了。这个还请蓝老师指点。
2、("审批人6") 、("审批日期6") ,为当前用户自动填充的字段,根据蓝老师指导的判断代码错误的方法,发现该字段没有填充,弹出的也是ture,说明不能用该字段作为条件,如上面写的,要改成人工手输入的字段(“审批结果”)才行。

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