SAP: ZSD013 Upload Approved SO Price

这是一个SAP程序,名为ZSDR013,用于从Excel文件中上传批准的销售订单价格。程序包括数据读取、处理和更新价格的功能,并提供了错误处理和ALV表格显示。它还包含了一个更新VK11价格的特定部分。
摘要由CSDN通过智能技术生成

*&---------------------------------------------------------------------*
*& Progarm      :  ZSDR013                        Author : Jimmy Wong
*& Created      :  26 Dec 2012                    App    : SD
*& Title        :  Upload Approved SO Price
*& Description  :  Upload Approved SO Price
*&---------------------------------------------------------------------*
*&  Version       Author      Date        description
*&                Jimmy       26 Dec 2012  the first version
*& M1             Jimmy       25 Jan 2013  add VK11 Price Update
*&  the last update time  2013.02.26 09:00
*&---------------------------------------------------------------------*

report  zsdr013 no standard page heading.

tables:rlgrap,vbap,vbak,konp,konh,a304,a305,a306.

data:begin of it_record occurs 0,
    matnr   like vbap-matnr,
    kunnr   like kna1-kunnr,
    kschl   like konv-kschl,
    kbetr   like konv-kbetr,
    kpein   like konv-kpein,
    waers   like konv-waers ,
    message type length 700,
    end of it_record.
data:begin of it_pr00 occurs 0,                             "M1 add
     matnr    like vbap-matnr,
     vkorg    like vbak-vkorg,
     vtweg    like vbak-vtweg,
     kschl    like konv-kschl,
     kbetr    like konv-kbetr,
     kpein    like konv-kpein,
     waers    like konv-waers ,
     vrkme    like vbap-vrkme,
     mode     type c ,
     msgpr00   type length 255,
     end of it_pr00.
data:it_success like it_record occurs with header line.
data:it_error like it_record occurs with header line.
data: begin of it_vbeln occurs 0,
    vbeln like vbak-vbeln,
    message type length 255,
    end of it_vbeln .
data:begin of it_mara occurs 0,
     matnr like vbap-matnr,
     end of it_mara.
data:begin of it_kna1 occurs 0,
     kunnr like kna1-kunnr,
     end of it_kna1.
data:begin of it_tcurc occurs 0,
     waers like tcurc-waers,
     end of it_tcurc.
data:begin of it_t685 occurs 0,
   kschl  like t685-kschl,
    end of it_t685.
data: begin of it_vbrp_08 occurs 0,
      aubel like vbrp-aubel,
      aupos like vbrp-aupos,
      fkimg like vbrp-fkimg,
      vbeln like vbrp-vbeln,
      posnr like vbrp-posnr,
      sfakn like vbrk-sfakn,
    end of it_vbrp_08.
data: it_vbrp like it_vbrp_08 occurs with header line.
data: it_konv like konv occurs with header line.
data:begin of it_so occurs 0,
     vbeln like vbak-vbeln,
     posnr like vbap-posnr,
     kunnr like vbak-kunnr,
     matnr like vbap-matnr,
     knumv like vbak-knumv,
     kwmeng like vbap-kwmeng,
     kschl like konv-kschl,
     kbetr like konv-kbetr,
     kpein like konv-kpein,
     waers like konv-waers ,
     kschl_o like konv-kschl,
     kbetr_o like konv-kbetr,
     kpein_o like konv-kpein,
     waers_o like konv-waers ,
     fkimg like vbrp-fkimg,
     objnr like vbak-objnr,
     stunr like konv-stunr,
     zaehk like konv-zaehk,
     vkorg like vbak-vkorg,                                 "M1 add
     vtweg like vbak-vtweg,                                 "M1 add
     vrkme like vbap-vrkme,                                 "M1 add
     msgpr00   type length 255,                           "M1 add
     message type length 255,
    end of it_so.
data:itab like it_so occurs with header line.
data: msg   type string,
      lv_tabix like sy-tabix.
constants:c_chk_num like pa0001-ename value '0123456789.,'.
type-pools: slis.
data: fc_hier type slis_t_fieldcat_alv,
      wa_hier type slis_fieldcat_alv .
data: i_headerx like   bapisdh1x ,
      i_cond like bapicond occurs with header line,
      i_condx like bapicondx occurs with header line,
      it_return  like  bapiret2 occurs with header line.
data: lt_gt_data type alsmex_tabline occurs with header line.
*----------------------------------------------------------------------*
*  Parameter & Select-Options                                          *
*----------------------------------------------------------------------*
selection-screen begin of block with frame title text-001.
select-options: s_vbeln for vbap-vbeln,
                s_posnr for vbap-posnr,
                s_auart for vbak-auart,
                s_kunnr for vbak-kunnr.
selection-screen skip 1.
parameters: filename type rlgrap-filename obligatory.
selection-screen skip 1.
parameter :p_vk11 as checkbox .
parameters: p_test as checkbox default 'X'.
selection-screen end of block 1.

*----------------------------------------------------------------------*
*  AT SELECTION-SCREEN
*----------------------------------------------------------------------*
at selection-screen on value-request for filename.
  call function 'WS_FILENAME_GET'
    exporting
      def_path         'C:\'
      mask             ',Excel Files,*.xls,All Files,*.*.'(101)
      mode             'O'
      title            'Select file'(100)
    importing
      filename         filename
    exceptions
      selection_cancel 1
      selection_error  2
      others           3.
  if sy-subrc ne 0.
    "     .
  endif.

*&---------------------------------------------------------------------*
* start of process
*&---------------------------------------------------------------------*
start-of-selection.
  refresh: it_record ,lt_gt_data.
  clear:it_record ,lt_gt_data.

  perform manual_upld.
  if sy-subrc ne 0.
    clear msg.
    concatenate 'Upload Filename ' filename ' is Error' into msg.
    message msg type 'I'.
    exit.
  endif.
  sort lt_gt_data by row col value.
  read table lt_gt_data index 1.
  if sy-subrc ne 0.
    clear : msg.
    concatenate 'Upload File ' filename  ' Is Null!' into msg.
    message msg type 'I'.
    exit.
  endif.

  perform get_it_record.
  if it_record[] is initial.
    clear : msg.
    concatenate 'Upload File ' filename  ' Is Null!' into msg.
    message msg type 'I'.
    exit.
  endif.
  perform get_check_data.
  if it_success[] is initial.
    message i003(zmm).
    exit.
  endif.
  perform get_update_price_so.
  perform get_data.
  if p_test is initial.
*M1 add
    if p_vk11 is initial.
      perform update_vk11_price.
    endif.
*M1 End
    perform process_data.
  endif.
  perform get_result_data.
  perform display_data.


*&---------------------------------------------------------------------*
*&      Form  MANUAL_UPLD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form manual_upld .
  call function 'SAPGUI_PROGRESS_INDICATOR'
    exporting
      text 'Getting Data........'.
  call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    exporting
      filename    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值