以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  表间数据调用出错  (http://foxtable.com/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(“表名”),可否在退出时让它返回一个默认值,然后在打开窗口时再改为相应的值?