首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在FoxPro中,如果从网格中的按钮调用表单,为什么选择的表会在表单中更改?

在FoxPro中,如果从网格中的按钮调用表单,为什么选择的表会在表单中更改?
EN

Stack Overflow用户
提问于 2015-11-09 15:37:53
回答 2查看 527关注 0票数 0

我有一个主表,它叫运费。

此运费表单有所有属性设置为默认,除了标题,名称和窗口类型,即1-Modal。使用代码的唯一方法是init,它具有:

代码语言:javascript
复制
select FRT1

表单上唯一的对象是一个命令按钮,其中包含在click方法中:

代码语言:javascript
复制
messagebox(alias())
thisform.release()

因此,当我按下命令按钮时,消息框会说FRT1,但是它会从主表单中给出另一个别名。

在从主窗体调用表单之前,别名也显式地设置为FRT1。

代码语言:javascript
复制
select FRT1
do form freight

因为货运表单是模态的,所以在货运表单运行时,主表单中没有任何东西会影响数据区域。

由于货运单上几乎没有任何东西,所以问题似乎是以主形式出现的。

这种错误行为似乎只有在从网格中的按钮调用货运表单时才会发生。对于正在发生的事情或如何防止它,有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-09 16:14:53

只是一些想法。

我会打开您的调试器并将

代码语言:javascript
复制
SET STEP ON

在紧接执行

代码语言:javascript
复制
SELECT FRT1
DO FORM FREIGHT

然后,在调试器中,转到“监视”窗口并输入值。

代码语言:javascript
复制
ALIAS()

作为要观察的值,并在左边的栏中单击以显示红色点,以便在其更改时停止。

只是一个期待的想法。您的“运费”表单的"DataSession“属性为”1-默认数据会话“,如果是,它将查看默认会话中的任何别名,而不是主窗体可能具有的私有数据会话.

我只看到过这种非常罕见的情况(在25+年与FoxBase、FoxPro、VFP的合作中有2次)。在这些情况下,我不得不连续两次显式地选择表。

代码语言:javascript
复制
SELECT FRT1
SELECT FRT1

甚至在两者之间放置虚假的语句,例如

代码语言:javascript
复制
SELECT FRT1
tmpXXXXXX = alias()
SELECT FRT1

检查断点,看看它是否有效。

我只想做另外一个断点..。把“节目()”放进手表窗口。它会不会调用其他你不知道的派生类脚本.还是在窗体的"DataEnvironment“中运行代码,例如在"BeforeOpenTables”事件中?与其绕行,不如知道它在哪里做事。

票数 1
EN

Stack Overflow用户

发布于 2015-11-09 17:06:00

在被调用的表单(通常是网格)上,没有任何控件可以获取焦点,从而隐式地导致对当前工作区的更改吗?

顺便说一下,我建议使用私有数据会话,并将每个会话保持独立。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33612682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档