为什么我不能在 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
...
您看到以下规则:
- 暂停和恢复的次数必须相等。
- 每次挂起都将通过恢复来结束。
- 没有一个可以被注释掉。
- 建议在挂起和恢复之间有include。
我有一个 *.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
...
您看到以下规则:
- 暂停和恢复的次数必须相等。
- 每次挂起都将通过恢复来结束。
- 没有一个可以被注释掉。
- 建议在挂起和恢复之间有include。