SAP:ZMM001 Material Info

44 篇文章 0 订阅

Program : ZMMR001

T-Code :  ZMM001

Purpose : 查找替代物料的信息

1、  如果customer customer material没有输入:直接从mara marc获取

否从 mara marc knmt获取

2、根据物料一层一层的查找

 

Input parameter :

1. Customer P/N  

2. SAP material number

3. Old material number

4. Logical group material number

 

Output :

1. Logical group if have

2. Logical group's material

3. Logical group material's customer code, name

4. Related logical group & it's material

5. AVL (Ordering Number + Manufacturer)

6. Related purchase info (with vendor and quoted price)

7. 有权限的用户才能看到price

 

输入界面:

Customer P/N           from        to  

SAP material number     from        to  

Old material number      from        to  

输出界面的column

material

group's material

Cust Material

Customer Code

Customer Name

Vendor

Vendor Name

Contact price

Standard Price

Unit

Ordering Number

Manufacturer

T-Code : ZMM001

 

Material  / Cust Material/Customer code VD51

 

Customer Name : XD03        kna1

Vendor Name   :xk03   lfa1

 

 

 

 

 

 

 

 

 

 

group's material:  CS15

 

 

Ordering Number  / Manufacturer  : MM03

 

 

 

 

 

 

 

vendor :ME01  当MRP=1

 

Standard Price :Mek1   condition Type :PB00

弹出界面选择第四项

 

 

 

 

 

 

 

 

 

 

 

 

Contact Price :Mek1   condition Type :PB00

弹出界面选择第三项

 

*&---------------------------------------------------------------------*
*& Progarm      :  ZMMR001                        Author : Jimmy Wong
*& Created      :  11 Sep 2012                    App    : MM
*& Title        :  Material Info
*& Description  :  Material Info
*&---------------------------------------------------------------------*
*&  Version       Author      Date        description
*&                Jimmy       11 Sep 2012 the first version
*&M1              Jimmy       20 Nov 2012 add field alprf EWAHR
*&M2              Jimmy       30 Nov 2012 Add Selection Plant
*&M3              Jimmy       18 Dec 2012 Add Usage prob. by AltItemGroup
*&M4              Jimmy       09 Jan 2013 Enhance Add Usage prob. by AltItemGroup
*&M5              Jimmy       15 Jan 2013 Enhance delete item no display
*&M6              Jimmy       Enhance standard price JPY
*&  the last update time  2013.02.25 18:00
*&---------------------------------------------------------------------*

report  zmmr001 no standard page heading.
*&---------------------------------------------------------------------*
* database table
*&---------------------------------------------------------------------*
tables : mara,knmt,mast.",stpo,mast,eord,marc,konh,konp,prps,kna1.
*&---------------------------------------------------------------------*
* internal table & variables
*&---------------------------------------------------------------------*
data: begin of itab occurs 0,
      mm_matnr like knmt-matnr,"
      matnr like knmt-matnr,"
      kunnr like knmt-kunnr,
      name1 like kna1-name1,
      kdmat like knmt-kdmat,
      bismt like mara-bismt,
      gp_matnr(700type c,
      model(700type c,
      mfrpn like mara-mfrpn,
      mfrnr like mara-mfrnr,
      lifnr like eord-lifnr,
      name_v like lfa1-name1,
      werks like marc-werks,
      st_price type decimals 5,
      cn_price type decimals 5,
      konwa like konp-konwa,
      alprf like stpo-alprf,
      ewahr like stpo-ewahr,
      alpgr like stpo-alpgr,                                "M3 add
      end of itab.
data: itab1 like itab occurs with header line.
data: begin of it_precent occurs 0,                         "M3 add
      matnr like knmt-matnr,"
      werks like marc-werks,
      alpgr like stpo-alpgr,
      ewahr like stpo-ewahr,
      end of it_precent.
data:begin of it_fmatnr occurs 0,
     matnr like mara-matnr,
     werks like marc-werks,
    end of it_fmatnr.

data:begin of it_gpmatnr occurs 0,
     matnr like mara-matnr,
     gp_matnr like mara-matnr,
     werks like marc-werks,
     stlnr like stpo-stlnr,
     stvkn like stpo-stvkn,
     stlkn like stpo-stlkn,
    end of it_gpmatnr.
data:begin of it_del occurs 0,                              "M5 add
     stlnr like stpo-stlnr,
     stvkn like stpo-stvkn,
     stlkn like stpo-stlkn,
    end of it_del.
data:begin of it_gpmatnr1 occurs 0,
     matnr like mara-matnr,
     gp_matnr like mara-matnr,
     werks like marc-werks,
     flag type c,
    end of it_gpmatnr1.
data: it_gpmatnr2 like it_gpmatnr1 occurs with header line.
data:begin of it_stpo occurs 0,
     werks like marc-werks,
     matnr like mara-matnr,
     gp_matnr like mara-matnr,
     mtart  like mara-mtart,
     alprf like stpo-alprf,
     ewahr like stpo-ewahr,
     alpgr like stpo-alpgr,                                 "M3 add
    end of it_stpo.
data: t_stpox like stpox occurs 10 with header line,        "Add by Lisa wong 02/02/2013
            t_cscmat like cscmat occurs 10 with header line.
data : lv_tabix like sy-tabix.
data : lv_authority type c.
data : price type decimals 5.
data:begin of it_mara occurs 0,
    matnr like mara-matnr,
    bismt like mara-bismt,
    mfrpn like mara-mfrpn,
    mfrnr like mara-mfrnr,
    end of it_mara.
data:begin of it_marc occurs 0,
    matnr like marc-matnr,
    werks like marc-werks,
    end of it_marc.
data:begin of it_lifnr occurs 0,
    matnr like marc-matnr,
    werks like marc-werks,
    lifnr like lfa1-lifnr,
    name1 like lfa1-name1,
    end of it_lifnr.
data:begin of it_knmt occurs 0,
      kunnr like knmt-kunnr,
      matnr like mara-matnr,
      vkorg like knmt-vkorg,
      kdmat like knmt-kdmat ,
      name1 like kna1-name1,
     end of it_knmt.
type-pools: slis.
data: fc_hier type slis_t_fieldcat_alv,
      wa_hier type slis_fieldcat_alv .
data: is_print     type slis_print_alv.
data : w_loop like sy-tabix.
"data: i_grid_title type lvc_title.
*&---------------------------------------------------------------------*
* parameter & select-options
*&---------------------------------------------------------------------*
selection-screen begin of block with frame title text-010.
parameters: p_werks like mast-werks default '8101' obligatory  .
select-options: s_kdmat  for knmt-kdmat.  "custmer p/n"
select-options: s_matnr  for knmt-matnr.  "sap material code"
select-options: s_bismt  for mara-bismt . "old material code"
parameters : p_alpgr as checkbox.
selection-screen end of block 1.
*&---------------------------------------------------------------------*
* start of process
*&---------------------------------------------------------------------*
start-of-selection.
*  authority-check object ''
*      id '' field sy-uname.
*   if sy-subrc <> 0.
*     lv_authority = 'X'.
*   endif..
  perform get_data.
  if it_gpmatnr1[] is initial.
    message i003(zmm).
    exit.
  endif.
  perform process_data.
*M3 add
  if p_alpgr 'X'.
    delete it_precent where ewahr 100 .
    itab1[] itab[].
    clear: itab[],itab.
    loop at itab1.
      read table it_precent with  key matnr itab1-matnr  werks itab1-werks alpgr itab1-alpgr.
      if sy-subrc eq 0.
        itab-mm_matnr itab1-mm_matnr.
        itab-matnr  itab1-matnr.
        itab-mfrpn  itab1-mfrpn.
        itab-mfrnr   itab1-mfrnr.
        itab-alprf  itab1-alprf.
        itab-ewahr  itab1-ewahr.
        itab-alpgr  itab1-alpgr .
        append itab.
        clear itab .
      endif.
    endloop.
    delete adjacent duplicates from itab comparing all fields.
    free:it_precent.
  endif.
*M3 End
  if itab[] is initial.
    message i003(zmm).
    exit.
  endif.
  perform write_data.
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form get_data .
  refresh:  it_gpmatnr1 ,it_fmatnr,itab,itab1.
  call function 'SAPGUI_PROGRESS_INDICATOR'
    exporting
      text 'Getting Data........'.

  if s_kdmat[] is initial.
    select distinct b~matnr c~werks
      into corresponding fields of table it_fmatnr
        from mara  as b
      inner join marc as on b~matnr c~matnr
      where b~matnr in s_matnr
        and b~bismt in s_bismt
        and c~werks p_werks.
  else.
    select distinct a~matnr c~werks
      into corresponding fields of table it_fmatnr
      from knmt as a
      inner join mara  as on a~matnr b~matnr
      inner join marc as on a~matnr c~matnr and a~vkorg c~werks
      where a~vkorg p_werks
        and a~vtweg '10'
        and a~matnr in s_matnr
        and a~kdmat in s_kdmat
        and b~bismt in s_bismt
        and c~werks p_werks.
  endif.
  if not it_fmatnr[] is initial.
    perform get_gp_material_data.
  endif.
endform.                    " GET_DATA
*&---------------------------------------------------------------------*
*&      Form  PROCESS_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form process_data .
  data:wa_matnr(255type c,
       wa_model(255type c,
       mm_matnr like mara-matnr,
       lv_pspnr like prps-pspnr,
       lv_vakey like konh-vakey.
  sort it_gpmatnr1 by werks matnr gp_matnr.
  delete adjacent duplicates from it_gpmatnr1.
  loop at it_gpmatnr1.
    itab1-mm_matnr it_gpmatnr1-matnr.
    itab1-matnr it_gpmatnr1-gp_matnr.
    itab1-werks it_gpmatnr1-werks .
    collect itab1.
  endloop.

  select matnr b~bismt b~mfrpn b~mfrnr
    into corresponding fields of table it_mara
   from mara  as b
    for all entries in itab1
   where b~matnr itab1-mm_matnr.
  sort it_mara by matnr.


  select a~matnr a~werks a~lifnr b~name1
    into corresponding fields of table it_lifnr
      from eord as a inner join lfa1 as on a~lifnr b~lifnr
      for all entries in itab1
      where a~matnr itab1-mm_matnr
        and a~werks itab1-werks
        and a~autet '1'.
  sort it_lifnr by werks matnr .
* Add by Lisa wong 02/02/2013

  loop at itab1.
    w_loop sy-tabix.
    refresh t_stpox.
    clear t_stpox.
    call function 'CS_BOM_EXPL_MAT_V2'
      exporting
        capid                 'PP01'       "BOM Application
        datuv                 sy-datum
        emeng                 1            "Require qty
        mtnrv                 itab1-matnr   "MATERAIL NUMBER
        stlan                 '1'
*       STLAL                 = P_STLAL
*       CUOBJ                 = CUOBJ
        mktls                 'X'
        mehrs                 'X'
        werks                 itab1-werks    "'PDGM'
      tables
        stb                   t_stpox
        matcat                t_cscmat
      exceptions
        alt_not_found         1
        call_invalid          2
        material_not_found    3
        missing_authorization 4
        no_bom_found          5
        no_plant_data         6
        no_suitable_bom_found 7
        others                8.
    loop at t_stpox.
      clear it_stpo.
      it_stpo-gp_matnr t_stpox-idnrk.
      it_stpo-matnr itab1-matnr.
      it_stpo-mtart t_stpox-mtart.
      it_stpo-alprf t_stpox-alprf.
      it_stpo-ewahr t_stpox-ewahr.
      it_stpo-werks t_stpox-werks.
      it_stpo-alpgr t_stpox-alpgr.
      append it_stpo.
    endloop.

    sy-tabix w_loop.
  endloop.


*   Mark by Lisa wong 02/02/2013
*  select distinct a~matnr b~idnrk as gp_matnr c~mtart b~alprf b~ewahr a~werks alpgr
*    into corresponding fields of table it_stpo
*    from mast as a
*      inner join stpo as b on a~stlnr = b~stlnr
*      inner join mara as c on a~matnr = c~matnr
*      for all entries in itab1
*        where b~stlty = 'M'
*          and b~idnrk = itab1-mm_matnr
*          and a~werks = itab1-werks.

  sort it_stpo by werks matnr gp_matnr.

  loop at it_stpo where mtart 'ZVFG'.
    it_gpmatnr2-gp_matnr it_stpo-gp_matnr.
    it_gpmatnr2-matnr it_stpo-matnr.
    it_gpmatnr2-werks it_stpo-werks.
    collect it_gpmatnr2.
    append it_gpmatnr2.
  endloop.
  sort it_gpmatnr2 by werks gp_matnr .

  select a~kunnr a~matnr a~vkorg a~kdmat b~name1
     into corresponding fields of table it_knmt
     from knmt as a inner join kna1 as on a~kunnr b~kunnr
     for all entries in itab1
     where a~vkorg itab1-werks
      and  a~vtweg '10'
      and  a~matnr itab1-mm_matnr.
  sort it_knmt by vkorg matnr  .

  call function 'SAPGUI_PROGRESS_INDICATOR'
    exporting
      text 'Processing Data........'.
  loop at itab1.
    "old material   Ordering Number  Manufacturer'
    read table it_mara with  key matnr itab1-mm_matnr binary search.
    if sy-subrc eq 0.
      itab1-bismt it_mara-bismt.
      itab1-mfrpn it_mara-mfrpn.
      itab1-mfrnr it_mara-mfrnr.
    endif.

    "vendor vendor name
    read table it_lifnr with  key  werks itab1-werks matnr itab1-mm_matnr  binary search.
    if sy-subrc eq 0.
      itab1-lifnr it_lifnr-lifnr.
      itab1-name_v it_lifnr-name1.
    endif.

    "Model
    read table it_gpmatnr2 with  key werks itab1-werks gp_matnr itab1-mm_matnr binary search.
    if sy-subrc eq 0.
      loop at it_gpmatnr2 where gp_matnr itab1-mm_matnr and werks itab1-werks.
        perform tranfer_material   using it_gpmatnr2-matnr
                        changing it_gpmatnr2-matnr.
        if wa_model is initial.
          wa_model  it_gpmatnr2-matnr.
        else.
          concatenate wa_model ',' it_gpmatnr2-matnr into wa_model.
        endif.
      endloop.
    endif.
    "priority / usage prob.
    read table it_stpo with key  werks itab1-werks matnr itab1-matnr gp_matnr itab1-mm_matnr .

    if sy-subrc eq 0.
      itab1-alprf it_stpo-alprf.
      itab1-ewahr it_stpo-ewahr.
      itab1-alpgr it_stpo-alpgr.                          "M3 add
    endif.
*    itab1-gp_matnr = wa_matnr.
    itab1-model =  wa_model.
    itab1-cn_price 0.
    " production lot
    select single pspnr into lv_pspnr
        from prps
        where matnr itab1-mm_matnr.
    if sy-subrc eq and not  itab1-lifnr is initial.
      concatenate lv_pspnr itab1-lifnr itab1-mm_matnr '%' into lv_vakey .
      perform get_price_pb00 using lv_vakey
                    changing itab1-cn_price itab1-konwa.
    endif.

    "standard price
    if not  itab1-lifnr is initial.
      clear:lv_vakey.
      concatenate itab1-lifnr itab1-mm_matnr '%' into lv_vakey .
      perform get_price_pb00 using lv_vakey
                    changing itab1-st_price itab1-konwa.
    endif.

    " customer   cust material
    read table it_knmt with  key vkorg itab1-werks matnr itab1-mm_matnr .
    if sy-subrc eq 0.
      loop at it_knmt where matnr itab1-mm_matnr and vkorg itab1-werks.
        itab1-kunnr it_knmt-kunnr.
        itab1-kdmat it_knmt-kdmat.
        itab1-name1 it_knmt-name1.
        move-corresponding itab1 to itab.
        append itab.
      endloop.
    else.
      move-corresponding itab1 to itab.
      append itab.
    endif.
                                                            "M3 add
    if itab1-alpgr is not initial.
      move-corresponding itab1 to it_precent.
      collect it_precent.
    endif.
                                                            "M3 End
    clear: itab,wa_matnr,lv_pspnr,wa_model,it_precent.
  endloop.
  clear:itab1,itab1[].
  free:it_knmt,it_stpo,it_gpmatnr2,it_gpmatnr1,it_gpmatnr,it_lifnr,it_marc,it_mara,it_fmatnr.
endform.                    " PROCESS_DATA
*&---------------------------------------------------------------------*
*&      Form  GET_PRICE_PB00
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LV_VAKEY  text
*      <--P_ITAB_CN_PRICE  text
*----------------------------------------------------------------------*
form get_price_pb00  using    p_vakey like konh-vakey
                     changing p_price like price
                              p_konwa like konp-konwa .

  data: lv_kbetr like konp-kbetr,
     lv_kpein like konp-kpein.

  clear:p_price,p_konwa.
  select single b~kbetr b~kpein b~konwa into (lv_kbetr,lv_kpein ,p_konwa)
           from konh as a
           inner join konp as on a~knumh b~knumh
           where b~kschl 'PB00'
             and a~vakey like p_vakey .
  if sy-subrc eq and lv_kpein ne 0.
    perform expand_amount using  itab1-konwa changing lv_kbetr.  "M6 add
    p_price lv_kbetr / lv_kpein .
  endif.
endform.                    " GET_PRICE_PB00
*&---------------------------------------------------------------------*
*&      Form  DELETE_PRE_ZREO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_ITAB_LIFNR  text
*      <--P_ITAB_LIFNR  text
*----------------------------------------------------------------------*
form  tranfer_material using    p_old
                       changing p_new  .

  call function 'CONVERSION_EXIT_MATN1_OUTPUT'
    exporting
      input  p_old
    importing
      output p_new.

endform.                    " DELETE_PRE_ZREO
*&---------------------------------------------------------------------*
*&      Form  GET_GP_MATERIAL_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form get_gp_material_data .

  "get material   group material
  refresh:it_gpmatnr,it_del.
  clear: it_gpmatnr,it_del.
  select distinct a~matnr as gp_matnr c~matnr a~werks b~stlnr   b~stvkn b~stlkn
    into corresponding fields of table it_gpmatnr
    from mast as a
      inner join stpo as on a~stlnr b~stlnr
      inner join  mara as on b~idnrk c~matnr
      inner join  mara as on a~matnr d~matnr
      for all entries in it_fmatnr
      where b~stlty 'M'
        and b~idnrk it_fmatnr-matnr
        and d~mtart 'ZLGP'
        and a~werks it_fmatnr-werks.

  perform get_all_data using 'H'.

  "Find material by  group material
  if not it_fmatnr[] is initial.
    refresh:it_gpmatnr,it_del.
    clear: it_gpmatnr,it_del.
    select distinct a~matnr as gp_matnr b~idnrk as matnr a~werks b~stlnr   b~stvkn b~stlkn
      into corresponding fields of table it_gpmatnr
      from mast as a
        inner join stpo as on a~stlnr b~stlnr
        for all entries in  it_fmatnr
        where b~stlty 'M'
          and a~matnr it_fmatnr-matnr
          and a~werks it_fmatnr-werks.

    perform get_all_data using 'D'.
  endif.
  "Find material is exists by  group material
  if not it_fmatnr[] is initial.
    perform get_gp_material_data.
  endif.

endform.                    " GET_GP_MATERIAL_DATA
*&---------------------------------------------------------------------*
*&      Form  WRITE_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form write_data .
  define alv_field.
    clear:wa_hier.
    wa_hier-col_pos &1.
    wa_hier-fieldname &2.
    wa_hier-seltext_m &3.
    wa_hier-seltext_l &4.
    wa_hier-outputlen &5.
    wa_hier-just &6.
    wa_hier-do_sum &7.
    wa_hier-ref_tabname &8 .
    wa_hier-ref_fieldname &9 .
    append wa_hier to fc_hier.
  end-of-definition.

  refresh: fc_hier.
  alv_field '1' 'MM_MATNR' '' 'SAP Material Code' '18' 'L' '' 'MARA' 'MATNR'.
  alv_field '2' 'MATNR' '' 'Logical Group' '18' 'L' '' 'MARA' 'MATNR'.
  if p_alpgr is initial.                                    "M3 Add
    alv_field '3' 'MODEL' '' 'Model' '20' 'L' '' '' ''.
    alv_field '4' 'KDMAT' '' 'Cust Material' '20' 'L' '' '' ''.
    alv_field '5' 'KUNNR' '' 'Customer Code' '10' 'L' '' 'KNA1' 'KUNNR'.
    alv_field '6' 'NAME1' '' 'Customer Name' '20' 'L' '' '' ''.
    alv_field '7' 'LIFNR' '' 'Vendor' '10' 'L' '' 'LFA1' 'LIFNR'.
    alv_field '8' 'NAME_V' '' 'Vendor name' '20' 'L' '' '' ''.
    if lv_authority is initial.
      alv_field '9' 'ST_PRICE' '' 'Standard Price' '' 'R' '' '' ''.
      alv_field '10' 'CN_PRICE' '' 'Contract Price' '' 'R' '' '' ''.
      alv_field '11' 'KONWA' 'Unit' '' '5' 'L' '' '' ''.
    endif.
  endif.
  alv_field '12' 'MFRPN' '' 'Ordering Number' '15' 'L' '' '' ''.
  alv_field '13' 'MFRNR' '' 'Manufacturer' '15' 'L' '' '' ''.
  alv_field '14' 'ALPRF' '' 'Priority' '' 'R' '' '' ''.
  alv_field '15' 'EWAHR' '' 'Usage Prob' '' 'R' '' '' ''.
  alv_field '16' 'ALPGR' '' 'AltItemGroup' '' 'R' '' '' ''.
  "I_GRID_TITLE = SY-TITLE.

  is_print-no_print_listinfos 'X'.

  data:  g_repid  like  sy-repid.
  data:  g_save type c.
  data:  gs_sort   type slis_sortinfo_alv,
         gt_sort   type slis_t_sortinfo_alv.

  clear gt_sort.
  gs_sort-fieldname 'MM_MATNR'.
  gs_sort-down      'X'.
  append gs_sort to gt_sort.

  g_repid  =  sy-repid.
  g_save  =  'A'.

  sort itab by matnr mm_matnr.
  call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
      i_callback_program g_repid
      it_fieldcat        fc_hier[]
      is_print           is_print
      i_save             g_save
                                                                                                                                                                                                       "      it_sort                        = gt_sort  "sort
    tables
      t_outtab           itab[]
    exceptions
      program_error      1
      others             2.
  if sy-subrc ne 0.
    "     message
  endif.
endform.                    " WRITE_DATA
*&---------------------------------------------------------------------*
*&      Form  GET_ALL_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form get_all_data using p_type.
  sort it_gpmatnr1 by matnr gp_matnr werks .
  sort it_gpmatnr by stlnr stvkn stlkn matnr gp_matnr werks .
  if it_gpmatnr[] is not initial.
    select distinct stlnr  stvkn stlkn
      into corresponding fields of table it_del
      from  stas
        for all entries in it_gpmatnr
        where stlty 'M'
          and stlnr it_gpmatnr-stlnr
          and stvkn it_gpmatnr-stvkn
          and stlkn it_gpmatnr-stlkn
          and lkenz 'X'
          and aennr ne space.
  endif.
  sort it_del  by stlnr stvkn stlkn .
  refresh it_fmatnr.
  clear it_fmatnr.

  loop at it_gpmatnr.
    read table it_del with key stlnr it_gpmatnr-stlnr
                        stvkn it_gpmatnr-stvkn
                        stlkn it_gpmatnr-stlkn binary search . "M5 add
    if sy-subrc ne 0.
      read table it_gpmatnr1 with key matnr it_gpmatnr-matnr
                              gp_matnr it_gpmatnr-gp_matnr
                              werks it_gpmatnr-werks binary search.
      if sy-subrc ne 0.
        move-corresponding it_gpmatnr to it_gpmatnr1.
        it_gpmatnr1-flag 'X'.
        collect it_gpmatnr1.

        if p_type 'H'.
          it_fmatnr-matnr it_gpmatnr-gp_matnr.
        elseif p_type 'D'.
          it_fmatnr-matnr it_gpmatnr-matnr.
        endif.

        it_fmatnr-werks it_gpmatnr-werks .
        collect it_fmatnr.
      endif.
    endif.
  endloop.
endform.                    " GET_ALL_DATA
*M6 add
*&---------------------------------------------------------------------*
*&      Form  EXPAND_AMOUNT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_ITAB_WAERS  text
*      <--P_ITAB_NETPR  text
*----------------------------------------------------------------------*
form expand_amount  using  pi_waerk
                     changing pe_netwr.
  data : lv_netwr type bapicurr-bapicurr.

  check pi_waerk <> 'HKD'.
  check pi_waerk <> 'USD'.
  check pi_waerk <> 'EUR'.
  check pi_waerk <> 'CNY'.

  call function 'BAPI_CURRENCY_CONV_TO_EXTERNAL'
    exporting
      currency        pi_waerk
      amount_internal pe_netwr
    importing
      amount_external lv_netwr.

  pe_netwr =  lv_netwr.
endform.                    " EXPAND_AMOUNT
*M6 end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的信息,我们可以选择一个适当的限流电阻来保护ZMM稳压管。首先,我们需要确定稳压管的稳定电压为5.1V。然后,我们需要考虑负载电流的最大值,这里是10mA。根据引用\[3\],稳压管的额定电流范围为2mA-20mA。 为了计算限流电阻的取值,我们可以使用欧姆定律,即电阻值等于电压差除以电流。在这种情况下,我们需要计算稳压管的工作电压差,即输入电压减去稳定电压。假设输入电压为9V,稳定电压为5.1V,那么工作电压差为3.9V。 根据欧姆定律,限流电阻的取值可以计算为3.9V除以负载电流的最大值10mA,即390Ω。因此,我们可以选择一个最接近的电阻值,比如390Ω或者最接近的标准电阻值。 所以,ZMM稳压管的限流电阻取值可以选择390Ω。 #### 引用[.reference_title] - *1* [# 二极管的种类(1)-稳压二极管的参数与应用](https://blog.csdn.net/qq_40223624/article/details/123340210)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [稳压二极管稳压电路如何设计](https://blog.csdn.net/weixin_42693097/article/details/127912535)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值