- Katılım
- 8 Eki 2016
- Mesajlar
- 939
- Çözümler
- 4
- Tepki puanı
- 276
- Puanları
- 63
- Yaş
- 42
- Konum
- İzmir
- Web Sitesi
- sapforo.com
- Kullandığınız SAP Modülleri
-
- SAP MM
- SAP PP
- SAP FI
- SAP QM
- Katılım Bölgesi
-
- İ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.
Programı çalıştırdığımız zaman ekran görüntüleri aşağıdaki gibi olacaktır.
Filtreleme yapmak istediğiiz alanları doldurup çalıştır diyoruz. Boş bırakır isek tablodaki tüm satırları görüntüleriz.
En basit hali ile bir alv raporu hazırladık. Umarım faydalı olmuştur.
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.
- Filtreleme parametreleri için selection screen hazırlanması.
- Tablonun okunması.
- 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.
Filtreleme yapmak istediğiiz alanları doldurup çalıştır diyoruz. Boş bırakır isek tablodaki tüm satırları görüntüleriz.
En basit hali ile bir alv raporu hazırladık. Umarım faydalı olmuştur.