ALV (ABAP LIST VIEWER)
SAP’ nin standart liste görüntüleyicisidir (ABAP List Viewer). İnternal tablodaki bilgileri standart liste formatında görüntüler. Standart bir liste formatı ve kullanıcı arayüzü sağlar. Hazır fonksiyonları sayesinde geliştirme zamanını önemli derecede azaltır.
Liste çıktısını oluşturmak için iki temel parametreye ihtiyaç vardır.
1. Veri tablosu: ALV’ de gösterilmek istenen internal tablodur
2. Sütun bilgileri: Sütun başlığı, genişliği gibi bilgilerdir.
ALV birçok hazır fonksiyona sahiptir. Bazı hazır fonksiyonlar,
- Sıralama
- Filtreleme
- Alt toplam ve tra toplam alma
- Raporu çeşitli formatlarda bilgisayara kaydetme
- Sütunların sırasını değiştirme, istenmeyen sütunları gizleme ve variant olarak sütun sırasının kaydedilmesi
ALV fonksiyonlarının olduğu araç çubuğu.
ALV çıktısı klasik veya nesne tabanlı (OO) alv foksiyonlar kullanılabilir.
Klasik ALV raporlarında kullanılacak bazı fonksiyonlar aşağıdaki tablodadır.
Fonksiyon Modül | Tanım |
REUSE_ALV_GRID_DISPLAY | Veriyi ızgara (grid) içerisinde gösteren fonksiyon |
REUSE_ALV_LIST_DISPLAY | Veriyi standart liste çıktısı olarak gösteren fonksiyon |
REUSE_ALV_HIERSEQ_LIST_DISPLAY | Veriyi hiyerarşik sıralı liste içerisinde gösteren fonksiyon |
REUSE_ALV_POPUP_TO_SELECT | Popup pencerede bir listeden seçim yapılmasını sağlayan fonksiyon |
REUSE_ALV_COMMENTARY_WRITE | ALV’ ye başlık alanı ekler |
REUSE_ALV_VARIANT_F4 | Seçim ekranında variant seçimi yapılmasını sağlar |
REUSE_ALV_VARIANT_DEFAULT_GET | Varsayılan görüntü varyantını getirir |
REUSE_ALV_VARIANT_EXISTENCE | Bir variant’ ın üst birimde bulunup bulunmadığını kontrol eder |
REUSE_ALV_FIELDCATALOG_MERGE | Abap dictionary’ deki nesnelerden veya internal tablodan alan kataloğu oluşturmak için kullanılır |
REUSE_ALV_EVENTS_GET | ALV için kullanılabilecek olayların (events) listesini verir |
REUSE_ALV_GRID_DISLAY
Parametre olarak verilerin internal tabloyu hücresel formatta görüntüler.
Sütun bilgilerini aktarmak için “I_STRUCTURE_NAME” parametresi veya “IT_FIELDCAT” parametresi kullanılır.
I_STRUCTURE_NAME: Abap dictionary’ deki tanımlı bir yapıdır. Structure, tablo, tablo tipi gibi. Bu parametre kullanıldığında yapıdaki tüm sütunlar ALV’ de gösterilmeye çalışılır.
IT_FIELDCAT: Sütun bilgilerini içeren internal tabloyu (field catalog) parametre olarak alır.
Alan kataloğu internal tablosu üç yönetim ile hazırlanabilir.
1. Alan kataloğu internal tablosunu el ile oluşturarak
2. Alan kataloğu internal tablosunu fonksiyon ile Abap Dictionary’ daki structure, tablo veya tablo tiplerinden oluşturarak
3. Önce Abap dictionary’ deki nesnelerden oluşturulur, daha sonra istenilen şekilde düzeltilerek
IMPORT | ||||||||||
Parametre | Tanım tipi | İlişkili tip | Başlanıç d. | Ops. | Dğr atn. | Parametre açıklaması | ||||
I_INTERFACE_CHECK | SPACE | X | Arayüz tutarlılık denetimi. Liste görünümünde &SOS komutu ile de çalışır. | |||||||
I_BYPASSING_BUFFER | TYPE | CHAR01 | SPACE | X | X | Bufferları (tampon) göz ardı et | ||||
I_BUFFER_ACTIVE | SPACE | X | X | Buffer (tamponlama) aktif | ||||||
I_CALLBACK_PROGRAM | LIKE | SY-REPID | SPACE | X | Fonksiyonu çağıran program ismi | |||||
I_CALLBACK_PF_STATUS_SET | TYPE | SLIS_FORMNAME | SPACE | X | GUI status alt yordam ismi | |||||
I_CALLBACK_USER_COMMAND | TYPE | SLIS_FORMNAME | SPACE | X | Kullanıcı komutu yakalamak için alt yordam ismi | |||||
I_CALLBACK_TOP_OF_PAGE | TYPE | SLIS_FORMNAME | SPACE | X | TOP-OF-PAGE için alt yordam ismi | |||||
I_CALLBACK_HTML_TOP_OF_PAGE | TYPE | SLIS_FORMNAME | SPACE | X | HTML TOP-OF-PAGE için alt yordam ismi | |||||
I_CALLBACK_HTML_END_OF_LIST | TYPE | SLIS_FORMNAME | SPACE | X | HTML END-OF-LIST için alt yordam ismi | |||||
I_STRUCTURE_NAME | LIKE | DD02L-TABNAME | X | Abap dictionary içerisindeki structure | ||||||
I_BACKGROUND_ID | TYPE | SDYDO_KEY | SPACE | X | Top-of-Page alanındaki çıktı için arkaplan parametresi | |||||
I_GRID_TITLE | TYPE | LVC_TITLE | X | ALV’nin başlık metni | ||||||
I_GRID_SETTINGS | TYPE | LVC_S_GLAY | X | Top-of-Page ve End-of-List görünümleri için görünüm ayarları | ||||||
IS_LAYOUT | TYPE | SLIS_LAYOUT_ALV | X | Listenin görünüm düzeni | ||||||
IT_FIELDCAT | TYPE | SLIS_T_FIELDCAT_ALV | X | Sütun bilgilerini içeren alan kataloğu (field catalog) internal tablosu | ||||||
IT_EXCLUDING | TYPE | SLIS_T_EXTAB | X | Görünmemesi istenen ALV fonksiyonlarını aktarmak için kullanılan internal tablo | ||||||
IT_SPECIAL_GROUPS | TYPE | SLIS_T_SP_GROUP_ALV | X | Sütun seçimi için alanların gruplama bilgisi | ||||||
IT_SORT | TYPE | SLIS_T_SORTINFO_ALV | X | Çıktı için sıralama bilgisi | ||||||
IT_FILTER | TYPE | SLIS_T_FILTER_ALV | X | Çıktı için filtreleme bilgisi | ||||||
IS_SEL_HIDE | TYPE | SLIS_SEL_HIDE_ALV | X | Artık desteklenmiyor | ||||||
I_DEFAULT | ‘X’ | X | Başlangıç variant seçimini aktif veya pasif yapar | |||||||
I_SAVE | SPACE | X | Aldığı parametrelere göre variant’ ın saklanmasına izin verir. | |||||||
IS_VARIANT | LIKE | DISVARIANT | Variant saklanacak ise kullanılır. Variant bilgilesi aktarılır | |||||||
IT_EVENTS | TYPE | SLIS_T_EVENT | X | Kullanılacak olayların listes | ||||||
IT_EVENT_EXIT | TYPE | SLIS_T_EVENT_EXIT | X | Standart ALV fonksiyonları internal tablosu. Burada belirtilen fonksiyonlar USER_COMMAND fonksiyonuna düşmesi | ||||||
IS_PRINT | TYPE | SLIS_PRINT_ALV | X | Çıktı bilgisi | ||||||
IS_REPREP_ID | TYPE | SLIS_REPREP_ID | X | Arayüz başlangıç anahtarı | ||||||
I_SCREEN_START_COLUMN | 0 | X | Listenin sütun başlangıç pozisyonu. Sadece dialog liste’ te görünecek ise kullanılır | |||||||
I_SCREEN_START_LINE | 0 | X | Listenin satır başlangıç pozisyonu. Sadece dialog liste’ te görünecek ise kullanılır | |||||||
I_SCREEN_END_COLUMN | 0 | X | Listenin sütun bitiş pozisyonu. Sadece dialog liste’ te görünecek ise kullanılır | |||||||
I_SCREEN_END_LINE | 0 | X | Listenin satır bitiş pozisyonu. Sadece dialog liste’ te görünecek ise kullanılır | |||||||
I_HTML_HEIGHT_TOP | TYPE | I | 0 | X | HTML_TOP_OF_PAGE yüksekliği | |||||
I_HTML_HEIGHT_END | TYPE | I | 0 | X | HTML_END_OF_PAGE yüksekliği | |||||
IT_ALV_GRAPHICS | TYPE | DTC_T_TC | X | ALV grafiği için parametre | ||||||
IT_HYPERLINK | TYPE | LVC_T_HYPE | X | Hiperlink | ||||||
IT_ADD_FIELDCAT | TYPE | SLIS_T_ADD_FIELDCAT | X | Ek alan kataloğu bilgileri | ||||||
IT_EXCEPT_QINFO | TYPE | SLIS_T_QINFO_ALV | X | |||||||
IR_SALV_FULLSCREEN_ADAPTER | TYPE REF TO | CL_SALV_FULLSCREEN_ADAPTER | X | Kullanılamaz | ||||||
EXPORT | ||||||||||
Parametre | Tanım tipi | İlişkili tip | Dğr atn. | Parametre açıklaması | ||||||
E_EXIT_CAUSED_BY_CALLER | CALLBACK_USER_COMMAND çıkış parametresi | |||||||||
ES_EXIT_CAUSED_BY_USER | TYPE | SLIS_EXIT_BY_USER | Kullanıcının ALV’ den çıkarken hangi butonu kullandığı bilgisi | |||||||
TABLES | ||||||||||
Parametre | Tanım tipi | İlişkili tip | Dğr atn. | Parametre açıklaması | ||||||
T_OUTTAB | ALV’ de gösterilecek veri | |||||||||
EXCEPTIONS | ||||||||||
Exception | Tanım | |||||||||
PROGRAM_ERROR | Program hatası | |||||||||
Örnek 1: “I_STRUCTURE_NAME” parametresi kullanılan örnek. Abap dictionary’ deki yapı ALV’ nin sütunlarını oluşturmak için kullanılır.
DATA: gt_spfli TYPE STANDARD TABLE OF spfli,
gv_repid TYPE sy-repid.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = gv_repid
i_structure_name = ‘SPFLI’
i_save = ‘A’
TABLES
t_outtab = gt_spfli.
Örnek 2: “IT_FIELDCAT” parametresi kullanılan örnek. Sütun bilgileri, satır satır internal tabloya ekleniyor ve fonksiyona veriliyor.
TYPE-POOLS: slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_fieldcat TYPE slis_fieldcat_alv.
Veri tablosu tipi tanımlanıyor
DATA gt_sbook TYPE STANDARD TABLE OF sbook.
DATA gv_repid TYPE sy-repid.
Veri tablosu dolduruluyor
SELECT * FROM sbook INTO CORRESPONDING FIELDS OF TABLE gt_sbook.
Alan kataloğu dolduruluyor
gs_fieldcat-fieldname = ‘CARRID’.
gs_fieldcat-seltext_m = ‘ID’.
gs_fieldcat-outputlen = 7.
APPEND gs_fieldcat TO gt_fieldcat.
gs_fieldcat-fieldname = ‘CONNID’.
gs_fieldcat-seltext_m = ‘No’.
gs_fieldcat-outputlen = 8.
APPEND gs_fieldcat TO gt_fieldcat.
gs_fieldcat-fieldname = ‘FLDATE’.
gs_fieldcat-seltext_m = ‘Uçuş tarihi’.
gs_fieldcat-outputlen = 9.
APPEND gs_fieldcat TO gt_fieldcat.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = gv_repid
it_fieldcat = gt_fieldcat
i_save = ‘A’
TABLES
t_outtab = gt_sbook
EXCEPTIONS
program_error = 1
OTHERS = 2.
Açıklama: Structure’ a atanan aşağıdaki değerler “slis_t_fieldcat_alv” tablo tipindeki internal tabloya eklenir. İnternal tabloya eklenen her bir satır ALV’ de bir sütuna karşılık gelir.
- (fieldname): Veri tablosunda gösterilecek alan
- (seltext_m): Alanın sütun başlığı
- (outputlen) :Alanın sütun genişliği
Örnek 3: Abap dictionary’ deki bir yapıdaki alan bilgilerinden sütun bilgileri oluşturuluyor. Sütun başlığı, genişliği gibi bilgiler yapıdaki alanların özelliklerinden (data element ve domain) oluşturulur.
TYPE-POOLS: slis.
DATA : gt_sbook TYPE STANDARD TABLE OF sbook,
gv_repid TYPE sy-repid.
DATA gt_fieldcat TYPE slis_t_fieldcat_alv.
SELECT * FROM sbook INTO CORRESPONDING FIELDS OF TABLE gt_sbook.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE’
EXPORTING
i_program_name = gv_repid
i_structure_name = ‘SBOOK’
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = gv_repid
it_fieldcat = gt_fieldcat
i_save = ‘A’
TABLES
t_outtab = gt_sbook
EXCEPTIONS
program_error = 1
OTHERS = 2.
Örnek 4: “REUSE_ALV_FIELDCATALOG_MERGE” fonksiyonu kullanılarak sütun bilgilerini Abap dictionary’ deki bir yapıdan alan ve daha sonra sütun bilgilerinde değişiklik yapan örnek.
TYPE-POOLS: slis.
* Alan kataloğu tanımlanıyor
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_fieldcat TYPE slis_fieldcat_alv.
* Veri tablosu tipi tanımlanıyor
DATA gt_sbook TYPE STANDARD TABLE OF sbook.
DATA gv_repid TYPE sy-repid.
* Veri tablosu dolduruluyor
SELECT * FROM sbook INTO CORRESPONDING FIELDS OF TABLE gt_sbook.
* Alan kataloğu internal tablodan oluşturuluyor
CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE’
EXPORTING
i_program_name = gv_repid
i_structure_name = ‘SBOOK’
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
* Otomatik oluşturulan alan kataloğunu üzerinde değişiklik
LOOP AT gt_fieldcat INTO gs_fieldcat WHERE fieldname = ‘CARRID’.
gs_fieldcat-seltext_m = ‘Yeni ID’.
gs_fieldcat-outputlen = 12.
MODIFY gt_fieldcat FROM gs_fieldcat.
ENDLOOP.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = gv_repid
it_fieldcat = gt_fieldcat
i_save = ‘A’
TABLES
t_outtab = gt_sbook
EXCEPTIONS
program_error = 1
OTHERS = 2.
REUSE_ALV_LIST_DISPLAY
Parametre olarak verilerin internal tabloyu liste formatında görüntüler. Kullanım olarak “REUSE_ALV_GRID_DISPLAY” fonksiyonuna çok benzer, aldığı parametre sayısı daha azdır.
Sütun bilgilerini aktarmak için “I_STRUCTURE_NAME” parametresi veya “IT_FIELDCAT” parametresi kullanılır.
I_STRUCTURE_NAME: Abap dictionary’ deki tanımlı bir yapıdır. Structure, tablo, tablo tipi gibi. Bu parametre kullanıldığında yapıdaki tüm sütunlar ALV’ de gösterilmeye çalışılır.
IT_FIELDCAT: Sütun bilgilerini içeren internal tabloyu (field catalog) parametre olarak alır.
Alan kataloğu internal tablosu üç yönetim ile hazırlanabilir.
1. Alan kataloğu internal tablosunu el ile oluşturarak
2. Alan kataloğu internal tablosunu fonksiyon ile Abap Dictionary’ daki structure, tablo veya tablo tiplerinden oluşturarak
3. Önce Abap dictionary’ deki nesnelerden oluşturulur, daha sonra istenilen şekilde düzeltilerek
Örnek 1: “I_STRUCTURE_NAME” parametresi kullanılan örnek. Abap dictionary’ deki yapı ALV’ nin sütunlarını oluşturmak için kullanılır.
DATA: gt_spfli TYPE STANDARD TABLE OF spfli,
gv_repid TYPE sy-repid.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_LIST_DISPLAY’
EXPORTING
i_callback_program = gv_repid
i_structure_name = ‘SPFLI’
i_save = ‘A’
TABLES
t_outtab = gt_spfli.
Örnek 2: “IT_FIELDCAT” parametresi kullanılan örnek. Sütun bilgileri, satır satır internal tabloya ekleniyor ve fonksiyona veriliyor.
TYPE-POOLS: slis.
* Alan kataloğu tanımlanıyor
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_fieldcat TYPE slis_fieldcat_alv.
* Veri tablosu tip tanımlanıyor
DATA: gt_sbook TYPE STANDARD TABLE OF sbook.
DATA gv_repid TYPE sy-repid.
* Veri tablosu dolduruluyor
SELECT * FROM sbook INTO CORRESPONDING FIELDS OF TABLE gt_sbook.
* Alan kataloğu dolduruluyor
gs_fieldcat-fieldname = ‘CARRID’.
gs_fieldcat-seltext_m = ‘Hava Alanı’.
APPEND gs_fieldcat TO gt_fieldcat.
gs_fieldcat-fieldname = ‘CONNID’.
gs_fieldcat-seltext_m = ‘Bağlantı No.’.
APPEND gs_fieldcat TO gt_fieldcat.
gs_fieldcat-fieldname = ‘FLDATE’.
gs_fieldcat-seltext_m = ‘Tarih’.
APPEND gs_fieldcat TO gt_fieldcat.
gs_fieldcat-fieldname = ‘BOOKID’.
gs_fieldcat-seltext_m = ‘Rezervasyon ID’.
APPEND gs_fieldcat TO gt_fieldcat.
gs_fieldcat-fieldname = ‘PASSNAME’.
gs_fieldcat-seltext_m = ‘Yolcu İsmi’.
APPEND gs_fieldcat TO gt_fieldcat.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_LIST_DISPLAY’
EXPORTING
i_callback_program = gv_repid
it_fieldcat = gt_fieldcat
i_save = ‘A’
TABLES
t_outtab = gt_sbook
EXCEPTIONS
program_error = 1
OTHERS = 2.
Örnek 3: “I_INTERFACE_CHECK” parametresi kullanılarak çalıştırılan ALV örneği. Bu parametre geliştirme ve test amaçlı kullanım için uygundur.
DATA: gt_spfli TYPE STANDARD TABLE OF spfli,
gv_repid TYPE sy-repid.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_LIST_DISPLAY’
EXPORTING
i_interface_check = ‘X’
i_callback_program = gv_repid
i_structure_name = ‘SPFLI’
i_save = ‘A’
TABLES
t_outtab = gt_spfli.
Program çalıştığında Alan kataloğu ile ilgili bilgieri görüntüler. Araç çubuğundan istenilen internal tablo görüntülenebilir.
Liste çıktısını görebilmek için geriye gitmek veya araç çubuğundan “Çıktı tablosu” butonuna tıklamak gerekir.
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Hiyerarşik sıralı çıktı çıktı oluşturur. İki tane internal tabloyu formatlı ve sıralı biçimde görüntüler. Aldığı parametrelerin çoğu “REUSE_ALV_GRID_DISPLAY” ve “REUSE_ALV_LIST_DISPLAY” fonksiyonu ile aynıdır. Ek olarak detay olarak gösterilecek internal tablo bilgileri ve iki tablo arasındaki anahtar alanlar parametre olarak gönderilir.
Parametre | Açıklama | Fonksiyon |
I_TABNAME_HEADER | Başlık olarak gösterilecek internal tablo ismi | IMPORT |
I_TABNAME_ITEM | Detay olarak gösterilecek internal tablo ismi | IMPORT |
IS_KEYINFO | İki tablo arasındaki anahtar alan bağlantısı | IMPORT |
T_OUTTAB_HEADER | Başlık olarak gösterilecek internal tablo | TABLES |
T_OUTTAB_ITEM | Detay olarak gösterilecek internal tablo | TABLES |
Örnek: SFLIGHT tablosunu başlık SPFLI tablosunun detay olarak gösterildiği hiyerarşik ALV örneği.
TYPE-POOLS: slis.
DATA: gt_fieldcat_spfli TYPE slis_t_fieldcat_alv,
gt_fieldcat_sflight TYPE slis_t_fieldcat_alv.
TYPES: BEGIN OF gy_sflight,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
expand(1) TYPE c,
END OF gy_sflight.
DATA: gt_sflight TYPE STANDARD TABLE OF gy_sflight,
gt_spfli TYPE STANDARD TABLE OF spfli.
START-OF-SELECTION.
PERFORM tablolari_doldur.
PERFORM alankatalogu_olustur.
PERFORM tablolari_goster.
FORM tablolari_doldur .
SELECT * FROM sflight
INTO CORRESPONDING FIELDS OF TABLE gt_sflight.
SELECT * FROM spfli
INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
ENDFORM. ” TABLOLARI_DOLDUR
FORM alankatalogu_olustur .
DATA : gs_fieldcat TYPE slis_fieldcat_alv.
gs_fieldcat-col_pos = 1.
gs_fieldcat-fieldname = ‘CARRID’.
gs_fieldcat-tabname = ‘GT_SFLIGHT’.
gs_fieldcat-seltext_m = ‘Hava Alanı’.
APPEND gs_fieldcat TO gt_fieldcat_sflight.
gs_fieldcat-col_pos = 2.
gs_fieldcat-fieldname = ‘CONNID’.
gs_fieldcat-tabname = ‘GT_SFLIGHT’.
gs_fieldcat-seltext_m = ‘Bağlantı No.’.
APPEND gs_fieldcat TO gt_fieldcat_sflight.
gs_fieldcat-col_pos = 3.
gs_fieldcat-fieldname = ‘FLDATE’.
gs_fieldcat-tabname = ‘GT_SFLIGHT’.
gs_fieldcat-seltext_m = ‘Uçuş Tarihi.’.
APPEND gs_fieldcat TO gt_fieldcat_sflight.
gs_fieldcat-fieldname = ‘COUNTRYFR’.
gs_fieldcat-tabname = ‘GT_SPFLI’.
gs_fieldcat-seltext_m = ‘Ülke’.
APPEND gs_fieldcat TO gt_fieldcat_sflight.
gs_fieldcat-fieldname = ‘CITYFROM’.
gs_fieldcat-tabname = ‘GT_SPFLI’.
gs_fieldcat-seltext_m = ‘Şehir’.
APPEND gs_fieldcat TO gt_fieldcat_sflight.
gs_fieldcat-fieldname = ‘AIRPFROM’.
gs_fieldcat-tabname = ‘GT_SPFLI’.
gs_fieldcat-seltext_m = ‘Havaalanı’.
APPEND gs_fieldcat TO gt_fieldcat_sflight.
ENDFORM. ” ALANKATALOGU_OLUSTUR
FORM tablolari_goster .
DATA: lv_tabname_header TYPE slis_tabname,
lv_tabname_item TYPE slis_tabname,
lv_keyinfo TYPE slis_keyinfo_alv,
lv_repid TYPE sy-repid,
ls_layout TYPE slis_layout_alv.
lv_repid = sy-repid.
ls_layout-expand_fieldname = ‘EXPAND’.
ls_layout-window_titlebar = ‘Hiyerarşik ALV Örneği’.
ls_layout-colwidth_optimize = ‘X’.
lv_tabname_header = ‘GT_SFLIGHT’.
lv_tabname_item = ‘GT_SPFLI’.
lv_keyinfo-header01 = ‘CARRID’.
lv_keyinfo-item01 = ‘CARRID’.
lv_keyinfo-header02 = ‘CONNID’.
lv_keyinfo-item02 = ‘CONNID’.
CALL FUNCTION ‘REUSE_ALV_HIERSEQ_LIST_DISPLAY’
EXPORTING
i_callback_program = lv_repid
is_layout = ls_layout
it_fieldcat = gt_fieldcat_sflight
i_save = ‘A’
i_tabname_header = lv_tabname_header
i_tabname_item = lv_tabname_item
is_keyinfo = lv_keyinfo
TABLES
t_outtab_header = gt_sflight
t_outtab_item = gt_spfli.
ENDFORM. <I>” TABLOLARI_GOSTER</I>
REUSE_ALV_BLOCK_LIST_APPEND
Birden fazla Listeyi ard arda görüntüler. Veri tablosu ve alan kataloğu oluşturulan listeler sırasıyla eklenir. Daha sonra “REUSE_ALV_BLOCK_LIST_DISPLAY” fonksiyonu ile eklenen listeler görüntülenir.
Aşağıdaki parametreler zorunludur.
· IS_LAYOUT
· IT_FIELDCAT
· I_TABNAME
· IT_EVENTS
Örnek: Ard arda iki tane ayrı listenin eklendiği örnek.
TYPE-POOLS: slis.
DATA: gt_fieldcat_sflight TYPE slis_t_fieldcat_alv,
gt_fieldcat_spfli TYPE slis_t_fieldcat_alv.
DATA: gt_sflight TYPE STANDARD TABLE OF sflight,
gt_spfli TYPE STANDARD TABLE OF spfli.
START-OF-SELECTION.
PERFORM tablolari_doldur.
PERFORM alankatalogu_olustur.
PERFORM tablolari_goster.
FORM tablolari_doldur .
SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
ENDFORM. <I>” TABLOLARI_DOLDUR</I>
FORM alankatalogu_olustur .
CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE’
EXPORTING
i_structure_name = ‘SFLIGHT’
CHANGING
ct_fieldcat = gt_fieldcat_sflight
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE’
EXPORTING
i_structure_name = ‘SPFLI’
CHANGING
ct_fieldcat = gt_fieldcat_spfli
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
ENDFORM. ” ALANKATALOGU_OLUSTUR
FORM tablolari_goster .
DATA : lv_repid TYPE sy-repid,
ls_layout TYPE slis_layout_alv,
lt_events TYPE slis_t_event.
lv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_BLOCK_LIST_INIT’
EXPORTING
i_callback_program = lv_repid.
CALL FUNCTION ‘REUSE_ALV_BLOCK_LIST_APPEND’
EXPORTING
is_layout = ls_layout
it_fieldcat = gt_fieldcat_sflight
i_tabname = ‘GT_SFLIGHT’
it_events = lt_events
TABLES
t_outtab = gt_sflight
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
CALL FUNCTION ‘REUSE_ALV_BLOCK_LIST_APPEND’
EXPORTING
is_layout = ls_layout
it_fieldcat = gt_fieldcat_spfli
i_tabname = ‘GT_SPFLI’
it_events = lt_events
TABLES
t_outtab = gt_spfli
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
CALL FUNCTION ‘REUSE_ALV_BLOCK_LIST_DISPLAY’
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. ” TABLOLARI_GOSTER
REUSE_ALV_FIELDCATALOG_MERGE
Alan kataloğu (ALV’ deki sütun bilgileri) internal tablosunu otomatik olarak oluşturur. Fonksiyona gönderilen “I_INTERNAL_TABNAME” veya “I_STRUCTURE_NAME” parametresine göre alan kataloğu internal tablosunu doldurur.
“I_INTERNAL_TABNAME”: Program içerisinden aktarılan internal tabloya göre alan kataloğu tablosu doldurulur.
“I_STRUCTURE_NAME”: Abap dictionary içerisinde tanımlı, structure, tablo veya view kullanarak tabloyu doldurur.
IMPORT | ||||||||||||
Parametre | Tanım tipi | İlişkili tip | Başlanıç d. | Ops. | Dğr atn. | Parametre açıklaması | ||||||
I_PROGRAM_NAME | LIKE | SY-REPID | X | X | Fonksiyonu çağıran program | |||||||
I_INTERNAL_TABNAME | TYPE | SLIS_TABNAME | X | X | Alan kataloğu oluşturulacak internal tablo | |||||||
I_STRUCTURE_NAME | LIKE | DD02L-TABNAME | X | X | Alan kataloğu oluşturulacak Abap dictionary nenesi | |||||||
I_CLIENT_NEVER_DISPLAY | TYPE | SLIS_CHAR_1 | X | X | X | Üst birim alanlarını gizle | ||||||
I_INCLNAME | LIKE | TRDIR-NAME | X | X | Include ismie | |||||||
I_BYPASSING_BUFFER | TYPE | CHAR01 | X | X | Tampon belleği kullanma | |||||||
I_BUFFER_ACTIVE | TYPE | CHAR01 | X | X | Özel tamponu aktif et | |||||||
CHANGING | ||||||||||||
Parametre | Tanım tipi | İlişkili tip | Ops. | Dğr atn. | Parametre açıklaması | |||||||
CT_FIELDCAT | TYPE | SLIS_T_FIELDCAT_ALV | X | Alan kataloğu tablosu | ||||||||
EXCEPTIONS | ||||||||||||
Exception | Tanım | |||||||||||
INCONSISTENT_INTERFACE | Çalıştırma parametreleri hatası | |||||||||||
PROGRAM_ERROR | Program hatası | |||||||||||
“I_STRUCTURE_NAME” ile ilgili örnekler için “REUSE_ALV_GRID_DISPLAY” fonksiyonunun anlatıldığı 2. Ve 3. Örnekleri inceleyebilirsiniz.
REUSE_ALV_COMMENTARY_WRITE
ALV’ ye açıklama bilgisi ekler. Raporla ilgili bilgileri başlıkta açıklama alanında göstermek için kullanılır. Eklenmek istenen bilgiler satır satır internal tabloya eklenir ve fonksiyona parametre olarak gönderilir. “REUSE_ALV_GRID_DISPLAY” fonksiyonundan “I_CALLBACK_TOP_OF_PAGE” parametresine başlık fonksiyonun kullanıldığı alt yordam ismi yazılır.
IMPORT | ||||||
Parametre | Tanım tipi | İlişkili tip | Başlanıç d. | Ops. | Dğr atn. | Parametre açıklaması |
IT_LIST_COMMENTARY | TYPE | SLIS_T_LISTHEADER | X | Açıklama bilgisinin olduğu internal tablo | ||
I_LOGO | X | Eklenecek logo ismi | ||||
I_END_OF_LIST_GRID | X | |||||
I_ALV_FORM | TYPE | SAP_BOOL | X |
Örnek: Açıklama alanına rapor ismi, tarih, kayıt sayısı ve logo ekleyen örnek.
TYPE-POOLS: slis.
DATA: gt_spfli TYPE STANDARD TABLE OF spfli,
gv_repid LIKE sy-repid.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
* Program ismi gv_repid değikenine atanıyor
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = gv_repid
i_structure_name = ‘SPFLI’
i_callback_top_of_page = ‘TOP_OF_PAGE’
i_save = ‘A’
TABLES
t_outtab = gt_spfli.
FORM top_of_page.
DATA: lt_header TYPE slis_t_listheader,
ls_header TYPE slis_listheader,
lv_lines TYPE i,
lv_linesc(4) TYPE c.
* Başlık alanına rapor ismi yazılıyor
ls_header-typ = ‘H’.
ls_header-key = ”.
ls_header-info = gv_repid.
APPEND ls_header TO lt_header.
* Günün tarihi ekleniyor
CLEAR ls_header.
ls_header-typ = ‘S’.
ls_header-key = ‘Tarih: ‘.
WRITE sy-datum TO ls_header-info.
APPEND ls_header TO lt_header.
CLEAR: ls_header.
* İnternal tablodaki kayıt sayısı ekleniyor
CLEAR ls_header.
* İnternal tablodaki kayıt sayısı lv_lines değişkenine atanıyor
DESCRIBE TABLE gt_spfli LINES lv_lines.
lv_linesc = lv_lines.
CONCATENATE ‘Toplam kayıt sayısı: ‘ lv_linesc INTO ls_header-info SEPARATED BY space.
ls_header-typ = ‘A’.
APPEND ls_header TO lt_header.
CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’
EXPORTING
it_list_commentary = lt_header
i_logo = ‘ENJOYSAP_LOGO’.
ENDFORM.
REUSE_ALV_VARIANT_F4
ALV variantının seçilmesini seçilmesini sağlayan bir pencere (dialog) açar. Variant listesinin hali hazırda kaydedilmiş variant/variantların olması gerekir. Çalıştırılmadan önce “IS_VARIANT” import paremetresindeki “REPORT” değişkenine raporun ismi atanmalıdır. Pencereden seçim yapıldıktan sonra ALV fonksiyonuna seçilen ALV bilgileri yine “IS_VARIANT” parametresi ile aktarılır.
IMPORT | ||||||||||
Parametre | Tanım tipi | İlişkili tip | Başlanıç d. | Ops. | Dğr atn. | Parametre açıklaması | ||||
IS_VARIANT | LIKE | DISVARIANT | X | Variant bilgileri | ||||||
I_TABNAME_HEADER | TYPE | SLIS_TABNAME | X | X | Tablo ismi balığı | |||||
I_TABNAME_ITEM | TYPE | SLIS_TABNAME | X | X | Tablo ismi kalemi | |||||
IT_DEFAULT_FIELDCAT | TYPE | X | X | Alan kataloğu internal tablosu | ||||||
I_SAVE | SLIS_T_FIELDCAT_ALV | SPACE | X | X | Variant saklama seçeneği | |||||
I_DISPLAY_VIA_GRID | TYPE | CHAR01 | SPACE | X | X | Izgara biçiminde göster | ||||
EXPORT | ||||||||||
Parametre | Tanım tipi | İlişkili tip | Dğr atn. | Parametre açıklaması | ||||||
E_EXIT | X | İptal seçildi | ||||||||
ES_VARIANT | LIKE | DISVARIANT | X | Variant bilgisi | ||||||
EXCEPTIONS | ||||||||||
Exception | Tanım | |||||||||
NOT_FOUND | Variant bulunamadı | |||||||||
PROGRAM_ERROR | Program hatası | |||||||||
Örnek 1: Seçim ekranında variant seçim parametresi olan ve bu parametreden seçilen varainta göre ALV’ nin düzeninin değiştiği örnek. Variant listesini seçim ekranında görmek için önce ALV listesinde variant kaydedilmesi gerekir. Kaydedilen variant daha sonra rapor her çalıştığında seçim ekranında seçilebilir.
DATA gt_spfli TYPE STANDARD TABLE OF spfli.
PARAMETER : p_varia TYPE disvariant-variant.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varia.
PERFORM f4_variant.
START-OF-SELECTION.
PERFORM alv_goster.
FORM alv_goster .
DATA : ls_variant TYPE disvariant,
lv_repid TYPE sy-repid.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
lv_repid = sy-repid.
ls_variant-report = lv_repid.
ls_variant-variant = p_varia.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = lv_repid
i_structure_name = ‘SPFLI’
i_save = ‘A’
is_variant = ls_variant
TABLES
t_outtab = gt_spfli.
ENDFORM.
FORM f4_variant .
DATA: ls_variant TYPE disvariant,
lv_save(1) TYPE c VALUE ‘A’,
lv_exit(1) TYPE c.
CLEAR ls_variant.
ls_variant-report = sy-repid.
CALL FUNCTION ‘REUSE_ALV_VARIANT_F4’
EXPORTING
is_variant = ls_variant
i_save = lv_save
IMPORTING
e_exit = lv_exit
es_variant = ls_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc = 0 AND lv_exit = space.
p_varia = ls_variant-variant.
ENDIF.
ENDFORM.
P_VARIA parametresi üzerinde F4 yardımı kullanıldığında, kaydedilmiş olan varaint listesi görünür. Bu listeden seçim yapılarak rapor çalıştığında düzen seçilen varaint’ a göre gelir.
REUSE_ALV_VARIANT_DEFAULT_GET
ALV raporuna ait varsayılan varaint’ ı elde etmek için kullanılır.
IMPORT | ||||||||
Parametre | Tanım tipi | İlişkili tip | Başlanıç d. | Ops. | Dğr atn. | Parametre açıklaması | ||
I_SAVE | SPACE | X | X | Varaint saklama seçeneği | ||||
EXPORT | ||||||||
Parametre | Tanım tipi | İlişkili tip | Başlanıç d. | Ops. | Dğr atn. | Parametre açıklaması | ||
CS_VARIANT | LIKE | DISVARIANT | X | Variant bilgileri | ||||
EXCEPTIONS | ||||||||
Exception | Tanım | |||||||
WRONG_INPUT | Yanlış giriş paremetresi | |||||||
NOT_FOUND | Variant bulunamadı | |||||||
PROGRAM_ERROR | Program hatası | |||||||
Örnek: ALV’ ye ait varsayılan variant varsa bunu seçim ekranındaki variant parametresine taşıyan örnek.
DATA gt_spfli TYPE STANDARD TABLE OF spfli.
PARAMETER : p_varia TYPE disvariant-variant.
INITIALIZATION.
PERFORM varsayilan_varainti_bul.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varia.
PERFORM f4_variant.
START-OF-SELECTION.
PERFORM alv_goster.
FORM varsayilan_varainti_bul .
DATA: ls_variant TYPE disvariant,
lv_save(1) TYPE c VALUE ‘A’.
CLEAR ls_variant.
ls_variant-report = sy-repid.
CALL FUNCTION ‘REUSE_ALV_VARIANT_DEFAULT_GET’
EXPORTING
i_save = lv_save
CHANGING
cs_variant = ls_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc = 0.
p_varia = ls_variant-variant.
ENDIF.
ENDFORM.
FORM f4_variant .
DATA: ls_variant TYPE disvariant,
lv_save(1) TYPE c VALUE ‘A’,
lv_exit(1) TYPE c.
CLEAR ls_variant.
ls_variant-report = sy-repid.
CALL FUNCTION ‘REUSE_ALV_VARIANT_F4’
EXPORTING
is_variant = ls_variant
i_save = lv_save
IMPORTING
e_exit = lv_exit
es_variant = ls_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc = 0 AND lv_exit = space.
p_varia = ls_variant-variant.
ENDIF.
ENDFORM.
FORM alv_goster .
DATA : ls_variant TYPE disvariant,
lv_repid TYPE sy-repid.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
lv_repid = sy-repid.
ls_variant-report = lv_repid.
ls_variant-variant = p_varia.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = lv_repid
i_structure_name = ‘SPFLI’
i_save = ‘A’
is_variant = ls_variant
TABLES
t_outtab = gt_spfli.
ENDFORM.
Bu ALV’ ye ait varsayılan varaint “INITIALIZATION” sürecinde bulunarak ekrandaki “P_VARIA” parametresine taşınır.
REUSE_ALV_VARIANT_EXISTENCE
Bir varaint’ ın mevcut olup olmadığı kontrolünü yapar.
IMPORT | ||||||||
Parametre | Tanım tipi | İlişkili tip | Başlanıç d. | Ops. | Dğr atn. | Parametre açıklaması | ||
I_SAVE | SPACE | X | X | Varaint saklama seçeneği | ||||
CHANGING | ||||||||
Parametre | Tanım tipi | İlişkili tip | Başlanıç d. | Ops. | Dğr atn. | Parametre açıklaması | ||
CS_VARIANT | LIKE | DISVARIANT | X | Variant bilgileri | ||||
EXCEPTIONS | ||||||||
Exception | Tanım | |||||||
WRONG_INPUT | Yanlış giriş paremetresi | |||||||
NOT_FOUND | Variant bulunamadı | |||||||
PROGRAM_ERROR | Program hatası | |||||||
Örnek: Seçilen variant’ ın sistemde bulunup, bulunmadığını kontrol eden örnek.
DATA gt_spfli TYPE STANDARD TABLE OF spfli.
PARAMETER : p_varia TYPE disvariant-variant.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varia.
PERFORM f4_variant.
START-OF-SELECTION.
PERFORM variant_kontrolu.
PERFORM alv_goster.
FORM f4_variant .
DATA: ls_variant TYPE disvariant,
lv_save(1) TYPE c VALUE ‘A’,
lv_exit(1) TYPE c.
CLEAR ls_variant.
ls_variant-report = sy-repid.
CALL FUNCTION ‘REUSE_ALV_VARIANT_F4’
EXPORTING
is_variant = ls_variant
i_save = lv_save
IMPORTING
e_exit = lv_exit
es_variant = ls_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc = 0 AND lv_exit = space.
p_varia = ls_variant-variant.
ENDIF.
ENDFORM.
FORM variant_kontrolu .
DATA: ls_variant TYPE disvariant,
lv_save(1) TYPE c VALUE ‘A’.
IF p_varia IS NOT INITIAL.
ls_variant-report = sy-repid.
ls_variant-variant = p_varia.
CALL FUNCTION ‘REUSE_ALV_VARIANT_EXISTENCE’
EXPORTING
i_save = lv_save
CHANGING
cs_variant = ls_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM. ” VARIANT_KONTROLU
FORM alv_goster .
DATA : ls_variant TYPE disvariant,
lv_repid TYPE sy-repid.
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
lv_repid = sy-repid.
ls_variant-report = lv_repid.
ls_variant-variant = p_varia.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = lv_repid
i_structure_name = ‘SPFLI’
i_save = ‘A’
is_variant = ls_variant
TABLES
t_outtab = gt_spfli.
ENDFORM.
Seçim ekranında “P_VARIA” parametresine yazılan varaint sistemde bulunuyor ise ALV bulunan variant düzeninde gösterilir. Bulunamaz ise hata mesajı verilir.
REUSE_ALV_EVENTS_GET
Lliste tipine göre ALV fonksiyonunun alabileceği bütün (CALLBACK) olayların listesini döner. Bu listedeki olaylara atanan alt yordam isimleri ALV fonksiyonuna verilerek alt yordamlar atınmış olur.
IMPORT | |||||||
Parametre | Tanım tipi | İlişkili tip | Başlanıç d. | Ops. | Dğr atn. | Parametre açıklaması | |
I_LIST_TYPE | TYPE | SLIS_LIST_TYPE | 0 | X | X | 1-4 arası liste tipi | |
EXPORT | |||||||
Parametre | Tanım tipi | İlişkili tip | Dğr atn. | Parametre açıklaması | |||
ET_EVENTS | TYPE | SLIS_T_EVENT | X | Liste tipine göre olayların listesi | |||
EXCEPTIONS | |||||||
Exception | Tanım | ||||||
LIST_TYPE_WRONG | Liste tipi mevcut değil | ||||||
I_LIST_TYPE parametresinin alabileceği değerler ve açıklamaları aşağıdaki tablodadır.
Parametre Değeri | ALV Liste Tipi | ALV Fonksiyonu |
0 | Basit liste | REUSE_ALV_LIST_DISPLAY |
1 | Hiyerarşik sıralı liste | REUSE_ALV_HIERSEQ_LIST_DISPLAY |
2 | Basit blok liste | REUSE_ALV_BLOCK_LIST_APPEND |
3 | Hiyerarşik sıralı blok liste | REUSE_ALV_BLOCK_LIST_HS_APPEND |
4 | Tam ekran | REUSE_ALV_GRID_DISPLAY |
Örnek: Aşağıdaki örnekte hücresel ALV gösterimi için ALV fonksiyonunda “I_CALLBACK_TOP_OF_PAGE” parametresi kullanılmadı. Bunun yerine “REUSE_ALV_EVENTS_GET” fonksiyonu kullanılarak “IT_EVENTS” tablosu alınır. Bu tabloda olaya alt yordam ismi atanır, ALV fonksiyonuna bu tablo parametre olarak verilir.
TYPE-POOLS: slis.
DATA: gt_spfli TYPE STANDARD TABLE OF spfli,
gv_repid LIKE sy-repid,
gt_events TYPE slis_t_event.
START-OF-SELECTION.
PERFORM alv_callback_olaylari_bul.
PERFORM alv_goster.
FORM alv_callback_olaylari_bul .
DATA ls_events TYPE slis_alv_event.
CALL FUNCTION ‘REUSE_ALV_EVENTS_GET’
EXPORTING
i_list_type = 4
IMPORTING
et_events = gt_events
EXCEPTIONS
list_type_wrong = 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.
READ TABLE gt_events INTO ls_events
WITH KEY name = slis_ev_top_of_page.
IF sy-subrc = 0.
ls_events-form = ‘TOP_OF_PAGE’.
MODIFY gt_events FROM ls_events INDEX sy-tabix.
ENDIF.
ENDFORM.
FORM alv_goster .
SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = gv_repid
i_structure_name = ‘SPFLI’
i_save = ‘A’
it_events = gt_events
TABLES
t_outtab = gt_spfli.
ENDFORM.
FORM top_of_page.
DATA: lt_header TYPE slis_t_listheader,
ls_header TYPE slis_listheader.
ls_header-typ = ‘H’.
ls_header-key = ”.
ls_header-info = ‘REUSE_ALV_EVENTS_GET Örneği’.
APPEND ls_header TO lt_header.
CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’
EXPORTING
it_list_commentary = lt_header
i_logo = ‘ENJOYSAP_LOGO’.
ENDFORM.
Sütun Görüntüsü Biçimlendirme
Alan katalogu özellikleri değiştirilerek sütuna bağlı alanların görüntüsü değiştirilebilir.
Alan | Anlamı | Veri Tipi | Değer Aralığı |
HOTSPOT | Alan üzerinde geldiğinde imlecin el şeklini (link) almasını sağlar | CHAR(1) | SPACE, ‘X’ |
CHECKBOX | Alanın checkbox olarak görünmesini sağlar | CHAR(1) | SPACE, ‘X’ |
DO_SUM | ALV’ de belirtilen alanın alt toplamı alınarak görüntülenir | CHAR(1) | SPACE, ‘X’ |
COL_POS | Alanın sütun pozisyonu ayarlamak için kullanılır | INT4(10) | Tamsayı |
EMPHASIZE | Sütun rengini değiştirmek için kullanılır‘X’ kullanılır ise ön tanımlı tipler kullanılır. Eğer karakter ‘C’(renk kodu) ile başlarsa, alabileceği üç rakamın anlamı şöyledir.1. x: renk kodu2. y: yoğunluk görünüm3. z: ters çevrilmiş renk görünümü | CHAR(4) | SPACE, ‘X’ or ‘Cxyz’ (x:’1′-‘9’; y,z: ‘0’=off ‘1’=on) |
NO_OUT | Alan gizlenir. Alan alan listesinde kalmaya devam eder. ALV görüntüledikten sonra düzen içerisinden listeye dâhil edilebilir | CHAR(1) | SPACE, ‘X’ |
OUTPUTLEN | Alanın görüntülenen sütun genişliğini ayarlamak için kullanılır. ABAP Dictionary’ de tanımlı bir alan ise doldurmaya gerek yoktur. Alan uzunluğu Domain üzerinden devralınır. | NUMC(6) | Tamsayı |
Sütun İçeriğini Biçimlendirme
Alan katalogu özellikleri değiştirilerek sütuna bağlı alanların içerikleri biçimlendirilebilir.
Alan | Anlamı | Veri Tipi | Değer Aralığı |
EDIT_MASK | Geçerli alan çıktısı için çeviri yordamı atanmış ise kullanılmasını sağlar. | CHAR(60) | SPACE, çeviri yordamı |
ICON | Sütun içeriği ikon olarak görüntülenir. Sütun içeriği geçerli ikon karakter dizesi içermelidir. | CHAR(1) | SPACE, ‘X’ |
JUST | Hizalama için kullanılır. CHAR ve NUMC veri tipine sahip alanlara uygulanabilir.· ‘R’: Sağa dayalı· ‘L’: Sola dayalı· ‘R’: Ortalanmış | CHAR(1) | SPACE, ‘R’, ‘L’,’C’ |
LZERO | NUMC veri tipi için kullanılabilir. Alanın sıfırdan büyük rakamının solunda sıfır var ise görüntülenir. | CHAR(1) | SPACE, ‘X’ |
NO_SIGN | Alan değeri işaretsiz olarak görüntülenir. | CHAR(1) | SPACE, ‘X’ |
NO_ZERO | Sıfır alanlar boş olarak görüntülenir. | CHAR(1) | SPACE, ‘X’ |
SYMBOL | Sütun içeriği sembol olarak görüntülenir. Alan içeriği geçerli sembol işaretini içermelidir. | CHAR(1) | SPACE, ‘X’ |
Sütun Metin Özelliklerini Biçimlendirme
Alan katalogu özellikleri değiştirilerek sütun başlığı, ipucu yardımı, sütun seçim metinlerinin bakımı yapılabilir.
LVC_S_FCAT için metin biçimlendirme özellikleri
Alan | Anlamı | Veri Tipi | Değer Aralığı |
TOOLTIP | Sütuna bağlı ipucu yardımı metni | CHAR(40) | Herhangi bir metin |
TIPDDICTXT | ABAP Data Dictionary’ e referans gösterilen alanlar için metin seçimi. | CHAR(1) | SPACE, ‘L’, ‘M’, ‘S’ ve ‘R’ |
SELTEXT | Sütun seçiminde kullanılacak metin | CHAR(40) | Herhangi bir metin |
SELDDICTXT | ABAP Dictionary’ e referans gösterilen alanlar için sütun seçiminde kullanılacak metin | CHAR(1) | SPACE, ‘L’, ‘M’, ‘S’ ve ‘R’ |
SCRTEXT_S | ABAP Dictionary’ de tanımlı alanlar için tanımlı kısa metin bu alana kopyalanır. | CHAR(10) | ABAP Dictionary’ den kopyalanan metin |
SCRTEXT_M | ABAP Dictionary’ de tanımlı alanlar için tanımlı orta uzunluktaki metin bu alana kopyalanır. | CHAR(20) | ABAP Dictionary’ den kopyalanan metin |
SCRTEXT_L | ABAP Dictionary’ de tanımlı alanlar için tanımlı uzun metin bu alana kopyalanır. | CHAR(40) | ABAP Dictionary’ den kopyalanan metin |
REPTEXT | ABAP Dictionary’ de tanımlı alanlar için uygun data element’ alan etiketi bu alana kopyalanır. | CHAR(55) | ABAP Dictionary’ den kopyalanan metin |
COLTEXT | ABAP Dictionary’ e referans gösterilmeyen alan için sütun başlığı belirler. | CHAR(40) | Herhangi bir metin |
COLDDICTXT | ABAP Dictionary’ e referans gösterilen alanlar için sütun başlığı seçiminde kullanılacak metin. | CHAR(1) | SPACE, ‘L’, ‘M’, ‘S’ ve ‘R’ |
SLIS_FIELDCAT_ALV için metin biçimlendirme özellikleri
Alan | Anlamı | Veri Tipi | Değer Aralığı |
SELTEXT_S | ABAP Dictionary’ de tanımlı alanlar için tanımlı kısa metin bu alana kopyalanır. | CHAR(10) | ABAP Dictionary’ den kopyalanan metin |
SELTEXT_M | ABAP Dictionary’ de tanımlı alanlar için tanımlı orta uzunluktaki metin bu alana kopyalanır. | CHAR(20) | ABAP Dictionary’ den kopyalanan metin |
SELTEXT_L | ABAP Dictionary’ de tanımlı alanlar için tanımlı uzun metin bu alana kopyalanır. | CHAR(40) | ABAP Dictionary’ den kopyalanan metin |
REPTEXT | ABAP Dictionary’ de tanımlı alanlar için uygun data element’ alan etiketi bu alana kopyalanır. | CHAR(55) | ABAP Dictionary’ den kopyalanan metin |
Örnek: Sütun biçimlendirme uygulanan örnek.
TYPE-POOLS: slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_fieldcat TYPE slis_fieldcat_alv.
TYPES: BEGIN OF gy_sbook,
carrid TYPE sbook-carrid,
connid TYPE sbook-connid,
fldate TYPE sbook-fldate,
bookid TYPE sbook-bookid,
passname TYPE sbook-passname,
icon TYPE c LENGTH 4,
END OF gy_sbook.
DATA: gt_sbook TYPE STANDARD TABLE OF gy_sbook,
gs_sbook TYPE gy_sbook.
DATA gv_repid TYPE sy-repid.
SELECT * FROM sbook INTO CORRESPONDING FIELDS OF TABLE gt_sbook.
LOOP AT gt_sbook INTO gs_sbook.
gs_sbook-icon = ‘@CQ@’.
MODIFY gt_sbook FROM gs_sbook.
ENDLOOP.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = ‘CARRID’.
gs_fieldcat-seltext_m = ‘Hava Alanı’.
gs_fieldcat-hotspot = ‘X’.
gs_fieldcat-just = ‘R’.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = ‘CONNID’.
gs_fieldcat-seltext_m = ‘Bağlantı No.’.
gs_fieldcat-emphasize = ‘C601’.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = ‘FLDATE’.
gs_fieldcat-seltext_m = ‘Tarih’.
gs_fieldcat-emphasize = ‘X’.
gs_fieldcat-COL_POS = 5.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = ‘BOOKID’.
gs_fieldcat-seltext_m = ‘Rezervasyon ID’.
gs_fieldcat-outputlen = 15.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = ‘PASSNAME’.
gs_fieldcat-seltext_m = ‘Yolcu İsmi’.
gs_fieldcat-no_out = ‘X’.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat-fieldname = ‘ICON’.
gs_fieldcat-seltext_m = ‘Icon’.
gs_fieldcat-icon = ‘X’.
APPEND gs_fieldcat TO gt_fieldcat.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = gv_repid
it_fieldcat = gt_fieldcat
i_save = ‘A’
TABLES
t_outtab = gt_sbook
EXCEPTIONS
program_error = 1
OTHERS = 2.
Örnek: Hotspot
TYPE-POOLS: slis.
DATA : gt_mara TYPE STANDARD TABLE OF mara,
gs_mara TYPE mara,
gv_repid TYPE sy-repid.
DATA : gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_fieldcat TYPE slis_fieldcat_alv.
SELECT * FROM mara UP TO 10 ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_mara.
gv_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE’
EXPORTING
i_program_name = gv_repid
i_structure_name = ‘MARA’
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
gs_fieldcat-hotspot = ‘X’.
MODIFY gt_fieldcat FROM gs_fieldcat
TRANSPORTING hotspot
WHERE fieldname = ‘MATNR’.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = gv_repid
it_fieldcat = gt_fieldcat
i_save = ‘A’
i_callback_user_command = ‘USER_COMMAND’
TABLES
t_outtab = gt_mara
EXCEPTIONS
program_error = 1
OTHERS = 2.
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN ‘&IC1’.
READ TABLE gt_mara INTO gs_mara INDEX rs_selfield-tabindex.
IF sy-subrc EQ 0.
SET PARAMETER ID ‘MAT’ FIELD gs_mara-matnr.
CALL TRANSACTION ‘MM03’ AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM. ” USER_COMMAND
Örnek:
Copy… (Ctrl+F5)
Package ve request işlemleri yapılır.