ALV Block

ALV block biasanya saya gunakan untuk menampilkan lebih dari 1 list table dalam satu layar. Berikut adalah contoh penggunaan ALV block:

alv block

Contoh di atas merupakan list dengan jumlah dan jenis kolom yang sama. Namun, penggunaan ALV block ini bisa menampilkan sekitar 29 list table dengan kolom yang berbeda-beda.

Function yang digunakan untuk membuat ALV block adalah :

  1. REUSE_ALV_BLOCK_LIST_INIT untuk initialisasi block.
  2. REUSE_ALV_BLOCK_LIST_APPEND untuk menambahkan block. Bila ada lebih dari 1 block, panggil function ini berulang-ulang sesuai dengan jumlah internal table yang ingin ditampilkan pada screen.
  3. REUSE_ALV_BLOCK_LIST_DISPLAY digunakan untuk menampilkan alv block.

Dan berikut adalah list full code-nya:

REPORT yalvblock NO STANDARD PAGE HEADING
                  LINE-SIZE 255.
 TYPE-POOLSslis.
 
 DATAt_fcat TYPE slis_t_fieldcat_alv,
       t_event1 TYPE slis_t_event,
       t_event2 TYPE slis_t_event,
       t_event3 TYPE slis_t_event,
       wa_fcat TYPE slis_fieldcat_alv,
       wa_layout TYPE slis_layout_alv,
       wa_event TYPE slis_alv_event,
       wa_print TYPE  slis_print_alv.
 
 TYPES BEGIN OF ty_data,
           genre(20),
           bookname(50),
           author(30),
         END OF ty_data.
 
 DATA t_data   TYPE ty_data OCCURS WITH HEADER LINE,
        t_block1 TYPE ty_data OCCURS WITH HEADER LINE,
        t_block2 TYPE ty_data OCCURS WITH HEADER LINE,
        t_block3 TYPE ty_data OCCURS WITH HEADER LINE.
 
 INITIALIZATION.
 
 START-OF-SELECTION.
   PERFORM f_get_data.
   PERFORM f_write_data.
 
 *&---------------------------------------------------------------------*
 *&      Form  F_GET_DATA
 *&---------------------------------------------------------------------*
 FORM f_get_data .
 
   t_data-genre 'Travel'.
   t_data-bookname 'Rp 2,5 Juta Keliling Jepang'.
   t_data-author 'Claudia Kaunang'.
   APPEND t_dataCLEAR t_data.
 
   t_data-genre 'Travel'.
   t_data-bookname 'Lonely Planet Indonesia'.
   t_data-author 'Lonely Planet'.
   APPEND t_dataCLEAR t_data.
 
   t_data-genre 'Dictionary'.
   t_data-bookname 'Kamus Inggris Indonesia'.
   t_data-author 'John M. Echoles & Hassan Shadily'.
   APPEND t_dataCLEAR t_data.
 
   t_data-genre 'Dictionary'.
   t_data-bookname 'Advanced Dictionary of English'.
   t_data-author 'Collins Cobuild'.
   APPEND t_dataCLEAR t_data.
 
   t_data-genre 'Comic'.
   t_data-bookname 'Detektif Conan'.
   t_data-author 'Aoyama Gosho'.
   APPEND t_dataCLEAR t_data.
 
   t_data-genre 'Comic'.
   t_data-bookname 'One Piece'.
   t_data-author 'Eiichiro Oda'.
   APPEND t_dataCLEAR t_data.
 
   t_block1[] t_block2[] t_block3[] t_data[].
   DELETE t_block1 WHERE genre <> 'Travel'.
   DELETE t_block2 WHERE genre <> 'Dictionary'.
   DELETE t_block3 WHERE genre <> 'Comic'.
 
 ENDFORM.                    " F_PROCESS_DATA
 *&---------------------------------------------------------------------*
 *&      Form  F_WRITE_DATA
 *&---------------------------------------------------------------------*
 FORM f_write_data .
 *build field catalog
   wa_fcat-fieldname 'BOOKNAME'.
   wa_fcat-seltext_l wa_fcat-seltext_m =
   wa_fcat-seltext_s wa_fcat-reptext_ddic 'Book Name'.
   wa_fcat-outputlen '30'.
   APPEND wa_fcat TO t_fcatCLEAR wa_fcat.
 
   wa_fcat-fieldname 'AUTHOR'.
   wa_fcat-seltext_l wa_fcat-seltext_m =
   wa_fcat-seltext_s wa_fcat-reptext_ddic 'Author'.
   wa_fcat-outputlen '35'.
   APPEND wa_fcat TO t_fcatCLEAR wa_fcat.
 
 *build event for header text
   wa_event-form 'TOP_PAGE1'.
   wa_event-name 'TOP_OF_PAGE'.
   APPEND wa_event TO t_event1CLEAR wa_event.
 
   wa_event-form 'TOP_PAGE2'.
   wa_event-name 'TOP_OF_PAGE'.
   APPEND wa_event TO t_event2CLEAR wa_event.
 
   wa_event-form 'TOP_PAGE3'.
   wa_event-name 'TOP_OF_PAGE'.
   APPEND wa_event TO t_event3CLEAR wa_event.

 *set print paramater
   wa_print-no_print_listinfos = 'X'.
   wa_print-no_print_selinfos = 'X'.
   wa_print-no_coverpage = 'X'.
 *initialization
   CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
     EXPORTING
       i_callback_program sy-repid.
 
 *append block 1
   CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
     EXPORTING
       is_layout                  wa_layout
       it_fieldcat                t_fcat
       it_events                  t_event1
       i_tabname                  'T_BLOCK1'
     TABLES
       t_outtab                   t_block1
     EXCEPTIONS
       program_error              1
       maximum_of_appends_reached 2
       OTHERS                     3.
 
 *append block 2
   CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
     EXPORTING
       is_layout                  wa_layout
       it_fieldcat                t_fcat
       it_events                  t_event2
       i_tabname                  'T_BLOCK2'
     TABLES
       t_outtab                   t_block2
     EXCEPTIONS
       program_error              1
       maximum_of_appends_reached 2
       OTHERS                     3.
 
 *append block 3
   CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
     EXPORTING
       is_layout                  wa_layout
       it_fieldcat                t_fcat
       it_events                  t_event3
       i_tabname                  'T_BLOCK3'
     TABLES
       t_outtab                   t_block3
     EXCEPTIONS
       program_error              1
       maximum_of_appends_reached 2
       OTHERS                     3.
 
 *display block
   CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
     EXPORTING
       is_print wa_print.
 ENDFORM.                    " F_WRITE_DATA
 *&---------------------------------------------------------------------*
 *&      Form  top_of_page
 *&---------------------------------------------------------------------*
 FORM top_page1.
   WRITE:'LIST OF BOOKS'.
   SKIP.
   WRITE:'Travel Books'.
 ENDFORM.                    "top_of_page
 *&---------------------------------------------------------------------*
 *&      Form  top_page2
 *&---------------------------------------------------------------------*
 FORM top_page2.
   WRITE:'Dictionary Books'.
 ENDFORM.                    "top_of_page
 *&---------------------------------------------------------------------*
 *&      Form  top_page3
 *&---------------------------------------------------------------------*
 FORM top_page3.
   WRITE:'Comic Books'.
 ENDFORM.                    "top_of_page

 

Advertisements

One comment

  1. […] dicoba menggunakan line code yang ada di psotingan ALV block, dan tambahkan line code berikut sebelum memanggil function ALV […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: