Skip to main content

SAP ABAP - ALV Activate Checkbox With Condition Value

 *&---------------------------------------------------------------------*

*& Report YALV_CKBOX
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT yalv_ckbox.

TYPES:
  BEGIN OF ty_data,
    rbukrs  TYPE acdoca-rbukrs,
    belnr   TYPE acdoca-belnr,
    gjahr   TYPE acdoca-gjahr,
    matnr   TYPE acdoca-matnr,
    sgtxt   TYPE acdoca-sgtxt,
    zckbx   TYPE char1,
    celltab TYPE lvc_t_styl,
  END OF ty_data.

DATA:
  ob_container TYPE REF TO cl_gui_custom_container,
  ob_grid      TYPE REF TO cl_gui_alv_grid.

DATA:
  it_fieldcat TYPE lvc_t_fcat,
  wa_fieldcat LIKE LINE OF it_fieldcat,
  is_lyout    TYPE lvc_s_layo.

DATA:
  lt_data    TYPE TABLE OF ty_data,
  ls_celltab TYPE lvc_s_styl.

DATA :
  w_valid   TYPE char01,
  l_valid   TYPE c,
  lt_row_no TYPE lvc_t_roid,
  ls_row_no TYPE lvc_s_roid.

START-OF-SELECTION.
  REFRESH lt_data.
  SELECT rbukrs belnr gjahr matnr sgtxt FROM acdoca
    INTO CORRESPONDING FIELDS OF TABLE lt_data
      UP TO 10 ROWS WHERE matnr <> '' AND rbukrs 'IT'.

  sort lt_data by rbukrs belnr gjahr.

  LOOP AT lt_data ASSIGNING FIELD-SYMBOL(<fs_data>).
    IF <fs_data>-matnr 'FGA009553'.
      REFRESH <fs_data>-celltab.
      CLEAR ls_celltab.
      ls_celltab-fieldname 'ZCKBX'.
      ls_celltab-style cl_gui_alv_grid=>mc_style_disabled.
      INSERT ls_celltab INTO TABLE <fs_data>-celltab.

      <fs_data>-zckbx '-'.
    ENDIF.
  ENDLOOP.

  CALL SCREEN 100.

*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'PF100'.
  SET TITLEBAR  'TL100' WITH 'Test Alv CkBox'.

  PERFORM initial_screen.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK' OR 'EXIT' OR 'CNCL'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.

FORM initial_screen.
  IF ob_container IS INITIAL.
    CREATE OBJECT ob_container
      EXPORTING
        container_name 'CONTAINER'.

    CREATE OBJECT ob_grid
      EXPORTING
        i_parent ob_container.

*    CREATE OBJECT g_event_handler.
  ENDIF.

  PERFORM set_fieldcat.
  PERFORM set_lyout.
  PERFORM alv_displ_out.

  CALL METHOD ob_grid->check_changed_data
    IMPORTING
      e_valid w_valid.

  CALL METHOD ob_grid->register_edit_event
    EXPORTING
      i_event_id cl_gui_alv_grid=>mc_evt_enter.

  CALL METHOD ob_grid->refresh_table_display.

  CALL METHOD ob_grid->set_ready_for_input
    EXPORTING
      i_ready_for_input 1.
ENDFORM.

FORM set_fieldcat.
  REFRESH it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname 'RBUKRS'.
  wa_fieldcat-col_pos   1.
  wa_fieldcat-ref_table 'ACDOCA'.
  wa_fieldcat-key       'X'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname 'BELNR'.
  wa_fieldcat-col_pos   2.
  wa_fieldcat-ref_table 'ACDOCA'.
  wa_fieldcat-key       'X'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname 'GJAHR'.
  wa_fieldcat-col_pos   3.
  wa_fieldcat-key       'X'.
  wa_fieldcat-ref_table 'ACDOCA'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname 'MATNR'.
  wa_fieldcat-col_pos   4.
  wa_fieldcat-ref_table 'ACDOCA'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname 'SGTXT'.
  wa_fieldcat-col_pos   9.
  wa_fieldcat-ref_table 'ACDOCA'.
  APPEND wa_fieldcat TO it_fieldcat.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname 'ZCKBX'.
  wa_fieldcat-scrtext_l 'Select'.
  wa_fieldcat-col_pos   10.
  wa_fieldcat-edit_mask  'X'.
  wa_fieldcat-edit       'X'.
  wa_fieldcat-checkbox   'X'.
  APPEND wa_fieldcat TO it_fieldcat.

ENDFORM.

FORM set_lyout .
  CLEAR is_lyout.
  is_lyout-zebra        'X'.
  is_lyout-cwidth_opt   'X'.
  is_lyout-stylefname   'CELLTAB'.
ENDFORM.

FORM alv_displ_out.
  CALL METHOD ob_grid->set_table_for_first_display
    EXPORTING
*     is_variant                    = is_varnt      "DISVARIANT
      i_save                        'A'           "CHAR1 - X:Global - U:User - A:All - Space:No
      i_default                     'X'           "CHAR1 - X:Allowed - Space:not
      is_layout                     is_lyout      "LVC_S_LAYO
*     is_print                      = is_print      "LVC_S_PRNT
*     it_toolbar_excluding          = it_excld      "UI_FUNCTIONS
    CHANGING
      it_outtab                     lt_data
      it_fieldcatalog               it_fieldcat      "LVC_T_FCAT
*     it_sort                       = it_sort       "LVC_T_SORT
    EXCEPTIONS
      invalid_parameter_combination 1
      program_error                 2
      too_many_lines                3
      OTHERS                        4.
ENDFORM.



Comments

Popular posts from this blog

PHP MySql CRUD Dengan Konsep MVC

Pada postingan kali ini saya akan sharing cara membuat CRUD dengan php menggunakan konsep MVC, ok langsung saja buka code editor (saya menggunakan sublime text) dan buat folder baru dengan nama phpmvc didalam folder htdocs kalian dan tambah folder seperti berikut :  Setelah itu kita siapkan database di mysql, buat database dengan nama phpmvc dan tablenya seperti gambar berikut : tambahkan file config.php didalam folder app/config : <?php define('BASEURL', 'http://localhost:8181/phpmvc/public'); define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'phpmvc'); kemudian tambahkan 3 file controller didalam folder app/controllers, yaitu Home, About, dan Mahasiswa : Home.php <?php class Home extends Controller { public function index() { $data['nama'] = $this->model('User_model')->getUser()...

Cara Sederhana Multi Insert Data Dengan PHP - MySQL

Pada postingan kali ini saya akan share cara melakukan insert lebih dari satu data dengan menggunaka PHP- Jquery dan MySQL. Pertama buat database di MySQL dan table, disini saya membuat database dengan nama db_latihan dan table dengan nama t_barang dengan struktur table seperti berikut : Setelah membuat database dan table selanjutnya membuat project PHP, project PHP nya saya buat dengan nama multi-insert, lalu didalam folder ini saya membuat dua file yaitu index.php dan insert.php . Source code index.php seperti berikut : <! doctype   html > < html   lang = "en" >    < head >      <!-- Required meta tags -->      < meta   charset = "utf-8" >      < meta   name = "viewport"   content = "width=device-width, initial-scale=1" >      <!-- Bootstrap CSS -->      < link ...

IT Asset Management Dengan PHP MySQL

Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya : Laptop/komputer , Printer, Router, Hardisk, dll. Dalam aplkasi ini kita bisa mengetahui Asset IT posisinya dimana dan digunakan oleh siapa. untuk data-data yang dibutuhkan antara lain : 1. data kategori asset dalam menu ini kita bisa meng-input jenis2 kategory asset : tambah kategori asset : 2. data department 3. data karyawan 4. data department per karyawan 5. data asset location  6. data satuan asset dan untuk transaksi yang ada dalam aplikasi ini adalah,  1. create asset, pada menu create asset ini kita akan mengalokasikan sebuah asset ke karyawan/personnel tampilannya seperti berikut: setelah klik tombol save akan muncul seperti dibawah : untuk melihat detail asset yang sudah dibuat tadi, kita bisa pilih...