3

我有一个使用事件块AT LINE SELECTION(和HIDE)的列表报告。

AT LINE-SELECTION.
    WRITE: 'Testline'.
* and some more things

当我双击主列表中的一行时,AT LINE SELECTION被处理,并且主列表被替换为包含文本“Testline”的列表。

当我点击绿色的后退按钮时,主列表再次显示。

一切正常。

现在我的问题:

当用户单击绿色后退按钮从详细列表转到主列表时,是否有某种方式可以通知报告?

AT USER-COMMAND没有调用明显的解决方案。
这是我想SUBMIT再次报告同一个报告以更新列表的事件。

(我知道我可以使用 ALV 报告来做到这一点,但是这可以通过简单的列表报告来实现吗?)

4

1 回答 1

3

当您检查文档时,您会发现以下信息:

  • 功能码 PICK 和 PF##(“##”代表 01 到 24)不会引起 AT USER-COMMAND 事件,但会引起 AT LINE-SELECTION 和 AT PF## 事件。
  • 所有以字符“%”开头的功能代码都被解释为系统功能,不会导致 AT USER-COMMAND 事件。列表的系统功能如下表 1 所示。
  • 同样,下表 2 中的功能代码不会导致事件 AT USER-COMMAND,而是由列表处理器处理

表 2包括BACK(这是绿色箭头的默认代码)。

你可以做什么:写下你自己的状态。

REPORT ytest.

DATA pf_exclude TYPE TABLE OF sy-ucomm WITH HEADER LINE.

START-OF-SELECTION.

  SET PF-STATUS 'LIST'.  "<--- here
  WRITE: / 'Hello World'.

AT LINE-SELECTION.
  WRITE: 'Testline'.
* and some more things

AT USER-COMMAND.
  BREAK-POINT.
  CASE sy-ucomm.
    WHEN 'MYBACK'.
  ENDCASE.

现在您可以定义自己的状态:

定义 PF 状态

  • 不要忘记定义PICK- 否则双击将不起作用。
  • 定义你自己的后台函数。
于 2016-07-29T07:16:27.233 回答