Rapora Title Ekleme - Top Of Page Foksiyonu

Övünç DİNÇ

Çözüm Ekibi
Kayıtlı Üye
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
  1. SAP MM
  2. SAP PP
  3. SAP FI
  4. SAP QM
Katılım Bölgesi
  1. İzmir
Bu konumuzda sıkça kullanılan ve kullanıcılar için büyük avantaj sağlayan rapor başlığı (TOP-OF-PAGE) fonksiyonunu inceleyeceğiz.


u5zsm.png


Resimde göründüğü gibi başlık ekleyebileceğimiz iki alan vardır.
İlki genel başlık dediğimiz rapor içinde seçimle değiştirilemeyecek olan "BAŞLIK ALANI" yazan bölgedir.

Bu alanda default olarak SAP yada programın ismi gelir. Bu alana kendimiz başlık girmek için ;


u5zu3.png


Rapor içinde Git>Özellikler menüsüne tıklanır. Açılan menüden TITLE alanına başlık olarak görünmesi istediğimiz metin girilir.

Kod:
Daha kapsamlı bir başlık eklemek istiyorsak   ;
i_callback_top_of_page   = ’TOP-OF-PAGE’
fonksiyonunu kullanmamız gerekir.
*——————————————————————-*
* Form  TOP-OF-PAGE                                                 *
*——————————————————————-*
* ALV Report Header                                                 *
*——————————————————————-*
Form top-of-page.
*ALV BAŞLIK TANIMLAMALARI
 data: t_header type slis_t_listheader,    “
wa_header type slis_listheader,      “   
t_line like wa_header-info,             “  BAŞLIK ALANI İÇİN GEREKLİ TANIMLAMALAR
 ld_lines type i,                              “
ld_linesc(10) type c.                     “
* BAŞLIK
 wa_header-typ  = ’H’.                     “—>>>   ANA BAŞLIK YAZI BOYUTU
 wa_header-info = ’DENEME’.           ”—>>>   ANA BAŞLIK METNİ
append wa_header to t_header.
 clear wa_header.
* TARİH
 wa_header-typ  = ’S’.                     “—>>>  TARİH ALANI YAZI BOYUTU
 wa_header-key = ’TARİH: ’.            “—>>>  TARİH ALANI METNİ
CONCATENATE  sy-datum+6(2) ’.'   “–>>  SİSTEM SAATİ GÜN AY YIL ÇEKİME İŞLEMLERİ
sy-datum+4(2) ’.’
sy-datum(4) INTO wa_header-info.
 append wa_header to t_header.
 clear: wa_header.
* TOPLAN BULUNAN SATIR
 describe table ITAB lines ld_lines.       “—>>>  SATIRI SAYILACAK TABLO ADI
 ld_linesc = ld_lines.
 concatenate ’TOPLAM GÖSTERİLEN SATIR SAYISI: ’ ld_linesc   “->  GÖSTERİLECEK METİN
 into t_line separated by space.
 wa_header-typ  = ’A’.
wa_header-info = t_line.
 append wa_header to t_header.
 clear: wa_header, t_line.
call function ’REUSE_ALV_COMMENTARY_WRITE’
EXPORTING
 it_list_commentary = t_header.
 endform.                    “top-of-page
Yukarıdaki formu raporumuza ekledikten sonra ALV yi oluşturduğumuz yerde bu formu çağırıyoruz;
*&———————————————————————*
*&      Form  DISPLAY_ALV_REPORT
*&———————————————————————*
*       Display report using ALV grid
*———————————————————————-*
form display_alv_report.
 gd_repid = sy-repid.
 call function ’REUSE_ALV_GRID_DISPLAY’
exporting
 i_callback_program      = gd_repid
 i_callback_top_of_page   = ’TOP-OF-PAGE’       “–>>   BAŞLIKĞI ALV YE EKLEME
 is_layout               = gd_layout
 it_fieldcat             = fieldcatalog[]
 i_save                  = ’X’
tables
 t_outtab                = ıtab
 exceptions
 program_error           = 1
 others                  = 2.
 if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
 endif.
 endform.                    “ DISPLAY_ALV_REPORT

Raporunuza bu fonksiyon ile statik başlık verebileceğiniz gibi duruma göre başlığın değişmesini de sağlayabilirsiniz. Örneğin seçim ekranında seçilen radiobutton un text ini basit bir if kontrolüyle başlık yapabilirsiniz veya tıklanan bir kayıta göre farklı bir kayıt çekip başlığa yerleştirebilirsiniz.
 
Üst