以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  新版本的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=141261)

--  作者:foxtablefans
--  发布时间:2019/9/25 11:42:00
--  新版本的问题
之前反映过在beforesavedatarow事件中下面的代码不执行的问题

if e.datarow.locked=false then
e.datarow.locked=true

endif

现在发现过程是这样的 e.datarow里修改的内容能保存 但是locked没有保存
回到0908版本正常
比如 
e.datarow(“时间”)=date.now
if e.datarow.locked=false then
e.datarow.locked=true

endif
时间更新了 但是locked没更新


--  作者:狐狸爸爸
--  发布时间:2019/9/25 11:50:00
--  
我测试没有问题。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目131.table



--  作者:foxtablefans
--  发布时间:2019/9/25 12:01:00
--  
是外部数据源 
--  作者:foxtablefans
--  发布时间:2019/9/25 12:04:00
--  
我的项目里的所有父表的保存代码都是
e.datarow("制单时间")=date.now
if e.datarow.locked=false then
e.datarow.locked=true
messagebox.show("保存完成!",“提示”)

endif

这个在0908版本正常 到了新版本 发现单据没有锁定 但制单时间是有

--  作者:有点蓝
--  发布时间:2019/9/25 13:57:00
--  
上传实例说明
--  作者:狐狸爸爸
--  发布时间:2019/9/25 14:23:00
--  
我用外部数据源测试,也没有问题,如果你确定有问题,请轻快提交实例。
--  作者:foxtablefans
--  发布时间:2019/9/25 15:20:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190925151644.png
图片点击可在新窗口打开查看

两个问题 1.beforedatarow里的提示没有弹出
2.这个例子里的锁定状态返回是对的,但我项目里的就不行,返回0908版本是正常的我在查是否有其他原因


--  作者:foxtablefans
--  发布时间:2019/9/25 15:20:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:bug.zip


--  作者:foxtablefans
--  发布时间:2019/9/25 15:29:00
--  
我贴下项目里的beforesavedatarow 事件代码

If vars("保存")=True
    If e.DataRow.Isnull("客户名称") Then
        MessageBox.show("客户名称不能为空!","提示")
        e.Cancel=True
        Return
    End If
    If e.DataRow.Isnull("产品名称") Then
        MessageBox.show("产品名称不能为空!","提示")
        e.Cancel=True
        Return
    End If
    If e.DataRow.Isnull("计量单位") Then
        MessageBox.show("计量单位不能为空!","提示")
        Return
    End If
    If e.DataRow("产品编号").contains("-") Then
        Dim s1,s2 As String
        Dim i As Integer
        s1=e.DataRow("产品编号").split("-")(0)
        s2=e.DataRow("客户编号")
        i=val(e.DataRow("产品编号").split("-")(1))
        If i>0 Then
            Dim dr As DataRow=DataTables("合同顺序号").sqlfind("客户代码=\'" & s1 & "\' and 客户编号=\'" & s2 & "\' and id=" & e.DataRow("_identify"))
            If dr Is Nothing Then
                Dim r As Row=Tables("合同顺序号").addnew
                r("客户代码")=s1
                r("顺序号")=i
                r("客户编号")=s2
                r("id")=e.DataRow("_identify")
                r.save
            End If
        Else
            MessageBox.show("合同编号格式错误!","提示")
            e.Cancel=True
            Return
        End If
    End If
    
    If e.DataRow.Locked=False Then
        e.DataRow.locked=True
        MessageBox.show("保存成功!","提示")
    End If
End If
[此贴子已经被作者于2019/9/25 15:35:40编辑过]

--  作者:有点蓝
--  发布时间:2019/9/25 15:51:00
--  
项目连接不到数据库,无法测试

    If e.DataRow.Locked=False Then
        e.DataRow.locked=True
        MessageBox.show("保存成功!","提示")
    End If

改为
        e.DataRow.locked=True
        MessageBox.show("保存成功!","提示")

[此贴子已经被作者于2019/9/25 15:51:30编辑过]