以文本方式查看主题
- 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之后,因为当前行的改变,自然会改变关联表的内容的。
|