Submit ile çağırılan programlarda varsayılan seçim kutusunun işaretli gönderilmesi
Aşağıdaki örnekte 3 farklı seçim kutusu grubu mevcuttur. Her grupta en az 3 (en çok 5) seçim kutusu bulunmaktadır. Kodlar fonksiyon içinde yazılmıştır. Aynı gruptan birden fazla seçili kutucuk var ise teke indirger, hiç yok ise ilk elemanı varsayılan olarak işaretler. Submitte bu kutucuklar birden fazla işaretlenirse program hata verecektir.
*" VALUE(IXA_TARIH) TYPE XFELD OPTIONAL
*" VALUE(IXA_DONEM) TYPE XFELD OPTIONAL
*" VALUE(IXA_VARDI) TYPE XFELD OPTIONAL
*" VALUE(IXB_HAFTA) TYPE XFELD OPTIONAL
*" VALUE(IXB_AYLIK) TYPE XFELD OPTIONAL
*" VALUE(IXB_YILLIK) TYPE XFELD OPTIONAL
*" VALUE(IXC_VARDIYA_A) TYPE XFELD OPTIONAL
*" VALUE(IXC_VARDIYA_B) TYPE XFELD OPTIONAL
*" VALUE(IXC_VARDIYA_C) TYPE XFELD OPTIONAL
*" VALUE(IXC_VARDIYA_HEPSI) TYPE XFELD OPTIONAL
data: lxa_tarih type c value space,
lxa_donem type c value space,
lxa_vardi type c value space,
lxb_hafta type c value space,
lxb_aylik type c value space,
lxb_yillik type c value space,
lxc_vardiya_a type c value space,
lxc_vardiya_b type c value space,
lxc_vardiya_c type c value space,
lxc_vardiya_hepsi type c value space,
lxx_xxxd type c value space, *" tamamlama değişkeni
lxx_xxxe type c value space. *" tamamlama değişkeni
lxa_tarih = ixa_tarih.
lxa_donem = ixa_donem.
lxa_vardi = ixa_vardi.
lxb_hafta = ixb_hafta.
lxb_aylik = ixb_aylik .
lxb_yillik = ixb_yillik.
lxc_vardiya_a = ixc_vardiya_a.
lxc_vardiya_b = ixc_vardiya_b .
lxc_vardiya_c = ixc_vardiya_c.
lxc_vardiya_hepsi = ixc_vardiya_hepsi.
perform f_option_select changing lxa_tarih
lxa_donem
lxa_vardi
lxx_xxxd
lxx_xxxe .
perform f_option_select changing lxb_hafta
lxb_aylik
lxb_yillik
lxx_xxxd
lxx_xxxe .
perform f_option_select changing lxc_vardiya_a
lxc_vardiya_b
lxc_vardiya_c
lxc_vardiya_hepsi
lxx_xxxe .
submit zmm_termin
via selection-screen
with p_tarih eq lxa_tarih
with p_donem eq lxa_donem
with p_vardi eq lxa_vardi
with p_hafta eq ixb_hafta
with p_aylik eq ixb_aylik
with p_yillik eq ixb_yillik
with p_a eq ixc_vardiya_a
with p_b eq ixc_vardiya_b
with p_c eq ixc_vardiya_c
with p_tum eq ixc_vardiya_hepsi
types: begin of ty_opt_xndx ,
xndx type int1,
param type char30,
end of ty_opt_xndx.
types: tty_opt_xndx type sorted table of ty_opt_xndx
with unique key xndx .
form f_option_select changing chn_a type c
chn_b type c
chn_c type c
chn_d type c
chn_e type c .
data: lt_list type tty_opt_xndx.
data: ls_list type ty_opt_xndx.
refresh lt_list.
perform f_option_add using 1 chn_a changing lt_list.
perform f_option_add using 2 chn_b changing lt_list.
perform f_option_add using 3 chn_c changing lt_list.
perform f_option_add using 4 chn_d changing lt_list.
perform f_option_add using 5 chn_e changing lt_list.
clear ls_list.
read table lt_list into ls_list index 1.
clear: chn_a,chn_b,chn_c,chn_d,chn_e.
case ls_list-xndx.
when 1. chn_a = `X`.
when 2. chn_b = `X`.
when 3. chn_c = `X`.
when 4. chn_d = `X`.
when 5. chn_e = `X`.
when others. chn_a = `X`.
endcase.
****Kuyu başına vardım Zeynep`im bekler diye
****Nasıl haberin almışsa dayı emmi hep orda
****
endform. "F_option_3
form f_option_add using prm_xndx type int1
prm_opt type c
changing cht_list type tty_opt_xndx.
data: ls_row type ty_opt_xndx.
if prm_opt = `X`.
ls_row-xndx = prm_xndx.
ls_row-param = prm_xndx.*& etiket konulabilir 30 + xndx A/B/C
insert ls_row into table cht_list.
endif.
endform. "f_option_add