2015年12月26日 星期六

ABAP/4 How to trigger start of selection after pressing pushbutton from report

在 Report 使用 PUSHBUTTON,有時會希望透過 AT SELECTION-SCREEN. 處理一些前置功能後再進入 START-OF-SELECTION。

但實際使用 PUSHBUTTON 後,會發現按下按鈕後,只會執行 AT SELECTION-SCREEN. 無法再進入 START-OF-SELECTION,如下圖,按執行的 ICON 才會進入 START-OF-SELECTION,但只按 PUSHBUTTON 並不會進入 START-OF-SELECTION。

REPORT Z_ABAP_22_PBTN_TRIGGER_START.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN PUSHBUTTON (40) W_BUT1 USER-COMMAND BUT1.
SELECTION-SCREEN END OF LINE.

INITIALIZATION.
  W_BUT1 = 'PUSHBUTTON'.

AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'BUT1'.
      MESSAGE 'AT SELECTION SCREEN' TYPE 'I'.
  ENDCASE.

START-OF-SELECTION.
  MESSAGE 'START-OF-SELECTION' TYPE 'I'.
END-OF-SELECTION.

而執行進入 START-OF-SELECTION 的 command 是 'ONLI',所以可以再執行時把 sy-ucomm 與 sscrfields-ucomm 強制改成 'ONLI',即可由 AT SELECTION-SCREEN 執行後,再觸發 START-OF-SELECTION

REPORT Z_ABAP_22_PBTN_TRIGGER_START.

TABLES sscrfields.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN PUSHBUTTON (40) W_BUT1 USER-COMMAND BUT1.
SELECTION-SCREEN END OF LINE.

INITIALIZATION.
  W_BUT1 = 'PUSHBUTTON'.

AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'BUT1'.
      sy-ucomm = 'ONLI'.
      sscrfields-ucomm = 'ONLI'.
      MESSAGE 'AT SELECTION SCREEN' TYPE 'I'.
  ENDCASE.

START-OF-SELECTION.
  MESSAGE 'START-OF-SELECTION' TYPE 'I'.
END-OF-SELECTION.

加入上面紅字後,即可先觸發 AT SELECTION SCREEN 後,再觸發 START-OF-SELECTION


沒有留言:

張貼留言

How to install & specified python version or distreibtuion package version in google colab

在買了 RTX 3080 要來 挖礦...  嗯~是跑機器學習後,結果發現了 GOOGLE COLAB,其實之前在「GAN 對抗式生成網路」一書就有看到,但資訊人就是什麼都想自己安裝,在本機用 Anaconda + pyCharm 弄了 GPU 環境,結果有天從新竹回家發現家裡沒...