SAP Abap Ekranı 7/22/2016

Senaryo :SAP ABAP'da SE38 Ekranında İki tablo birleştirilip tarihler arasındaki sipariş malzemelerini listelemek, Bunun için VBAP ve MAKT tablolarını innerjoin ile birleştiriyoruz.
Öncelikle Return Table Oluşturuyoruz ve Hangi Alanları Kullanacaksak , Gerekli olan alanları belirtiyoruz.
{
* Kendim içerde referanssız benim istediğim yapıda bir return table olsun istiyorum.
* Sadece istediğim alanlar oluyor. Occurs 0 dedediğimiz an kayıt alabilir hale gelebiliyor..
}
VBAP Tablosundan UMZIN,MEINS,MEINS,NETWR,WAERK,MATNR alanlarını alıyoruz.
MAKT Tablosundan MAKTX alanını alıyorum.
REPORT ZMM_DM.
TABLES : VBAP.
Tables : VBAP. belirtmemizin sebebi, Select optionda tarih aralıklarına göre sorgu çalıştırdığımız için.
* Return Table oluştururuyorum :
DATA : BEGIN OF gt_vbap OCCURS 0,
matnr LIKE vbap-MATNR,
umzin LIKE vbap-UMZIN,
meins LIKE vbap-MEINS,
netwr LIKE vbap-NETWR,
waerk LIKE vbap-WAERK,
maktx LIKE makt-MAKTX,
END OF gt_vbap.
MAKT Tablosundan MAKTX Malzeme Açıklama Alanını Alıyoruz.
ABAP KODLARI :
DATA : BEGIN OF gt_vbap OCCURS 0,
matnr LIKE vbap-MATNR,
umzin LIKE vbap-UMZIN,
meins LIKE vbap-MEINS,
netwr LIKE vbap-NETWR,
waerk LIKE vbap-WAERK,
maktx LIKE makt-MAKTX,
END OF gt_vbap.
*Return Table Oluşturduktan Sonra Select-Option Oluşturuyorum :
SELECT-OPTIONS : s_erdat for VBAP-ERDAT.
* İnner Join Kullanarak 2 Tablo Arasından Seçtiğim Tarih Aralıklarına Göre Verileri Çekip Return Table Aktarmış Oluyoruz.
SELECT * into CORRESPONDING FIELDS OF table gt_vbap
from vbap
INNER JOIN makt on VBAp~MATNR eq makt~matnr
where erdat in s_erdat.
IF gt_vbap[] IS NOT INITIAL.
LOOP at gt_vbap.
WRITE: / gt_vbap-maktx, gt_vbap-matnr, gt_vbap-netwr, gt_vbap-waerk.
ENDLOOP.
ENDIF.
BREAK-POINT.
Sap Abap 23.07.2016 tarihindeki kurs detayları ,
F7 : Debug ekranında geri gelir.
CTRL+F3 Active ET.
SE16'da tablolara bakabiliyorsun.
CHECK gt_mara[] IS NOT INITIAL. Eğer tablo null ise program durar.
Su01 Kullanıcı Açma, Şifre Güncelleme Ekranı.
Yorum Yapmak için formu doldurup gönderiniz.