以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 代码纠错(新年好) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145554) |
-- 作者:lisangyu -- 发布时间: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"有审批记录了。 |
-- 作者:有点蓝 -- 发布时间: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 Thene.DataRow("进度") = "8A" End If End If End If |
-- 作者:lisangyu -- 发布时间:2020/1/30 11:15:00 -- 没有任何反应,上面的代码时写在表属性datacolchanged, |
-- 作者:lisangyu -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/1/30 11:46:00 -- 说明dr("所属部门") <> "行政管理部",代码不会进入后面的else代码里面 |
-- 作者:lisangyu -- 发布时间:2020/1/30 12:00:00 -- If User.IsRole(dr("维修厂")) Then e.DataRow("进度") = "6A" 这个代码有问题,始终条件不满足,跳到else了。
|
-- 作者:有点蓝 -- 发布时间:2020/1/30 13:20:00 -- 看2楼 msgbox(dr("维修厂")) \'这里显示什么内容?
|
-- 作者:lisangyu -- 发布时间:2020/1/30 16:50:00 -- 弹出2次窗口,分别显示修理厂的字段名称以及ture |
-- 作者:有点蓝 -- 发布时间:2020/1/30 16:57:00 -- 当前用户有这个修理厂名称的角色吗? |
-- 作者:lisangyu -- 发布时间:2020/1/30 17:14:00 -- 蓝老师,我找到原因了,这是我自己的问题,我之前没有表述清楚。 1、我之前上上个帖子想表达的是:当用户点击“维修厂”这个字段选择任意一个下拉选项名,当这个选项在系统里属于角色修理厂审核员时,将进度改成\'6A\'.但是If User.IsRole(dr("维修厂")) Then e.DataRow("进度") = "6A"有问题,老是跳过了。这个还请蓝老师指点。 2、("审批人6") 、("审批日期6") ,为当前用户自动填充的字段,根据蓝老师指导的判断代码错误的方法,发现该字段没有填充,弹出的也是ture,说明不能用该字段作为条件,如上面写的,要改成人工手输入的字段(“审批结果”)才行。
|