我有一个*。w文件,引用两个包含文件({inclinclude_file.i}
, {incldo_something_file.i}
)。第一个include-file包含一个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 {incldo_something_file.i
2 x 1 INPUT-OUTPUT recordid
所以,编译成功了。最重要的是,我检查了& & analysis - suspend &;和",ANALYZE-RESUME"条款和一切都很好。
然而,我打不开*。w文件,因为上面提到的recd似乎不知道(错误201和196)。
在第一个注释后编辑这正是我打开*时得到的错误信息。. w文件,使用AppBuilder(我使用的是该工具的荷兰语版本,因此中间有荷兰语):
---------------------------
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
),它们都没有被注释掉。
有谁知道出了什么问题吗?
这个问题是由包含引起的,在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
{inclsomething.i}
{inclsomething_else.i}
&ANALYZE-RESUME
...
规则如下:
- 挂起数和恢复数必须相等
- 每次挂起都要通过恢复来关闭。
- 这些都不能被注释掉
- 建议在挂起和恢复之间包含。