Sorun Cevaplayalım

İşinizle ilgili öngörüler edinin, gerçek zamanlı bilgilere göre karar alın.

SAP Eğitim ve Sertifika Dönemleri

Uzmanlığınızı ve deneyiminizi SAP çözümleri kullanarak tasdik edin.

Çözüm Ekibi Başvurusu

Kullanıcılara hızlı ve pratik çözümler üreterek görev almak isteyenler.

ABAP ALV ile Rapor Ekranı Oluşturma

Övünç DİNÇ

Çözüm Ekibi
Kayıtlı Üye
Katılım
8 Eki 2016
Mesajlar
928
Tepki puanı
246
Konum
İzmir
Kullandığınız SAP Modülleri
  1. SAP MM
  2. SAP PP
Katılım Bölgesi
  1. İzmir
Bu örneğimizde çeşitli filtreler ile tablodaki kayıtları görüntüleyebileceğimiz bir rapor ekranı programlayacağız.

ALV Nedir ?
ALV (abap list viewer) adındanda anlaşılacağı gibi bir listenin (internal table) ekranda ızgara şeklinde görüntülenmesini sağlayan sap nin standart yapısıdır. Birçok alv fonksiyonu olmakla beraber en çok kullanılan fonksiyon reuse_alv_grid_display fonksiyonudur.

Bu örneğimizde en basit hali ile bir veritabanı tablosunu okuyup alv ile görüntüleyeceğiz. İleriki örneklerde alv nin özelliklerine daha detaylı bir şekilde değineceğim.

Yazacağımız program aşağıdaki aşamalardan oluşacaktır.

  1. Filtreleme parametreleri için selection screen hazırlanması.
  2. Tablonun okunması.
  3. Değerlerin alv ile ekrana yazılması.


HTML:
REPORT ZFI_EG322.
* Kullanacağımız tablo
TABLES: ZED_FAGL_TRVOR.
* Alv için gerekli olan slis tip havuzu
TYPE-POOLS: slis.
* Kullanacağımız tablo tipinde itab tanımlıyoruz
DATA gt_fagl_trvor TYPE TABLE OF ZED_FAGL_TRVOR.
* Alv için kullanacağımız layout ve fieldcatalog tanımlarını yapıyoruz
DATA: gs_layout TYPE slis_layout_alv, gt_fcat TYPE slis_t_fieldcat_alv, gs_fcat TYPE slis_fieldcat_alv.
* Seçim ekranı parametrelerimizi tanımlıyoruz.
SELECTION-SCREEN BEGIN OF BLOCK p WITH FRAME.
SELECT-OPTIONS: pa_gjahr FOR ZED_FAGL_TRVOR-GJAHR.
SELECT-OPTIONS: pa_monat FOR ZED_FAGL_TRVOR-MONAT.
SELECT-OPTIONS: pa_bukrs FOR ZED_FAGL_TRVOR-BUKRS.
SELECTION-SCREEN END OF BLOCK p.
* Çalıştır dediğimizde sırası ile read_data(Seçim ekranı parametrelerine göre
* tablomuzu okuyoruz), build_fcat(Alv için field catalog düzenlenmesi),
* build_layout(Alv için layout düzenlenmesi) ve display_data (Alv ile verileri
* gösteriyoruz) subrouitinlerini çağırıyoruz.
START-OF-SELECTION. PERFORM read_data. PERFORM build_fcat. PERFORM build_layout. PERFORM display_data.
*&---------------------------------------------------------------------*
*& Form read_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM read_data. SELECT * FROM ZED_FAGL_TRVOR INTO TABLE GT_FAGL_TRVOR WHERE GJAHR IN pa_gjahr AND MONAT IN pa_monat AND BUKRS IN pa_bukrs.
ENDFORM. "read_data
*&---------------------------------------------------------------------*
*& Form build_fcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_fcat. PERFORM appalv USING 'MADDE_NO' 'ZED_FAGL_TRVOR' 'Yevmiye madde numarası'. PERFORM appalv USING 'TARIH' 'ZED_FAGL_TRVOR' 'Oluşturma tarihi'.
ENDFORM. "build_fcat
*&---------------------------------------------------------------------*
*& Form appalv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FN text
* -->P_TN text
* -->P_TXT text
*----------------------------------------------------------------------*
FORM appalv USING p_fn p_tn p_txt. CLEAR gs_fcat. gs_fcat-fieldname = p_fn . "ITAB da tanımladığımız sütun adı gs_fcat-tabname = p_tn . "ITAB adı gs_fcat-seltext_m = p_txt . "ALV de görünecek sütun başlığı APPEND gs_fcat TO gt_fcat.
ENDFORM. "appalv
*&---------------------------------------------------------------------*
*& Form build_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_layout. gs_layout-zebra = 'X'. gs_layout-colwidth_optimize = 'X'.
ENDFORM. "build_layout
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM display_data. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'ZED_FAGL_TRVOR' IS_LAYOUT = gs_layout it_fieldcat = gt_fcat TABLES T_OUTTAB = gt_fagl_trvor.
ENDFORM. "display_data

Programı çalıştırdığımız zaman ekran görüntüleri aşağıdaki gibi olacaktır.

alv1.png


Filtreleme yapmak istediğiiz alanları doldurup çalıştır diyoruz. Boş bırakır isek tablodaki tüm satırları görüntüleriz.

alv2.png


En basit hali ile bir alv raporu hazırladık. Umarım faydalı olmuştur.
 

ugurvbap

Kayıtlı Üye
Katılım
13 Mar 2019
Mesajlar
2
Tepki puanı
0
Kullandığınız SAP Modülleri
  1. SAP ABAP
Katılım Bölgesi
  1. Bursa
Teşekkürler. Konu başlığı açmıştım fakat cevap alamayınca detaylı arama yaptım formunuzda inceleyince buldum.
İyi Çalışmalar.
 
Üst