以文本方式查看主题

-  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=110842)

--  作者:hopestarxia
--  发布时间:2017/12/11 7:40:00
--  查看窗口为什么有的窗口不能加载
老师,在一个窗口中同时要加载这几个表,加载的代码如下,相同的代码,为什么2,3,4报表有时候能加载,有时不能加载,而1,5,6却随时能加载出来数据。

\'收集并填充字段内容
Dim dst As Table = Tables("基础配方列表_Table1")
Dim dr As Row = dst.Current \'获得选定行
vars("str1") = dr("bomid") \'保存原货品单号,确保变更后可以删除原记录
\'生成出入库明细数据


DataTables("l_goodsbompfxx").LoadFilter = "[bomid] = " & vars("str1") 
DataTables("l_goodsbompfxx").Load(False)

DataTables("l_goodsbomnew").LoadFilter = "[bomid] = " & vars("str1") 
DataTables("l_goodsbomnew").Load(False)

DataTables("l_goodsbomgxyq").LoadFilter = "[bomid] = " & vars("str1") 
DataTables("l_goodsbomgxyq").Load(False)

DataTables("l_goodsbomxmgl").LoadFilter = "[bomid] = " & vars("str1") 
DataTables("l_goodsbomxmgl").Load(False)

DataTables("l_goodsbomcjgl").LoadFilter = "[bomid] = " & vars("str1") 
DataTables("l_goodsbomcjgl").Load(False)

DataTables("l_goodsbombzyq").LoadFilter = "[bomid] = " & vars("str1") 
DataTables("l_goodsbombzyq").Load(False)


--  作者:有点甜
--  发布时间:2017/12/11 8:41:00
--  

删除其余加载代码,只写下面的代码,能否正常加载?

 

DataTables("l_goodsbomnew").LoadFilter = "[bomid] = " & vars("str1") 
DataTables("l_goodsbomnew").LoadTop = ""
DataTables("l_goodsbomnew").LoadPage = 0
DataTables("l_goodsbomnew").Load(False)

--  作者:hopestarxia
--  发布时间:2017/12/11 9:10:00
--  
老师,情况 还是一样的。
我这个也不是每次都不能加载,有时能加载,点开表上就有内容,有时就不能加载。
如果不能加载的时候是表2,3,4的内容都一起不能加载显示数据,但是表1,5,6到了每次都正常显示数据。

如果不加载,在那个列表窗口刷新几下,再点查看这个窗口,窗口中的表就加载上了。
基本上有一半的时候不能加载上数据。

--  作者:hopestarxia
--  发布时间:2017/12/11 9:11:00
--  
用了您的代码,那个表还是有时点开有内容,有时点开没有内容。
--  作者:有点甜
--  发布时间:2017/12/11 9:44:00
--  

不可能。执行下面代码看弹出什么

 

 

DataTables("l_goodsbomnew").LoadFilter = "[bomid] = " & vars("str1") 
 
msgbox(DataTables("l_goodsbomnew").LoadFilter)
 
DataTables("l_goodsbomnew").LoadTop = ""
DataTables("l_goodsbomnew").LoadPage = 0
DataTables("l_goodsbomnew").Load

--  作者:hopestarxia
--  发布时间:2017/12/11 10:01:00
--  
老师,出来显示BOMID = (对应选择行的ID号),这个没有错,但是就是不出来数。
到处检查了都没反现问题,除这三个表外,其他几个同在这个窗口中的表都能正确加载数据。
这三个表是如果不加载就都不加载,如果加载就都全加载了。

老师,我把文件传上来,麻烦老师帮我看一下。

--  作者:有点甜
--  发布时间:2017/12/11 10:07:00
--  

看看表格的beforeLoad事件、afterLoad事件有什么代码影响。

 

如果还有问题,做个例子发上来测试。


--  作者:hopestarxia
--  发布时间:2017/12/11 10:50:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:系统管理.rar


老师版本为开发版最新版,数据库为SQL2005,

在列表窗口新增加的清单资料,保存后点查看(或修改时),在查看或修改窗口中有时能查看到窗口中(Table1,Table2,Table3)的数据,有时不能看到,
其他Table的数据每次点开都能看到。如果不能看到的时候,关掉修改或查看窗口,点几下列表窗口的重置,再点查看或修改,调出的窗口就能看到了。

另外,如果在列表窗口中点击的是修改按钮,如果窗口中(Table1,Table2,Table3)的数据不显示的话,在修改窗口中点击了“保存”按钮,却该三个窗口中Table表对应的数据库下的字段(l_goodsbomnew,.....),这三个对应的表的数据就会全清空丢失了。

请老师帮检查一下。

--  作者:有点甜
--  发布时间:2017/12/11 11:34:00
--  

呃....你写了下面的代码,【窗口ckpf 控件TextBox7 事件ValueChanged

 

With e.form.controls("Table1").Table
    For i As Integer = .Rows.count - 1 To 0 Step -1
        .Rows(i).Delete
    Next
End With


With e.form.controls("Table2").Table
    For i As Integer = .Rows.count - 1 To 0 Step -1
        .Rows(i).Delete
    Next
End With


With e.form.controls("Table3").Table
    For i As Integer = .Rows.count - 1 To 0 Step -1
        .Rows(i).Delete
    Next
End With


--  作者:hopestarxia
--  发布时间:2017/12/11 12:20:00
--  
谢谢老师,老师太强大了。
我这个代码最早是加在新增窗口用的,
为了是如果在新增时发现产品选择错了,却重选产品就把对应的清单记录清除了。

后面新增窗口做好了,修改与查看窗口就是用新增窗口改的,
没想到那个语句造成了这么大的影响。我到位代码,包括表属性都去看,就是找不到问题:(

再请问老师,我那个语句在新增的那个窗口那里如果不去掉,会对数据造成影响吗?