以文本方式查看主题

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

--  作者:hgzvip
--  发布时间:2017/9/14 21:11:00
--  怎样撤销代码建立的关联?
我窗体上有两个临时表,之间没有关联,但实际是可以建立关联的(有一个列是对应的关系),因为输入Excel报表时无法同时显示两个表的内容,所以在调用报表文件时,我用
Relations.Add("关联1",DataTables("应收应付").DataCols("单位ID"),DataTables("收付查询_Table2").DataCols("客户ID"))
建立了一个关联,如果程序是刚启动的,就没有问题,执行过一次该代码后,就开始出问题了,提示的内容多种多样,我用
Relations.Delete("关联1")
删除这个关联,也是同样的各种报错,基本上要退出程序重新启动。
请教,如何正确在调用报表后撤销这个关联,恢复到没有建立关联前的状态?

--  作者:有点甜
--  发布时间:2017/9/14 21:15:00
--  

生成报表代码

 

Relations.Add("关联1",DataTables("应收应付").DataCols("单位ID"),DataTables("收付查询_Table2").DataCols("客户ID"))

\'生成报表代码

Relations.Delete("关联1")

 

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


--  作者:hgzvip
--  发布时间:2017/9/14 22:06:00
--  
感谢版主的帮助!
因为是在服务器中调用的数据,所以一时不知如何做个例子。
我的“应收应付”表是一个客户名称的列表,选择相应的记录后,通过按钮调出该客户的历史来往记录,显示在“收付查询_Table2”中。两个表都是设置为SQLQuery。
照版主的方式试了几次(我原来是把删除关联的那一句“Relations.Delete("关联1")”放在其他事件中了),还是有问题。主要是:
1.如果调用了一次报表,回到程序后,选择其他的客户,再想通过按钮调出该客户的历史记录时,显示错误:无法访问属性,因为“列必须属于某个表。”。
而且这个提示在关闭这个“应收应付”窗口后,点击其他功能按钮时还会出现(显示错误就在这个功能按钮中),而且无法启动别的窗口。
2.如果调用了一次报表,然后直接关闭这个窗口(我设置为主窗口),然后点击菜单上别的功能按钮时,显示错误:无法访问属性,因为“在不同 DataSet 中的表之间不能建立关系。”。
同样无法启动其他功能(显示错误也是在这个按钮上)。
3.我只能退出再启动,因为设置了退出程序时提醒,所以问我是否退出,然后又问我是否保存,但我只进行了上述查询和报表操作,没有更改数据的行为。
不知以上三点能不能说明什么问题。

--  作者:有点甜
--  发布时间:2017/9/14 22:09:00
--  
 单独做一个项目导入对应的表,做一个类似的例子发上来。
--  作者:hgzvip
--  发布时间:2017/9/14 22:16:00
--  
嗯嗯,感谢版主及时回复,因为这个程序赶着尽快启用,报表这块不是必须的功能,所以只能暂时搁置,过两天我做个例子上传请教。再次感谢!再次感谢!