以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 表间数据调用出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86821) |
-- 作者:judyhu2008 -- 发布时间:2016/6/27 9:45:00 -- 表间数据调用出错 事件经过如下:
我有两个表,采购订单和采购到货单,采购到货后,我会调用采购订单的数据到采购到货单。 之前运行还算没有问题(所以应该排除代码问题吧)
这段时间经常出现如下情况: 1、在采购到货窗口调用采购订单数据,没有成功;后面我重新打开系统,又可以正常调用了。 2、数据居然跑到采购订单去了,VARS(表名)是指向到货单的。 [此贴子已经被作者于2016/6/27 10:59:27编辑过]
|
-- 作者:judyhu2008 -- 发布时间:2016/6/27 9:55:00 -- 更严重的是它还替换了我原来的表数据。PO20160001的采购订单被替换为了刚才选中但是没有成功导入采购订单的数据。 真的是很奇怪的现象 [此贴子已经被作者于2016/6/27 10:59:38编辑过]
|
-- 作者:judyhu2008 -- 发布时间:2016/6/27 9:58:00 -- 我分析了一下,这种情况应该就是VARS(表名)=采购到货单,这读成了采购订单吧,而且修改了选中行的数据。 但我在系统里,没有设VARS(表名)=采购订单啊。
|
-- 作者:大红袍 -- 发布时间:2016/6/27 10:03:00 -- 这种问题,就是你代码写得不严谨啊。
请贴出相应代码,或者做具体实例 |
-- 作者:judyhu2008 -- 发布时间:2016/6/27 10:12:00 -- 麻烦大大帮我看看,真的是谢谢大大每次的快速反映,先谢过了。(先直接贴代码了) 一、在采购到货单,选择采购单窗口,的代码如下: Dim Cols1() As String = {"订单编号","订单日期","供应商名称","存货编码","存货中文名","规格型号","品牌","主计量单位","数量"} Dim Cols2() As String = {"订单编号","订单日期","供应商名称","存货编码","存货中文名","规格型号","品牌","主计量单位","数量"} Dim count As Integer = 0 For Each r1 As Row In Tables("采购单选择_table1").GetCheckedRows Dim t As Table = Tables(vars("采购表名")) Dim r2 As Row If count = 0 Then r2 = t.current Else r2 = t.addnew End If count += 1 For i As Integer = 0 To Cols1.Length -1 r2(Cols2(i)) = r1(Cols1(i)) Next Next Forms("采购单选择").close 二、采购到货单的afterload事件如下 vars("采购表名") = "采购到货单" 与此相关的也就是这两段代码了。
|
-- 作者:judyhu2008 -- 发布时间:2016/6/27 10:13:00 -- 奇怪的是,明明要写入的是采购到货单,怎么会跳到采购订单上去。 |
-- 作者:大红袍 -- 发布时间:2016/6/27 10:15:00 -- 输出所有代码,搜索关键字 vars("采购表名")
http://www.foxtable.com/help/topics/1987.htm
|
-- 作者:judyhu2008 -- 发布时间:2016/6/27 10:26:00 -- 是有其它的地方也用到VARS(“采购表名”),但在主窗口改变的情况下,在新的窗口打开的情况下,VARS(“采购表名”)不是需要更新的吗? 因为代码是写在了AFTERLOAD事件里啊。 难有打开了窗口,但是不调用AFTERLOAD的情况吗?
|
-- 作者:大红袍 -- 发布时间:2016/6/27 10:28:00 -- 在运行的过程中,你肯定修改了它的值,不然不会那样。 |
-- 作者:judyhu2008 -- 发布时间:2016/6/27 11:23:00 -- VARS(“表名”),可否在退出时让它返回一个默认值,然后在打开窗口时再改为相应的值? |