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

  datalxa_tarih type value space,
        lxa_donem type value space,
        lxa_vardi type value space,

        lxb_hafta type value space,
        lxb_aylik type value space,
        lxb_yillik type value space,

        lxc_vardiya_a type value space,
        lxc_vardiya_b type value space,
        lxc_vardiya_c type value space,
        lxc_vardiya_hepsi type value space,  
        lxx_xxxd type value space*"  tamamlama değişkeni 
        lxx_xxxe type 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

 

 


typesbegin of ty_opt_xndx ,
        xndx  type int1,
        param   type char30,
      end of ty_opt_xndx.

typestty_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 .
  datalt_list  type tty_opt_xndx.
  datals_list  type  ty_opt_xndx.
  refresh lt_list.
  perform f_option_add using chn_a  changing lt_list.
  perform f_option_add using chn_b  changing lt_list.
  perform f_option_add using chn_c  changing lt_list.
  perform f_option_add using chn_d  changing lt_list.
  perform f_option_add using chn_e  changing lt_list.

  clear ls_list.
  read table lt_list into ls_list index 1.
  clearchn_a,chn_b,chn_c,chn_d,chn_e.

  case ls_list-xndx.
    when 1chn_a `X`.
    when 2chn_b `X`.
    when 3chn_c `X`.
    when 4chn_d `X`.
    when 5chn_e `X`.
    when otherschn_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.
  datals_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