为什么我不能在 appBuilder 中打开 *.w 文件?

Why can't I open a *.w file in the appBuilder?

我有一个 *.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)。

第一条评论后编辑 这是我在使用 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
...

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

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

问题是由包含在 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. 建议在挂起和恢复之间有include。