在 Form Painter ABAP 中显示 VBDKR-WAERK 的值时出错

Error when showing the value of VBDKR-WAERK in Form Painter ABAP

我正在尝试修复 Form Painter 中与 VBDKR-WAERK 相关的错误。问题如下图所示:

所以 VBDKR-WAERK 应该是 EUR。这部分在 Form painter 中的代码是:

&VBDKR-ZTERM_TX1(IC)&
&'(='SKONTOWERT1(ICZ)' VBDKR-WAERK&)'&
&VBDKR-ZTERM_TX2(IC)&
&'(='SKONTOWERT2(ICZ)' VBDKR-WAERK&)'&
&VBDKR-ZTERM_TX3(IC)&

SKONTOWERT1 和 SKONTOWERT2 是 KOMVD-KWERT 类型。

有谁知道可能是什么问题吗? 如果您需要更多信息,请告诉我。

提前谢谢大家!

SAPScript 中的字段名称必须始终以“&”开头和结尾输入:

VBDKR-WAERK& => &VBDKR-WAERK&

&VBDKR-ZTERM_TX1(IC)&
&'(='SKONTOWERT1(ICZ)' &VBDKR-WAERK&)'&
&VBDKR-ZTERM_TX2(IC)&
&'(='SKONTOWERT2(ICZ)' &VBDKR-WAERK&)'&
&VBDKR-ZTERM_TX3(IC)&

虽然问题不是关于 Smart Forms,但我只是看到 SAPScript 和 Smart Forms 对符号的解释不同 &'pre-text'symbol'post-text'&。 SAPScript 接受 pre-textpost-text 中的符号,但 Smart Forms 不接受(使用 &'(='SKONTOWERT1(ICZ)' &VBDKR-WAERK&)'&,我得到异常 FORMATTING_ERROR,消息 ID SSFCOMPOSER,消息编号308,消息“Fields within fields are not allowed (SKONTOWERT1).”)。

此表示法适用于两种技术:

(=&SKONTOWERT1(ICZ)& &VBDKR-WAERK&)

意义

  • 文本“(=
  • 后接variable/symbol SKONTOWERT1(其中ICZ为3个独立字符,每个字符分别表示初始值(零)不输出,压缩spaces,省略前导零)
  • 接着一个 space
  • 接着是variable/symbolVBDKR-WAERK
  • 后跟文本“)