以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  触发父表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=183945)

--  作者:wlj88868
--  发布时间:2022/11/20 10:06:00
--  触发父表

老师帮看一下,下面的代码不用加载,父表的行不出结果,加载的加上在出库的时候会卡顿一下,有没有办法刷新二维码对应行的代码

 

DataTables("采购入库").SQLReplaceFor("出库情况", "已出库", "二维码=\'" & Tables("出库明细").Current("二维码") & "\'")
DataTables("采购入库").Load


--  作者:kylin
--  发布时间:2022/11/20 10:26:00
--  
你这么表达,无法掌握你的具体场景要求,所以无从下手
1、请补充说明这个场景要求


--  作者:wlj88868
--  发布时间:2022/11/20 10:35:00
--  
这样截图能理解吗
图片点击可在新窗口打开查看此主题相关图片如下:1668911567530.png
图片点击可在新窗口打开查看

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

--  作者:kylin
--  发布时间:2022/11/20 12:23:00
--  
1、第一个做法:
在入库表的CurrentChanged事件当中
Dim r = e.Table.Current
If r Is Nothing Then \'如果Current为Nothing
    Return \'则返回
End
If
Dim fdr = DataTables("出库明细").Find("二维码=\'" & r!二维码 &"\'")
if fdr IsNot Nothing
  r!出库情况 = "已出库"
Else
   r!出库情况 = Nothing
End if
  r.Save

2、第二个做法:
在出库明细表的DataColChanged事件当中
Dim cn = e.DataCol.Name
Dim dr = e.DataRow
If cn = "二维码" Then
    If e.NewValue > "" Then
        Dim fdr = DataTables("采购入库").Find("二维码=\'" & e.NewValue & "\'")
        If fdr IsNot Nothing Then
            fdr!出库情况 = "已出库"
            fdr.Save
        End If 
    End If
    If e.OldValue > "" Then
        Dim fdr = DataTables("采购入库").Find("二维码=\'" & e.OldValue & "\'")
        If fdr IsNot Nothing Then
            fdr!出库情况 = Nothing
            fdr.Save
        End If 
    End If
End If



[此贴子已经被作者于2022/11/20 12:24:49编辑过]

--  作者:kylin
--  发布时间:2022/11/20 12:28:00
--  
提供思路而已,具体的,还请你自己调试,因为你自己有完整的项目可以测试
--  作者:wlj88868
--  发布时间:2022/11/20 13:27:00
--  

出库明细表按照你第2中调试了,,采购入库是分页的,,在当前页可以实现,,二维码不在当前页还是不会填入,还是要重新加载一下才可以,,还有没有办法在出库明细二维码输入确定后就执行采购入库相同二维码刷新

我把附件发上来,,麻烦老师测一下,,在出库列表.出库明细那里输入2维码,,采购入库自动刷新出库情况


--  作者:wlj88868
--  发布时间:2022/11/20 13:28:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:2022-10-25开发.rar


--  作者:kylin
--  发布时间:2022/11/20 16:28:00
--  
不知道为什么打不开你的项目,提示你的版本过高。可是我的版本已经是最新的版本了,尴尬中
--  作者:wlj88868
--  发布时间:2022/11/20 19:17:00
--  
哈哈,难道我的版本比开发公司的还高,呵呵,我刚刚想了一个办法,在出库列表点击按钮上加了采购入库的取消分页,,这样就点开加一次,后面明细输入就不会卡顿了,这样到后面数据越来越大不知道会不会卡死
--  作者:有点蓝
--  发布时间:2022/11/20 20:22:00
--  
Find为sqlfind

Dim cn = e.DataCol.Name
If cn = "二维码" Then
    If e.NewValue > "" Then
        Dim fdr = DataTables("采购入库").SQLFind("二维码=\'" & e.NewValue & "\'")
        If fdr IsNot Nothing Then
            fdr!出库情况 = "已出库"
            fdr.Save
        End If 
    End If