如何将函数的结果写到屏幕上?

How can I write out a function's result to a screen?

我从 table 得到了一个简单的 SELECT 函数。我有一个带按钮的屏幕。当按钮被激活时,我想调用该函数并在屏幕上写出结果 table 。我没有收到任何错误,只是什么也没发生,怎么了?

CASE ok_code.
    WHEN 'SELECTALL'.
      CALL FUNCTION 'ZRL_ZH12FU_MONUMENTALL'
        TABLES
          MONUMENTLIST       =   monumentresult.
      LOOP AT monumentresult INTO monumentresultline.
        WRITE: / monumentresultline-monumentid,
                 monumentresultline-monumenttitle,
                 monumentresultline-theatre,
                 monumentresultline-year,
                 monumentresultline-part,
                 monumentresultline-picture.
      ENDLOOP.
    WHEN 'SELECT'.
      ...

write 语句仅适用于输出屏幕,不适用于选择屏幕。

您可能需要在选择屏幕上定义一些文本元素并使用

LOOP AT SCREEN

构造以更新所述文本元素的值。

WRITE只输出数据到一个"list buffer",显示名为"list screen"的系统画面时会自动显示。

要从经典屏切换到列表屏,在经典屏的PAI中使用这条语句:

LEAVE TO LIST-PROCESSING.

在 PAI 结束时,将显示列表屏幕并显示列表缓冲区中的所有数据。

当您按下列表屏幕的退出按钮时,它会执行隐式LEAVE LIST-PROCESSING(不带TO),并显示上一个经典屏幕。

写语句通常写在列表屏幕上。可执行程序的一部分。我看到您正在尝试在普通模块池屏幕上书写。

要实现这一点,请在可执行程序中编写语句并使用提交程序进行调用,这样,您的编写语句就可以工作了。