按下选择屏幕自定义按钮后如何在屏幕上书写

问题描述 投票:0回答:2

我想在单击“PRESS”按钮时显示使用

WRITE
构建的表格。

目前,单击按钮后没有任何反应

请代码尽可能简单易懂。如果你不能用按钮来实现,请用单选按钮或其他东西来实现。

提前致谢!

TABLES: mara, marc.
"marc is N
"mara is 1 
SELECTION-SCREEN PUSHBUTTON 15(10) text-001 USER-COMMAND press.
DATA: lt_mara TYPE TABLE OF mara WITH HEADER LINE,
      ls_mara TYPE mara.
DATA: lt_marc TYPE TABLE OF marc WITH HEADER LINE,
      ls_marc TYPE marc,
      Sum  type P length 8 DECIMALS 2.
PARAMETERS: p_mtart TYPE mara-mtart.
SELECT-OPTIONS: so_werks FOR marc-werks.
SELECT * FROM mara INTO TABLE lt_mara
  WHERE mtart = p_mtart.
IF sy-subrc = 0.
  SELECT * FROM marc INTO TABLE lt_marc
  FOR ALL ENTRIES IN lt_mara
  WHERE  matnr = lt_mara-matnr
  AND werks IN so_werks.
  LOOP AT lt_marc INTO ls_marc.
    READ TABLE lt_mara INTO ls_mara
   WITH KEY matnr = ls_marc-matnr.
    sum = ls_mara-brgew + ls_mara-ntgew .
  WRITE:/ ls_mara-mtart, ls_marc-matnr , ls_marc-werks , ls_mara-brgew, ls_mara-ntgew,sum.
  ENDLOOP.
ELSE.
  MESSAGE TEXT-e02 TYPE 'E' .
ENDIF.
button abap dynpro
2个回答
2
投票

如果您想保持简单,您可以使用“sy-ucomm”来存储您最后触发的操作。使用您的按钮,它看起来像这样:

AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'PRESS'.
      *code for displaying your table via ALV or WRITE goes here*
  ENDCASE.

1
投票

显示此类内部表的最常见方法是使用 ALV,可以在此处找到如何构建 ALV 的简单示例: https://archive.sap.com/discussions/thread/873601

如果您希望它在一种情况下进行WRITE:屏幕显示,并在另一种情况下显示ALV网格,您应该使用选择选项和参数。

您的代码需要添加事件,请在此处查看它们是什么以及如何使用它们: http://www.erpworkbench.com/abap/abap-events.htm

© www.soinside.com 2019 - 2024. All rights reserved.