以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  审批记录  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147800)

--  作者:lisangyu
--  发布时间:2020/3/24 15:07:00
--  审批记录

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20200324150403.jpg
图片点击可在新窗口打开查看
蓝老师:怎么保存图中的审批记录,退回后表单中的审批记录就会被清空。是再建一个表保存指定字段的内容,怎么在对应表单中调阅审批记录

--  作者:有点蓝
--  发布时间:2020/3/24 15:41:00
--  
1、直接在原表添加必要的列存储
2、添加一个审核表存储

--  作者:lisangyu
--  发布时间:2020/3/24 16:25:00
--  
蓝老师,有没有实例?
--  作者:有点蓝
--  发布时间:2020/3/24 16:28:00
--  
没有的。可以上传您的实例说明
--  作者:程兴刚
--  发布时间:2020/3/24 19:16:00
--  
审批意见写退回重修正,其他人见到后撒销审核,发起人在无任何审核的情况下,允许修改、删除,其他人其他状态禁止删除!
--  作者:lisangyu
--  发布时间:2020/3/25 13:48:00
--  
蓝老师:我借鉴了论坛里您以前发的操作日志的实列。代码如下:

If e.DataTable.Name <> "数据操作日志" Then
    If e.DataRow.RowState = 2 Then
        Return
    Else
        Dim dr As DataRow = DataTables("数据操作日志").AddNew
        dr("ID") = e.DataRow("_Identify")
        dr("用户") = User.Name
        dr("涉及表") = e.DataTable.Name
        dr("涉及列") = e.DataCol.Name
        dr("涉及行") = e.DataRow("_Identify")
        dr("时间") = Date.Now
        dr("操作") = """" & e.OldValue &  """ 改成了 """ & e.NewValue & """"       
    End If
End If
是能记录流程的操作日志

此主题相关图片如下:qq截图20200325133650.png
按此在新窗口浏览图片
然后我在审批界面加了一个进度调用“数据操作日志”表,作为申请审批的进度日志。
现在我只要表为“车辆维修申请单”中“审批意见1”、“审批结果1”、“审批意见2”、“审批结果2”····的变化记录
在调用的界面中再加入筛选 代码
Dim Filter As String
Filter = " 涉及表 = \'车辆维修申请表\' And ID = \'e.DataRow("_Identify")\'"
DataTables("数据操作日志").LoadFilter = Filter
DataTables("数据操作日志").Load()
代码不对,麻烦指导下。
涉及表=当前表名,ID=当前行 的ID,涉及列=“审批结果1”及“审批意见1”、“审批意见2”、“审批结果2”、、、、


--  作者:有点蓝
--  发布时间:2020/3/25 14:21:00
--  
Filter = " 涉及表 = \'车辆维修申请表\' And ID = \'" & e.DataRow("_Identify") & "\' and 涉及列 in (\'审批结果1\',\'审批意见1\',\'...自己补上\')"
--  作者:lisangyu
--  发布时间:2020/3/26 10:07:00
--  
一、蓝老师:我加了代码筛选,调用副本表时,table表显示不全,把代码去掉,table表显示就完整了。
Dim Filter As String
Filter = " 涉及表 = \'车辆维修申请表\' And ID = \'" &tables("车辆维修申请表").Current("_Identify")&"\' And 涉及列 In (\'审批结果1\',\'审批意见1\',\'审批结果2\',\'审批意见2\',\'审批结果3\',\'审批意见3\',\'审批结果4\',\'审批意见4\',\'审批结果5\',\'审批意见5\',\'厂家填写\',\'审批人7\')"
DataTables("数据操作日志").LoadFilter = Filter
DataTables("数据操作日志").Load()

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20200326095557.jpg
图片点击可在新窗口打开查看

二、流程审批控制的代码以前是放在datacolchanged里,后来我发现效率不高,我把控制代码直接放到窗口按钮里,并改了部分代码。如下:
Dim dr As Row = Tables("车辆维修申请表").Current
If dr IsNot Nothing Then
If dr("所属部门") <> "行政管理部"
    If dr.IsNull("审批结果1") = False AndAlso dr.IsNull("审批人1") = False Then
        dr("进度") = "2A"
        If dr.IsNull("审批结果2") = False AndAlso dr.IsNull("审批人2") = False Then
            dr("进度") = "3A"
            If dr.IsNull("审批结果3") = False AndAlso dr.IsNull("审批人3") = False Then
                dr("进度") = "4A"
                If dr.IsNull("审批结果4") = False AndAlso dr.IsNull("审批人4") = False Then
                    dr("进度") = "5A"
                    If dr.IsNull("审批结果5") = False AndAlso dr.IsNull("审批人5") = False
                        Dim us As UserInfo = Users(dr("维修厂"))
                        If  us.IsRole("维修厂审核员") Then
                            dr("进度") = "6A"
                        Else
                            dr("进度") = "7A"
                            If dr.IsNull("审批人7") = False AndAlso dr.IsNull("维修金额") = False Then
                                dr("进度") = "8A"
                            End If
                        End If
                        If dr.IsNull("审批人6") = False AndAlso dr.IsNull("审批日期6") = False Then
                            dr("进度") = "7A"
                            If dr.IsNull("审批人7") = False AndAlso dr.IsNull("维修金额") = False Then
                                dr("进度") = "8A"
                             End If   
                            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
        dr("进度") = "4A"
        
        If dr.IsNull("审批结果4") = False AndAlso dr.IsNull("审批人4") = False Then
            dr("进度") = "5A"
            If dr.IsNull("审批结果5") = False AndAlso dr.IsNull("审批人5") = False
                Dim us As UserInfo = Users(dr("维修厂"))
                If  us.IsRole("维修厂审核员") Then
                    dr("进度") = "6A"
                Else
                    dr("进度") = "7A"
                    If dr.IsNull("审批人7") = False AndAlso dr.IsNull("维修金额") = False Then
                        dr("进度") = "8A"
                    End If
                End If
                If dr.IsNull("审批人6") = False AndAlso dr.IsNull("审批日期6") = False Then
                    dr("进度") = "7A"
                    If dr.IsNull("审批人7") = False AndAlso dr.IsNull("维修金额") = False Then
                        dr("进度") = "8A"
                    End If
                End If
            End If
        End If
    End If
End If

现在当“所属部门”为“行政管理部”时,esle后面的代码不能执行。麻烦指导下那里有问题



--  作者:有点蓝
--  发布时间:2020/3/26 11:03:00
--  
副本和主表使用的是提一个datatable,重新加载数据当然2个都有影响。如果不想有影响,把副本改为sqltable

Else
msgbox(1) \'这里能不能弹出



--  作者:lisangyu
--  发布时间:2020/3/26 11:38:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20200326113655.jpg
图片点击可在新窗口打开查看
msgbox(1) \'这里能不能弹出  ,好像else后面都执行不了