How to program exit

*&---------------------------------------------------------------------*
*& Report  ZTEST135
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

report  ztest135 no standard page heading.


tables:tstc,tadir,modsapt,modact,trdir,tfdir,enlfdir,sxs_attrt,tstct.

data : jtab like tadir occurs with header line.
data : field1(30).
data : v_devclass like tadir-devclass.

parameters : p_tcode like tstc-tcode,
       p_pgmna like tstc-pgmna .

data wa_tadir type tadir.

start-of-selection.
  if not p_tcode is initial.

    select single from tstc where tcode eq p_tcode.

  elseif not p_pgmna is initial.

    tstc-pgmna p_pgmna.

  endif.
  if sy-subrc eq 0.

    select single from tadir
    where pgmid 'R3TR'
     and object 'PROG'
     and obj_name tstc-pgmna.

    move : tadir-devclass to v_devclass.

    if sy-subrc ne 0.

      select single from trdir
       where name tstc-pgmna.

      if trdir-subc eq 'F'.

        select single from tfdir
         where pname tstc-pgmna.

        select single from enlfdir
         where funcname tfdir-funcname.

        select single from tadir
         where pgmid 'R3TR'
         and object 'FUGR'
         and obj_name eq enlfdir-area.

        move : tadir-devclass to v_devclass.

      endif.

    endif.

    select from tadir into table jtab where pgmid 'R3TR' and
     object in ('SMOD', 'SXSD'and
     devclass v_devclass.

    select single from tstct where sprsl eq sy-langu and
     tcode eq p_tcode.

    format color col_positive intensified off.

    write:/(19'Transaction Code - ',
    20(20p_tcode,
    45(50tstct-ttext.

    skip.

    if not jtab[] is initial.
      write:/(105sy-uline.
      format color col_heading intensified on.
      sort jtab by object.

      data : wf_txt(60type c,
          wf_smod type i ,
          wf_badi type i ,
          wf_object2(30type c.

      clear : wf_smod, wf_badi , wf_object2.

      loop at jtab into wa_tadir.

        at first.
          format color col_heading intensified on.
          write:/1 sy-vline,
            'Enhancement/ Business Add-in',
            41 sy-vline ,
            42 'Description',
            105 sy-vline.
          write:/(105sy-uline.
        endat.

        clear wf_txt.

        at new object.
          if wa_tadir-object 'SMOD'.
            wf_object2 'Enhancement' .
          elseif wa_tadir-object 'SXSD'.
            wf_object2 ' Business Add-in'.
          endif.

          format color col_group intensified on.
          write:/1 sy-vline,
             wf_object2,
             105 sy-vline.
        endat.

        case wa_tadir-object.
          when 'SMOD'.
            wf_smod wf_smod + 1.
            select single modtext into wf_txt
             from modsapt
             where sprsl sy-langu
              and name wa_tadir-obj_name.
            format color col_normal intensified off.
          when 'SXSD'.
            " FOR BADIS
            wf_badi wf_badi + 1 .
            select single text into wf_txt
             from sxs_attrt
             where sprsl sy-langu
              and exit_name wa_tadir-obj_name.

            format color col_normal intensified on.

        endcase.

        write:/1 sy-vline,
           wa_tadir-obj_name hotspot on,
           41 sy-vline ,
           42 wf_txt,
           105 sy-vline.

        at end of object.
          write : /(105sy-uline.
        endat.

      endloop.

      write:/(105sy-uline.

      skip.

      format color col_total intensified on.

      write:'No.of Exits:' , wf_smod.
      write:'No.of BADis:' , wf_badi.

    else.
      format color col_negative intensified on.
      write:/(105'No userexits or BADis exist'.
    endif.
  else.
    format color col_negative intensified on.
    write:/(105'Transaction does not exist'.
  endif.

at line-selection.
  data : wf_object type tadir-object.
  clear wf_object.
  get cursor field field1.
  check field1(8eq 'WA_TADIR'.
  read table jtab with key obj_name sy-lisel+1(20).
  move jtab-object to wf_object.
  case wf_object.
    when 'SMOD'.
      set parameter id 'MON' field sy-lisel+1(10).
      call transaction 'SMOD' and skip first screen.
    when 'SXSD'.
      set parameter id 'EXN' field sy-lisel+1(20).
      call transaction 'SE18' and skip first screen.
  endcase.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值