以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 子表的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85348)

--  作者:cxj1988mmx
--  发布时间:2016/5/23 20:00:00
--  [求助] 子表的问题
我有报价单自动生成合同的系统,合同内数据生成后报价单窗口关闭, 报价单窗口关闭后无任何代码,但是table( 合同从表) 数据消失,报价单窗口关闭前数据都存在,如2张图所示,table(合同从表)中也没有新增加的数据   但是数据在DataTable(合同从表)中的数据应该存在,并且没有保存。 保存后后重新打开数据又在合同从表出现。不知道怎么回事。
感觉是关闭报价单窗口后table(合同从表)数据都没有显示  , 我在报价单窗口Afterclose 代码中添加保存合同从表,追载数据,该数据不会在合同从表中出现,但在合同窗口中添加个按钮控件,里面用相同的代码,在数据消失后单击控件执行相同代码,合同从表中数据从新出现。现在不知道问题出在哪里,只感觉报价单窗口关闭后 table没有显示DataTable的数据。
[此贴子已经被作者于2016/5/23 20:03:58编辑过]

--  作者:大红袍
--  发布时间:2016/5/23 20:08:00
--  
 还不如直接做个例子上来说明。没看懂你的意思。至少贴出代码或者截图说明你执行了什么,最后怎么样了。
--  作者:cxj1988mmx
--  发布时间:2016/5/23 20:22:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:用弹窗中断代码.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:用弹窗中断代码后.png
图片点击可在新窗口打开查看

报价单窗口中生成合同控件的代码

  Functions.Execute("报价单生成合同")
    Tables("合同主表").Visible = True
    MainTable = Tables("合同主表")    
    Forms("报价单").close()

 

 


--  作者:大红袍
--  发布时间:2016/5/23 20:23:00
--  
执行了什么加载的代码?
--  作者:cxj1988mmx
--  发布时间:2016/5/23 20:25:00
--  

将报价单窗口Afterclose 代码设置成

MessageBox.Show(1)

 

第二张图是单击确定后合同从表数据全部消失

 


--  作者:大红袍
--  发布时间:2016/5/23 20:28:00
--  
 你肯定有加载或者筛选的代码执行了,不然数据不会丢失。
[此贴子已经被作者于2016/5/23 20:27:45编辑过]

--  作者:cxj1988mmx
--  发布时间:2016/5/23 20:29:00
--  

将合同窗口的加载代码全部清除出现相同的问题


--  作者:大红袍
--  发布时间:2016/5/23 20:30:00
--  
 例子发上来。
--  作者:cxj1988mmx
--  发布时间:2016/5/23 22:21:00
--  

问题解决了,  我在Functions.Execute("报价单生成合同")中的代码第一行代码用了

DataTables("合同主表").Load()

合同主表 设置了加载条件,新增行不满足加载条件,因为合同日期为空,并不是当天合同,加载后使用了e.DataTable.LoadChildren("合同从表")

将该代码删除就可以了,还不知道怎么发例子

但是我的table(“合同主表.合同从表”)。AddNew() 和 MessageBox.Show(1)DataTables("合同主表").Load()代码之后,也不知是不是这个原因,反正删除了这行代码运行就正常了,不是太了解load是怎么运行的。

这里太感谢大红袍了。

 

 

 

 


--  作者:大红袍
--  发布时间:2016/5/23 22:25:00
--  

Load(),会根据你设置LoadFilter属性,或者你的AppendLoad设置的条件进行加载的。

 

当你主表Load之后,因为当前行的改变,自然会改变关联表的内容的。