ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Get_kunnr

Get_kunnr

原创 Linux操作系统 作者:lewslin 时间:2010-06-23 17:39:45 0 删除 编辑
  data: w1 type i.
  data p_table1 type sdpartner_enhanced_kupav
                   occurs 10 with header line.
  data p_table2 type tpaer
                   occurs 10 with header line.
  if lm_kunnr = space.
    message e067(zz).
  endif.
  select single * from knvp where kunnr = lm_kunnr
    and vkorg = pm_vkovg and parvw = 'AG'.
  if sy-subrc <> 0.
    message e081(zz) with pm_vkovg lm_kunnr.
  endif.
  clear w1.
  if p_kunnr <> space.
    select single * from knvp where kunnr = lm_kunnr
          and vkorg = pm_vkovg and parvw = 'WE' and
          kunn2 = p_kunnr.
    if sy-subrc <> 0.
      message e290(zz) with p_kunnr.
    endif.
  else.
    select * from knvp
      where kunnr = lm_kunnr and vkorg = pm_vkovg
           and parvw = 'WE'.
      w1 = w1 + 1.
      p_kunnr = knvp-kunn2.
      move-corresponding knvp to p_table1.
      append p_table1.
      clear p_table1.
    endselect.
    if w1 = 1.
      delete p_table1 where parvw = 'WE'.
    else.
      select * from tpaer where pargr = 'WE'.
        if tpaer-pargr = tpaer-parvw.
          move tpaer to p_table2.
          p_table2-parei = 'X'.
          append p_table2.
          clear p_table2.
        endif.
      endselect.
      clear p_kunnr.
    endif.
  endif.
  clear w1.
  if p_py <> space.
    select single * from knvp where kunnr = lm_kunnr
              and vkorg = pm_vkovg  and parvw = 'RG'
              and kunn2 = p_py.
    if sy-subrc <> 0.
      message e292(zz) with p_py.
    endif.
  else.
    select * from knvp
      where kunnr = lm_kunnr and vkorg = pm_vkovg
           and parvw = 'RG'.
      w1 = w1 + 1.
      p_py = knvp-kunn2.
      move-corresponding knvp to p_table1.
      append p_table1.
      clear p_table1.
    endselect.
    loop at p_table1.
      select single * from kna1 where kunnr = p_table1-kunn2.
      if sy-subrc = 0.
        move-corresponding kna1 to p_table1.
        modify p_table1.
      endif.
    endloop.
    if w1 = 1.
      delete p_table1 where parvw = 'RG'.
    else.
      select * from tpaer where pargr = 'RG'.
        if tpaer-pargr = tpaer-parvw.
          move tpaer to p_table2.
          p_table2-parei = 'X'.
          append p_table2.
          clear p_table2.
        endif.
      endselect.
      clear p_py.
    endif.
  endif.
  clear w1.
  if p_bp <> space.
    select single * from knvp where kunnr = lm_kunnr
              and vkorg = pm_vkovg  and parvw = 'RE'
              and kunn2 = p_bp.
    if sy-subrc <> 0.
      message e291(zz) with p_bp.
    endif.
  else.
    select * from knvp
      where kunnr = lm_kunnr and vkorg = pm_vkovg
           and parvw = 'RE'.
      w1 = w1 + 1.
      p_bp = knvp-kunn2.
      move-corresponding knvp to p_table1.
      append p_table1.
      clear p_table1.
    endselect.
    if w1 = 1.
      delete p_table1 where parvw = 'RE'.
    else.
      select * from tpaer where pargr = 'RE'.
        if tpaer-pargr = tpaer-parvw.
          move tpaer to p_table2.
          p_table2-parei = 'X'.
          append p_table2.
          clear p_table2.
        endif.
      endselect.
      clear p_bp.
    endif.
  endif.
  describe table p_table1 lines w1.
  if w1 > 1.
    call function 'SD_PARTNER_SELECTION'
     exporting
       popup_start_column            = 5
       popup_start_line              = 5
*   NO_POPUP_IF_COMPLETE          =
*   FREEATTRIB_TEXT_L             =
*   FREEATTRIB_TEXT_M             =
*   FREEATTRIB_TEXT_S             =
*   FREEATTRIB_TEXT_HEAD          =
       freeattrib_show               =  ''
     tables
       selkz_kupav                   = p_table1
       prtnr_eindeutig_pflicht       = p_table2
     exceptions
       programminternerfehler        = 1
       eing_nicht_konsistent         = 2
       user_hat_abgebrochen          = 3
       others                        = 4.
    if sy-subrc = 0.
      loop at p_table1 where selkz = 'X'.
        if p_table1-parvw = 'WE'.
          p_kunnr = p_table1-kunn2.
        endif.
        if p_table1-parvw = 'RG'.
          p_py = p_table1-kunn2.
        endif.
        if p_table1-parvw = 'RE'.
          p_bp = p_table1-kunn2.
        endif.
      endloop.
    endif.
  endif.
  if lm_bstdk = '00000000'.
    message e999(zz) with '請輸入採購單日期'.
  endif.
  if lm_ketda = '00000000'.
    message e999(zz) with '請輸入請求交貨日期'.
  endif.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21171916/viewspace-665995/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-03-21

  • 博文量
    11
  • 访问量
    13006