Foxtable(狐表)用户栏目专家坐堂 → ID没生成


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

主题:ID没生成

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


加好友 发短信
等级:狐精 帖子:3223 积分:21401 威望:0 精华:0 注册:2016/3/28 16:57:00
ID没生成  发帖心情 Post By:2020/4/15 11:28:00 [只看该作者]

老师,我内部函数代码是这样:

Dim r As Row = args(0)             '当前行
Dim name As String = r.Table.Name  '当前表名称
If r("审批状态") <> "已审批完成" Then
    If r("登记状态") <> True Then
        Dim dr  As  DataRow = DataTables("审核流程管理").SQLFind("表名称 = '" & name & "' and 流程编号 = 1 ")
        If dr IsNot Nothing Then  '如果找到的话
            If r("ID") Is Nothing Then
                r("审批状态") = dr("审批状态")
                r("登记人") = _UserXingMing
                r("登记日期") = Functions.Execute("服务器时间")
                r("ID")= Guid.NewGuid.TOstring()
                r("登记状态") = True
                r.Save
            Else
                r("审批状态") = dr("审批状态")
                r("登记人") = _UserXingMing
                r("登记日期") = Functions.Execute("服务器时间")
                r("登记状态") = True
                r.Save
            End If
                Dim dw As Row = Tables("审核意见表").AddNew()
                dw("审核部门")= _UserGroup
                dw("审核人")= _UserXingMing
                dw("审核日期")= Date.Now
                dw("审核意见")= "提交审核申请"
                dw("ID")= r("ID")
                dw.Save
            Return 1  '成功返回标志
        Else
            MessageBox.Show("该表未加入审批流程,请给管理员联系!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
            Return 0
        End If
    Else
        MessageBox.Show("该条记录已提交审批,如需修改,联系主管部门驳回申请!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
        Return 0
    End If
Else
    MessageBox.Show("该条记录已审批完成,请勿重复操作!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
    Return 0
End If

 

保存按钮代码如下:

Dim r As Row = Tables(Vars("text")).Current
If r IsNot Nothing Then
    Dim jg As Integer = Functions.Execute("提交审批申请",r)
Else
    MessageBox.Show("错误")
End If

 

我保存后,ID没生成是什么问题呢?


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


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

能不能自己先调试一下,然后给出分析结果做参考?

        If dr IsNot Nothing Then  '如果找到的话
msgbox(r("ID"))
            If r("ID") Is Nothing Then
                r("审批状态") = dr("审批状态")
                r("登记人") = _UserXingMing
                r("登记日期") = Functions.Execute("服务器时间")
                r("ID")= Guid.NewGuid.TOstring()
msgbox(r("ID"))
                r("登记状态") = True
                r.Save
            Else
                r("审批状态") = dr("审批状态")
                r("登记人") = _UserXingMing
                r("登记日期") = Functions.Execute("服务器时间")
                r("登记状态") = True
                r.Save
            End If
msgbox(r("ID"))
                Dim dw As Row = Tables("审核意见表").AddNew()
                dw("审核部门")= _UserGroup
                dw("审核人")= _UserXingMing
                dw("审核日期")= Date.Now
                dw("审核意见")= "提交审核申请"
                dw("ID")= r("ID")
                dw.Save
msgbox(dw("ID"))
            Return 1  '成功返回标志
        Else
            MessageBox.Show("该表未加入审批流程,请给管理员联系!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
            Return 0
        End If

Dim jg As Integer = Functions.Execute("提交审批申请",r)
msgbox(r("ID"))

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


加好友 发短信
等级:狐精 帖子:3223 积分:21401 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/15 11:53:00 [只看该作者]

If r("ID") Is Nothing Then

这一句判断为空不对。

 

[此贴子已经被作者于2020/4/15 11:53:29编辑过]

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


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


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


加好友 发短信
等级:狐精 帖子:3223 积分:21401 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2020/4/15 19:03:00 [只看该作者]

老师,一个表事件里面这样的代码有几段,数据添加到不同的表,有点影响速度,这种怎么解决呢?
If e.DataCol.Name = "审批状态"
    If e.DataRow("审批状态") = "已审批完成" Then
        Dim str1()As String = {"合同编码","合同金额","合同工期","项目经理","项目总工"}
        Dim str2()As String = {"合同编码","项目编码","所属机构","项目类别","招标方式","项目名称","建设单位","合同金额","合同工期","项目经理","项目总工"}
        Dim dr As DataRow = DataTables("合同归档").sqlFind("项目编码 = '" & e.DataRow("项目编码") & "'") '找出合同编码相同的项目
        If dr IsNot Nothing Then '如果找到的话
            For Each nm As String In str1
                e.DataRow(nm)= dr(nm)
            Next
            dr.save
        Else
            Dim dw As DataRow = DataTables("合同归档").AddNew
            For Each nm As String In str2
                e.DataRow(nm)= dr(nm)
            Next
            dr.save
        End If
    End If
End If

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


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

这个要从业务逻辑上解决。代码已经没有可优化的余地了

 回到顶部