Skip to main content

SAP - ABAP : Dynamic ALV Cell Style

report zalv_edit.

class lcl_report definition.
*
  public section.
*
*   Final output table
    typesbegin of ty_vbak,
             vbeln      type vbak-vbeln,
             erdat      type erdat,
             auart      type auart,
             kunnr      type kunnr,
             i_celltype type salv_t_int4_column,
           end   of ty_vbak.
    datat_vbak type standard table of ty_vbak.

*   ALV reference
    datao_alv type ref to cl_salv_table.

    methods:
      get_data,           "  data selection
      generate_output.    "  Generating output
*
  private section.
    methods:
      set_columns.        "  Set columns
endclass.                    "lcl_report DEFINITION
*
*
start-of-selection.
  datalo_report type ref to lcl_report.
*
  create object lo_report.
  lo_report->get_data).
  lo_report->generate_output).


*
class lcl_report implementation.
*
  method get_data.
*   data selection

    select vbeln erdat auart kunnr
           into  corresponding fields of table t_vbak
           from  vbak
           up to 20 rows.

    field-symbols<lfs_vbak> like line of t_vbak.
    datalt_celltype type salv_t_int4_column.
    datals_celltype like line of lt_celltype.
    loop at t_vbak assigning <lfs_vbak>.
      clearlt_celltype.
* Only VBELN for 2nd record
      if sy-tabix 2.
        ls_celltype-columnname 'VBELN'.
        ls_celltype-value      if_salv_c_cell_type=>hotspot.
        append ls_celltype to lt_celltype.
* Only ERDAT for 3rd record
      elseif sy-tabix 3.
        ls_celltype-columnname 'ERDAT'.
        ls_celltype-value      if_salv_c_cell_type=>button.
        append ls_celltype to lt_celltype.
* Entire 5th record
      elseif sy-tabix 5.
        ls_celltype-columnname ".
        ls_celltype-value      if_salv_c_cell_type=>hotspot.
        append ls_celltype to lt_celltype.
      endif.
      <lfs_vbak>-i_celltype lt_celltype.
    endloop.

  endmethod.                    "get_data
*
  method generate_output.
* New ALV instance
    datalx_msg type ref to cx_salv_msg.
    try.
        cl_salv_table=>factory(
          importing
            r_salv_table o_alv
          changing
            t_table      t_vbak ).
      catch cx_salv_msg into lx_msg.
    endtry.
*
* Setting up the Columns
    me->set_columns).

* Displaying the ALV
    o_alv->display).

  endmethod.                    "generate_output
*
  method set_columns.
*
*...Get all the Columns
    datalo_cols type ref to cl_salv_columns_table.
    lo_cols o_alv->get_columns).
*
*   set the Column optimization
    lo_cols->set_optimize'X' ).

*   Set the Cell Type
    try.
        lo_cols->set_cell_type_column'I_CELLTYPE' ).
      catch cx_salv_data_error.                         "#EC NO_HANDLER
    endtry.

  endmethod.                    "SET_COLUMNS

*
*
endclass.                    "lcl_report IMPLEMENTATION

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...