En Kısa Kod ile ALV Rapor Ekranı Yapın
Buradaki paylaştığım kodu en kısa yoldan ALV rapor yapabileceğiniz notlarınıza almanızı tavsiye ederim. Kullanacağımız ALV türü class alv olmasına rağmen çekinmeden kullanabilirsiniz. Daha fazla birçok ayrıntısı ile de sizlere bu konuda paylaşım yapmaya çalışacağım.
Öncelikle isterseniz selection ekranı dediğimiz kullanıcıdan seçim parametreleri alacağınız kodu üstüne ekleyin. Seçim parametrelerini kullanıcıdan alın ve tablonuz için bir internal tablo veri kümesini oluşturun. Ben bu kısımların kodunu yazmayayım kafa karışıklığı olmasın.
Benim aşağıda yazdığım kod için internal tablonuz hazır ve ekrana vermek istediğiniz adım olacaktır. Benim internal tablomun adı lt_log olacak. Bu tabloyu tanımlarken de benim gibi tanımlamanız gerekecektir. Dikkat edin tanımlama benim gibi olmazsa tablonuz class ile çağırılmayabilir.
DATA: lt_log TYPE TABLE OF zsd_t_aras_log WITH HEADER LINE.
DATA lo_alv TYPE REF TO cl_salv_table.
DATA: lo_column TYPE REF TO cl_salv_column.
DATA: lo_cols TYPE REF TO cl_salv_columns.
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = lo_alv
CHANGING
t_table = lt_log[] ).
CATCH cx_salv_msg.
ENDTRY.
lo_alv->display( ).
Farklı bir kod bloğu daha ekleyeyim. Bu örnekteki alv tablom gt_alv’dir. Data tanımına dikkat edin.
TYPES: BEGIN OF ty_alv,
opbel TYPE dfkkop-opbel,
betrw TYPE dfkkop-betrw,
vkont TYPE dfkkop-vkont,
gpart TYPE dfkkop-gpart,
END OF ty_alv.
DATA: gt_alv TYPE TABLE OF ty_alv,
gs_alv TYPE ty_alv.
DATA: go_alv TYPE REF TO cl_salv_table.
*** ALV ekrana koymak için aşağıdaki satırları ekledim.
TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = go_alv
CHANGING
t_table = gt_alv.
CATCH cx_salv_msg .
ENDTRY.
go_alv->display( ).
Farklı şekilde bu kısa kod ile kullandığınız class alv için isterseniz birçok yeteneği de eklemeniz mümkün. Mesela kolonların genişliğini, başlık bilgisini vs her şeyi ufak araştırmalar ile yada bu siteden bulabilirsiniz.