SAP ABAP 選擇屏幕、事件流、ALV報表


  1. 選擇屏幕

(1)PARAMETERS對象及其屬性

PARAMETERS: p_id like dbtab-id,

                     p_checkbox AS CHECKBOX DEFAULT ‘X’,

                          p_radio RADIOBUTTON GROUP g1 DEFAULT ‘X’,

                       p_radio RADIOBUTTON GROUP g1,

                       p_radio RADIOBUTTON GROUP g1.

語法

說明

DEFAULT ‘A’

初始值

LENGTH N

定義長度,只適用於C、N、X、P類型

DECIMALS des

指定小數點位數

MEMORY ID pid

指定SAP內存參數ID

MATCHCODE OBJECT mobj

設定使用的Search Help

MODIF ID

通過SCREEN-GROUP1為屏幕元素分組

NO-DISPLAY

不顯示在畫面上

LOWER CASE

區分大小寫(默認大寫)

(2)SELECT-OPTIONS對象及其屬性

SELECT-OPTIONS: so_id FOR itab-id DEFAULT 1,

                       so_age FOR itab-age OBLIGATORY NO INTERVALS NO-EXTENSION.

語法

說明

DEFAULT ‘A’

初始值

DEFAULT g… OPTION op… SIGN s

初始的option和sign

DEFAULT g TO h

初始的low值和high值,SIGN為‘BT’

DEFAULT ID pid

指定SAP內存參數ID

MATCHCODE OBJECT mobj

設定使用的Search Help

OBLIGATORY

必輸項

VISIBLE LENGTH vlen

顯示長度

NO-EXTENSION

隱藏多指輸入按鈕

NO INTERVALS

隱藏high輸入部分

(3)空行

SELECTION-SCREEN SKIP 2.

(4)分割線

SELECTION-SCREEN ULINE /1(30)

(5)屏幕框架

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE t-001.

……

SELECTION-SCREEN END OF BLOCK b1.

  1. 事件流

事件流

說明

INITIALZATION

在屏幕未顯示前初始化

AT SELECTION-SCREEN OUTPUT

用於對屏幕輸入值的校驗

AT SELECTION-SCREEN ON …

屏幕輸入遇錯處理,檢查某個具體的輸入值

AT SELECTION-SCREEN ON VALUE REQUEST FOR { para|selcrit-low|selcrit-high } (F4)

用於實現屏幕輸入域的自定義F4搜索幫助

AT SELECTION-SCREEN ON HELP REQUEST FOR { para|selcrit-low|selcrit-high } (F1)

用於實現屏幕輸入域的自定義F1幫助

AT SELECTION-SCREEN ON { para|selcrit }

指定輸入域輸入值時觸發

AT SELECTION-SCREEN ON BLOCK (block)

用於管控框架中的屏幕輸入值

AT SELECTION-SCREEN ON RADIOBUTTON GROUP (radi)

用於管控單選框按鈕組輸入值

AT SELECTION-SCREEN ON END OF (selcrit)

用於SELECT-OPTIONS對象,在輸入域進行多行數據輸入時觸發

AT SELECTION-SCREEN

用於屏幕輸入檢查

START-OF-SELECTION

在執行程序時觸發

END-OF-SELECTION

在START-OF-SELECTION執行后,輸出屏幕還未顯示前觸發

GET…

從邏輯數據庫中得到數據

TOP-OF-PAGE

設計輸出單的頁頭

END-OF-PAGE

設計輸出單的頁腳

AT USER COMMAND

 

AT LINE SELECTION

 

(1)報表事件的終止命令

①    STOP.

結束當前事件,直接轉向END-OF-SELECTION(只能用於AT SELECTION-SCREEN/START-OF-SELECTION/GET事件)

②    EXIT.

離開過程塊,直接轉向列表輸出屏幕,不執行END-OF-SELECTION

③    RETURN.

離開過程塊,直接轉向列表輸出屏幕,不執行END-OF-SELECTION

④    CHECK <condition>.

當條件為假時,離開當前事件,並轉向下一個事件

 

2.ALV

(1)ALV通過函數方式實現

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = gv_repid
      it_fieldcat_lvc          = gt_fieldcat[]
      is_layout_lvc            = gs_layout
      i_callback_pf_status_set = 'FRM_SET_PF_STATUS'
      i_callback_user_command  = 'FRM_USER_COMMAND'
      i_save                   = 'A'
    TABLES
      t_outtab                 = gt_so
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.

(2)設置顯示列

常用屬性字段(LVC_S_FCAT)

gs_fieldcat-fieldname         = &1.

gs_fieldcat-coltext           =

gs_fieldcat-coltext_l            =

gs_fieldcat-coltext_m          =

gs_fieldcat-coltext_s           =

gs_fieldcat-reptext              = &2.

gs_fieldcat-key                   = &3.

gs_fieldcat-checkbox          = &4.

gs_fieldcat-edit                  = &5.

gs_fieldcat-hotspot            = &6.

gs_fieldcat-ref_table           = &7.

gs_fieldcat-ref_field            = &8.

gs_fieldcat-qfieldname       =’REDDI’.

gs_fieldcat-no_zero            = ‘X’.

APPEND gs_fieldcat TO gt_fieldcat.

在REUSE_ALV_GRID_DISPLAY_LVC函數中添加it_fieldcat_lvc = gt_fieldcat[]

字段

說明

FIELDNAME

字段名稱

SXRTEXT_L/M/S

列標題描述

KEY

是否關鍵字,設置’X’,位置固定

CHECKBOX

是否顯示復選框

EDIT

是否可編輯

HOSTSPOT

鼠標是否出現手型光標標識

REF_TABLE/REF_FIELD

字段參考數據庫表和字段

DO_SUM

是否顯示總計值

ICON

是否顯示為圖標

(3)設置布局

常用屬性字段(LVC_S_LAYO)

gs_layout-cwidth_opt = abap_true.

gs_layout-zebra     = abap_true.

gs_layout-box_fname = ‘LILI’

在REUSE_ALV_GRID_DISPLAY_LVC函數中添加is_layout_lvc = gs_layout

字段

說明

ZEBRA

ALV是否深淺顏色間隔顯示

SMALLTITLE

ALV小標題

CWIDTH_OPT

列寬是否按照該列最長顯示字段自動調整寬度

NO_ROWMARK

左側選擇按鈕是否顯示

BOX_FNAME

左側選擇按鈕選中后對應的字段

EDIT

ALV單元格是否可編輯

STYLEFNAME

指定顏色

NO_TOOLBAR

工具欄不顯示

NO_TOTLINE

設置不輸出總計行

(4)設置排序參數

常用屬性字段(LVC_S_SORT)

gs_sort-spos = 1.

gs_sort-fieldname = ‘ID’.

gs_sort-down = ‘X’.

gs_sort-subtot = ‘X’.

APPEND gs_sort TO gt_sort.

在REUSE_ALV_GRID_DISPLAY_LVC函數中添加it_sort_lvc = gt_sort

字段

說明

SPOS

指定排序字段的先后順序

FIELDNAME

排序字段名稱

UP

按升序排列輸出

DOWN

按降序排序輸出

SUBTOT

是否執行並輸出小計,此設置必須與列屬性的DO_SUM一同使用

(5)設置自定義工具欄

FORM frm_pf_status_prt USING u_extab TYPE slis_t_extab ##CALLED.
  SET PF-STATUS 'PF_STATUS_PRT' EXCLUDING u_extab.
ENDFORM.

在REUSE_ALV_GRID_DISPLAY_LVC函數中添加i_callback_pf_status_set = ‘FRM_SET_PF_STATUS’

(6)用戶命令和響應

 

FORM frm_user_command USING uv_ucomm LIKE sy-ucomm
                            us_selfield TYPE slis_selfield.
  CASE uv_ucomm.
    WHEN 'ALL'. 
      PERFORM frm_sel_all.
    WHEN 'SAVE'. 
      PERFORM frm_save_all.

  ENDCASE.

ENDFORM.

在REUSE_ALV_GRID_DISPLAY_LVC函數中添加i_callback_user_command = ‘FRM_USER_COMMAND’


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM