Get_kunnr

  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博客 ” ,链接:http://blog.itpub.net/21171916/viewspace-665995/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21171916/viewspace-665995/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值