3

我正在尝试使用我制作的表格检查一个字段是否在 sm30 中保持初始状态。我已经转到表维护生成器,然后是 Environment->Modifications->Events 并使用以下代码创建了一个名为 check_class 的入口,类型为 01(在将数据保存在数据库中之前):

FORM CHECK_CLASS.

IF z10ficlassfica-z_class IS INITIAL.
  MESSAGE text-001 TYPE 'E'.
ENDIF.

ENDFORM.

它工作得很好,除了当 z10ficlassfica 是初始时它不会停留在表的维护中并进入 sm30 的第一个屏幕。我怎样才能让它留在sm30的维护屏幕上?希望我已经说清楚了。谢谢你。

4

2 回答 2

3

请看这个链接

  • 您可以使用事件,并且应该使用它们,不要修改生成的屏幕,这就是 SAP 提供事件的原因。
  • 您只需要两件事即可停止保存并留在屏幕上
    • MESSAGE 'Currency must be USD or IDR' TYPE 'S' DISPLAY LIKE 'E'.
    • vim_abort_saving = 'X'.
  • 阅读那个链接,里面有很多你需要的信息。
  • 作为一个好的做法,在错误消息中使用出错记录的键,这样用户在输入数千条新记录时可以找到该记录
于 2012-10-16T12:46:20.947 回答
2

请编辑您的原始问题,而不是添加另一个问题。我已经回答了那里的问题:不要使用事件,而是修改生成的屏幕。事件在这里不合适,因为您必须MESSAGE在屏幕LOOP声明中提出。

于 2012-10-16T09:29:00.703 回答