OO ALV與FUNCTION ALV

OO ALV


image.png

OOALV中在AT SELECTION-SCREEN事件下使用SET_TABLE_FOR_FIRST_DISPLAY可以直接導(dǎo)出ALV,不用callscreen

*&---------------------------------------------------------------------*
*& Report ZMM004
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMM004.

TABLES:T001.

DATA: BEGIN OF ITAB OCCURS 0,
      BUKRS LIKE T001-BUKRS,
      BUTXT LIKE T001-BUTXT,
      ORT01 LIKE T001-ORT01,
      END OF ITAB.

DATA:  GT_FIELDCAT   TYPE LVC_T_FCAT,
       GS_FIELDCAT   TYPE LVC_S_FCAT,
       GS_LAYOUT     TYPE LVC_S_LAYO,
       GT_EXCLUDE    TYPE UI_FUNCTIONS.

DATA: CON_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
      ALV_TABLES TYPE REF TO CL_GUI_ALV_GRID,
      CON_ALV_TABLES TYPE REF TO CL_GUI_CONTAINER.

DEFINE : ADD_FIELD.
  GS_FIELDCAT-FIELDNAME = &1.
  GS_FIELDCAT-COLTEXT = &2.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.

SELECTION-SCREEN BEGIN OF BLOCK T1 WITH FRAME .
SELECT-OPTIONS: S_BUKRS FOR T001-BUKRS.
SELECTION-SCREEN END OF BLOCK T1.

START-OF-SELECTION.

  PERFORM GET_AND_PROCESS_DATA.
  CALL SCREEN 2000.

END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  GET_AND_PROCESS_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_AND_PROCESS_DATA .

  SELECT BUKRS BUTXT ORT01
    INTO CORRESPONDING FIELDS OF TABLE ITAB
  FROM T001
  WHERE BUKRS IN S_BUKRS.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Module  STATUS_2000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_2000 OUTPUT.
  SET PF-STATUS '2000'.
*  SET TITLEBAR 'xxx'.
  PERFORM SET_ALV_FIELDS.
  PERFORM SET_ALV_LAYOUT CHANGING GS_LAYOUT.

   CHECK CON_SPLITTER IS INITIAL.
  "創(chuàng)建容器
  CREATE OBJECT CON_SPLITTER
    EXPORTING
      PARENT  = CL_GUI_CONTAINER=>SCREEN0
      ROWS    = 1
      COLUMNS = 1.
  "創(chuàng)建ALV控件
  CON_ALV_TABLES = CON_SPLITTER->GET_CONTAINER( ROW = 1 COLUMN = 1 ).
  CREATE OBJECT ALV_TABLES
    EXPORTING
      I_PARENT = CON_ALV_TABLES.

  CALL METHOD ALV_TABLES->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
*     I_BUFFER_ACTIVE               =
*     I_BYPASSING_BUFFER            =
*     I_CONSISTENCY_CHECK           =
*     I_STRUCTURE_NAME              =
*     IS_VARIANT                    =
      I_SAVE                        = 'X'
*     I_DEFAULT                     = 'X'
      IS_LAYOUT                     = GS_LAYOUT
*     IS_PRINT                      =
*     IT_SPECIAL_GROUPS             =
 "     IT_TOOLBAR_EXCLUDING          = GT_EXCLUDE
*     IT_HYPERLINK                  =
*     IT_ALV_GRAPHICS               =
*     IT_EXCEPT_QINFO               =
*     IR_SALV_ADAPTER               =
    CHANGING
      IT_OUTTAB                     = ITAB[]
      IT_FIELDCATALOG               = GT_FIELDCAT
*     IT_SORT                       =
*     IT_FILTER                     =
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Form  SET_ALV_FIELDS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SET_ALV_FIELDS .
  ADD_FIELD 'BUKRS' '公司'.
  ADD_FIELD 'BUTXT' '名稱'.
  ADD_FIELD 'ORT01' 'ORT01'.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  SET_ALV_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GS_LAYOUT  text
*----------------------------------------------------------------------*
FORM SET_ALV_LAYOUT  CHANGING P_GS_LAYOUT TYPE LVC_S_LAYO.
  P_GS_LAYOUT-ZEBRA = 'X'.
  P_GS_LAYOUT-SMALLTITLE = 'X'.
  P_GS_LAYOUT-SEL_MODE = 'A'.
  P_GS_LAYOUT-GRID_TITLE = 'TEST'.
  P_GS_LAYOUT-CWIDTH_OPT = 'X'.
ENDFORM.

FUNCTION ALV


image.png
*&---------------------------------------------------------------------*
*& Report ZMM005
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMM005.

TABLES:T001.

DATA: BEGIN OF ITAB OCCURS 0,
      BUKRS LIKE T001-BUKRS,
      BUTXT LIKE T001-BUTXT,
      ORT01 LIKE T001-ORT01,
      END OF ITAB.

DATA:  GT_FIELDCAT   TYPE LVC_T_FCAT,
       GS_FIELDCAT   TYPE LVC_S_FCAT,
       GS_LAYOUT     TYPE LVC_S_LAYO.

DEFINE : ADD_FIELD.
  GS_FIELDCAT-FIELDNAME = &1.
  GS_FIELDCAT-COLTEXT = &2.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.

SELECTION-SCREEN BEGIN OF BLOCK T1 WITH FRAME .
SELECT-OPTIONS: S_BUKRS FOR T001-BUKRS.
SELECTION-SCREEN END OF BLOCK T1.

START-OF-SELECTION.

  PERFORM GET_AND_PROCESS_DATA.
  PERFORM SET_ALV_DATAS.
  PERFORM DISPLAY_ALV.


END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  GET_AND_PROCESS_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_AND_PROCESS_DATA .

  SELECT BUKRS BUTXT ORT01
    INTO CORRESPONDING FIELDS OF TABLE ITAB
  FROM T001
  WHERE BUKRS IN S_BUKRS.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  SET_ALV_DATAS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SET_ALV_DATAS .
  SET PF-STATUS 'PF_STATUS01'.

  ADD_FIELD 'BUKRS' '公司'.
  ADD_FIELD 'BUTXT' '名稱'.
  ADD_FIELD 'ORT01' 'ORT01'.

    GS_LAYOUT-ZEBRA = 'X'.
    GS_LAYOUT-SMALLTITLE = 'X'.
    GS_LAYOUT-SEL_MODE = 'A'.
    GS_LAYOUT-GRID_TITLE = 'TEST'.
    GS_LAYOUT-CWIDTH_OPT = 'X'.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                =
*   I_BUFFER_ACTIVE                   =
    I_CALLBACK_PROGRAM                = SY-REPID
*    I_CALLBACK_PF_STATUS_SET         = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
    I_GRID_TITLE                      = 'TEST'
*   I_GRID_SETTINGS                   =
    IS_LAYOUT_LVC                     = GS_LAYOUT
    IT_FIELDCAT_LVC                   = GT_FIELDCAT
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS_LVC             =
*   IT_SORT_LVC                       =
*   IT_FILTER_LVC                     =
*   IT_HYPERLINK                      =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT_LVC                      =
*   IS_REPREP_ID_LVC                  =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 =
*   I_HTML_HEIGHT_END                 =
*   IT_ALV_GRAPHICS                   =
*   IT_EXCEPT_QINFO_LVC               =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    T_OUTTAB                          = ITAB
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
          .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市砚嘴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖荣茫,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異场靴,居然都是意外死亡啡莉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門旨剥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來票罐,“玉大人,你說我怎么就攤上這事泞边「醚海” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵阵谚,是天一觀的道長蚕礼。 經(jīng)常有香客問我,道長梢什,這世上最難降的妖魔是什么奠蹬? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮嗡午,結(jié)果婚禮上囤躁,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好狸演,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布言蛇。 她就那樣靜靜地躺著,像睡著了一般宵距。 火紅的嫁衣襯著肌膚如雪腊尚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天满哪,我揣著相機(jī)與錄音婿斥,去河邊找鬼。 笑死哨鸭,一個胖子當(dāng)著我的面吹牛民宿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播像鸡,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼活鹰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坟桅?” 一聲冷哼從身側(cè)響起华望,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蕊蝗,失蹤者是張志新(化名)和其女友劉穎仅乓,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蓬戚,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夸楣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了子漩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豫喧。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖幢泼,靈堂內(nèi)的尸體忽然破棺而出紧显,到底是詐尸還是另有隱情,我是刑警寧澤缕棵,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布孵班,位于F島的核電站,受9級特大地震影響招驴,放射性物質(zhì)發(fā)生泄漏篙程。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一别厘、第九天 我趴在偏房一處隱蔽的房頂上張望虱饿。 院中可真熱鬧,春花似錦、人聲如沸氮发。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽折柠。三九已至宾娜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扇售,已是汗流浹背前塔。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留承冰,地道東北人华弓。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像困乒,于是被迫代替她去往敵國和親寂屏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容