【问题标题】:Why can't I open a *.w file in the appBuilder?为什么我无法在 appBuilder 中打开 *.w 文件?
【发布时间】:2021-01-14 16:07:14
【问题描述】:

我有一个 *.w 文件,指的是两个包含文件({incl\include_file.i}{incl\do_something_file.i})。第一个包含文件包含 RECID 变量“recordid”的定义:

  DEF INPUT-OUTPUT PARAMETER recordid      AS RECID.

我能够编译 *.w 文件,列表文件如下所示:(只是一个片段)

Prompt>findstr "recordid do_something" listing.txt
...
 1    x       DEF INPUT-OUTPUT PARAMETER recordid      AS RECID.
...
 1    x   1   {incl\do_something_file.i
 2    x   1 INPUT-OUTPUT recordid

所以,编译工作。最重要的是,我检查了“&ANALYZE-SUSPEND”和“&ANALYZE-RESUME”子句对,一切都很好。

不过,我无法打开 *.w 文件,因为提到的 RECID 似乎未知(错误 201 和 196)。

在第一次 cmets 后编辑 这是我在使用 AppBuilder 打开 *.w 文件时收到的确切错误消息(我正在使用该工具的荷兰语版本,因此介于两者之间):

---------------------------
Fout
---------------------------
This file cannot be analyzed  by the AppBuilder. 
Please check these problems in your file or environment: 

** Onbekende veld- of variabelenaam - recordid. (201)
** .\incl\<do_something_file>.i Compilatiefout op regel 7. (196)
---------------------------
OK   
---------------------------

编辑更多关于 ANALYZE- 子句的信息 我在我的代码上启动了以下findstr 命令,结果如下:

Prompt>findstr /I "ANALYZE-RESUME ANALYZE-SUSPEND" <filename>.w
&ANALYZE-SUSPEND _VERSION-NUMBER ... GUI
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS ...
&ANALYZE-RESUME
...

我确认&amp;ANALYZE-SUSPEND 子句的数量等于&amp;ANALYZE-RESUME 子句的数量,它们的顺序是正确的(首先是SUSPEND,然后是RESUME)并且没有一个被注释掉。

有人知道出了什么问题吗?

【问题讨论】:

  • open 用什么?编辑?还是您的意思是您正在启动.w?还提供报告的确切错误。您可能还想preprocess 文件,这适用于所有包含和其他预处理规则。您可能还想查找keyword forget list - knowledgebase.progress.com/articles/Article/P6962
  • 您确定错误在该行吗?而“开放”是指跑步吗?
  • @StefanDrissen:根据您的评论,我已经更新了问题。
  • 第 7 行的 .i 中有什么内容?你能发布文件的内容吗?
  • 在第 7 行,有other-recordid = recordid。这可能会让您相信这个变量 (recordid) 尚不为人所知,但如果是这种情况,文件将无法编译,它会编译(如调试列表中所证明的那样)。

标签: openedge progress-4gl


【解决方案1】:

问题是由包含在 suspend resume 子句之外引起的,为了解决这种情况,以下命令可能有用:

findstr /I "ANALYZE {incl" <source_file>.w

结果应如下所示:

...
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Win
{incl\something.i}
{incl\something_else.i}
&ANALYZE-RESUME
...

您会看到以下规则:

  1. 暂停和恢复的次数必须相等。
  2. 每次挂起都将通过恢复来关闭。
  3. 其中任何一个都不能被注释掉。
  4. 建议在暂停和恢复之间添加包含。

【讨论】:

  • 您是在文档中找到这些规则还是根据您的发现构建它们。如果您想测试您的代码是否在 appbuilder 中打开,我发现的唯一可靠方法实际上是在 appbuilder 中打开。如果您需要,可以自动在 appbuilder 中打开。
  • 我根据我的发现创建了这些规则。我经常在另一个编辑器 (Notepad++) 中打开我的代码,因为过程编辑器只显示部分代码并且没有语法高亮显示。
猜你喜欢
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 2022-08-16
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
相关资源
最近更新 更多