以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]程序启动后提示未找到列[Spe]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=110297)

--  作者:chnfo
--  发布时间:2017/11/30 15:51:00
--  [求助]程序启动后提示未找到列[Spe]
1、使用内部数据表。
2、表Z与表A的字段设置了关联关系,且表A中的一些字段使用了表达式列,设置了表达式,如parent(ZA).Spe
3、将原来的表Z的字段Spe改为XX。

重新运行程序时,提示未找到列[Spe]
.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2017.10.16.1
错误所在事件:
详细错误信息:
未找到列 [Spe]。

在窗口中执行程序
for each dt as datatable in datatables
if dt.datacols.contains("Spe") then 
output.show(dt.name)
end if 
next
output.show("检索完毕")

执行结果显示:没有任何一个表中有字段Spe

然后打开杂项-输出代码,对照文档,把系统中的所有的代码中有关Spe的信息,全部修改为XX。
再运行程序,仍然提示未找到列[Spe]
但进入程序之后,做一些业务操作,又一切正常。


再打开杂项-输出代码,检索Spe,没有任何信息。

这是为什么呢?
[此贴子已经被作者于2017/11/30 15:55:57编辑过]

--  作者:chnfo
--  发布时间:2017/11/30 16:08:00
--  
我倒,找到原因了。
给表Z定义了一个视图,其中涉及到了字段Spe,修改字段名后,没有重新定义视图(可能原视图认为有字段Spe,现在换成了XX),当运行程序执行z.openview("已定义的视图名")时,会检测不到Spe这个字段,报出错误。