Örnek: ABAP programında oluşturulan internal tabloyu ve bir structure ve bir değişkeni smartforma parametre olarak göndererek bu bilgileri smartform’ da kullanan örnek.
DATA: gt_spfli TYPE STANDARD TABLE OF spfli,
gv_degisken TYPE c LENGTH 20,
gs_structure TYPE sbook.
DATA: gv_fm_name TYPE rs38l_fnam,
gs_ssfctrlop TYPE ssfctrlop,
gs_ssfcompop TYPE ssfcompop.
SELECT * FROM spfli UP TO 10 ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_spfli.
gv_degisken = ‘Aktarılan metin’.
gs_structure-carrid = ‘LH’.
gs_structure-connid = ‘400’.
CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’
EXPORTING
formname = ‘Z_SF_TEST’
IMPORTING
fm_name = gv_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
gs_ssfcompop-tddest = ‘LOCL’.
CALL FUNCTION gv_fm_name
EXPORTING
control_parameters = gs_ssfctrlop
output_options = gs_ssfcompop
user_settings = space
degisken = gv_degisken
structure = gs_structure
TABLES
tb_spfli = gt_spfli
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ABAP kodunda fonksiyon gönderilen üç adet parametre için (gv_degisken, gv_structure, gt_spfli) smartform içerisinde tanım yapılmalıdır. Değişken ve structure içeri aktarmak için Form Builder’ den “Form arayüzü”’ nü seçin. “İçe aktar” tabına smartform içerisine aktarılacak değişeken ve structurelar yazılır.
Smartform’ a tablo aktarmak için “Tablolar” tabı kullanılır. Tablo aktarmak için bağlı tipin tablo tipi olması gerekir. Bu yüzden SPFLI tablosunun tablo tipi olan “SPFLI_TAB” kullanın.
Bu eklemeler yapıldıktan sonra eklenen alanlar alan listesi içerisine dahil olacaktır.
Değişken ve structure için ikincil bir pencereye metin öğesi ekleyebilirsiniz.
Yeni oluşturulan pencere özellikleri aşağıdaki gibi yapın.
Yeni oluşturulan pencereye metin elementi ekleyin.
Eklenen metin öğesi üzerine tıklayarak “Genel özellikler” tabına geçin.
Sol alt köşedeki alan listesinde “içe aktarım arayüzü” klasörünü açarak “DEGISKEN” isimli alanı yeni oluşturulan metin öğesine sürükleyin.
Daha sonra “STRUCTURE” isimli klasörü açarak içerisinden “CARRID” ve “CONNID” değişkenlerini ikinci ve üçüncü satırlara sürükleyin.
İçeriye aktarılan internal tablosundaki bilgileri tablo içerisinde göstermek için “MAIN” ana pencersine sağ tıklayın “Yarat”, “Tablo” seçeneğini seçin.
Ana pencere içerisine yeni bir tablo eklenecektir.
Tabloda kullanılacak satır ve sütunlar için satır düzenlemesi yapılması gerekir. Tablo ilk oluşturulduğunda standart olarak gelir. Başlık ve ana alanda kullanmak için 3 sütunlu satır tipi oluşturulması yeterlidir. Başlık alanındaki sütunlar tablo başlığı, ana alandaki sütunlara tablo içeriği gelecektir.
Tablo tabında iken “Ayrıntılar” butonuna tıklayın.
Tablo genişliği otomatik olarak tablo genişliğini almıştır. Toplam tablo genişliği olacak şekilde 3 sütun bilgisini doldurun. Bu şekilde 3 sütunluk bir satır tipi tanımlamış oldunuz.
Sütun başlıklarını oluşturmak için başlık alanına sağ tıklayın, “Yarat”, “Tablo satırı” seçeneğini seçin.
%ROW1’ için satır tipini oluşturduğunuz satır tipini seçin.
Satır tipini seçtikten sonra 3 adet alt öğe oluşacaktır. Bu öğelerin her biri tanımladığınız sütunlara karşılık gelir.
Her bir sütun içerisine metin oluşturun ve metin başlığı olarak sırasıyla metinlere “Havaalanı”, “Bağlantı”, “Ülkeden” sütunlarını ekleyin.
Tablo içeriğini göstermek için ana alan içerisinde satır oluşturulması gerekir. Ana alan üzerine sağ tıklayın, “Yarat”, “Tablo satırı” seçeneğini seçin.
%ROW2 için %LYTPE1 satır tipini seçin.