SAP ABAP Excel导入数据下载模板示例

本文详细描述了一个SAPABAP程序中关于事件处理的代码片段,涉及类定义(CLASSlcl_events),方法定义(on_user_command)以及与表格(SALV)交互的过程,包括从Excel导入和删除数据到ALV显示的操作。
  • 代码
    <span style="color:#000000"><span style="background-color:#f5f2f0"><code class="language-bash">	TABLES sscrfields.
    	*----------------------------------------------------------------------*
    	*       CLASS lcl_events DEFINITION
    	*----------------------------------------------------------------------*
    	*
    	*----------------------------------------------------------------------*
    	CLASS lcl_events DEFINITION.
    	  PUBLIC SECTION.
    	    METHODS: on_user_command        "定义设置SALV on_user_command属性的方法
    	      FOR EVENT added_function OF cl_salv_events_table
    	      IMPORTING e_salv_function.
    	ENDCLASS.                    "lcl_events DEFINITION
    	
    	*----------------------------------------------------------------------*
    	*       CLASS lcl_events IMPLEMENTATION
    	*----------------------------------------------------------------------*
    	*
    	*----------------------------------------------------------------------*
    	CLASS lcl_events IMPLEMENTATION.
    	  METHOD on_user_command.
    	    PERFORM frm_on_user_command USING e_salv_function.
    	  ENDMETHOD.                    "on_user_command
    	ENDCLASS.                    "lcl_events IMPLEMENTATION
    	TYPES: BEGIN OF ty_out,
    	  icon TYPE char4,
    	  text TYPE char30,
    	  matnr TYPE mara-matnr,
    	  werks TYPE t001w-werks,
    	  END OF ty_out.
    	
    	DATA: go_alv TYPE REF TO cl_salv_table.
    	
    	DATA: gt_out TYPE TABLE OF ty_out,
    	      wa_out TYPE ty_out.
    	
    	TYPE-POOLS: truxs.
    	TABLES: ztmm_sfzs.
    	
    	DATA: gs_text    TYPE smp_dyntxt.
    	
    	SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE l_title1.
    	PARAMETERS: p_import TYPE c RADIOBUTTON GROUP r1 USER-COMMAND uc01 DEFAULT'X',
    	            p_delete TYPE c RADIOBUTTON GROUP r1,
    	            p_query  TYPE c RADIOBUTTON GROUP r1.
    	SELECTION-SCREEN END OF BLOCK b1.
    	
    	SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE l_title2.
    	PARAMETERS : p_file TYPE string OBLIGATORY DEFAULT'C:\TEMPLATE.XLSX' MODIF ID m1.
    	
    	SELECT-OPTIONS: s_matnr FOR ztmm_sfzs-matnr MODIF ID m2,
    	                s_werks FOR ztmm_sfzs-werks MODIF ID m2.
    	
    	SELECTION-SCREEN END OF BLOCK b2.
    	
    	SELECTION-SCREEN FUNCTION KEY 1.
    	SELECTION-SCREEN FUNCTION KEY 2.
    	
    	INITIALIZATION.
    	  PERFORM frm_init_funckey.
    	  l_title1 = '选择功能'.
    	  l_title2 = '选择条件'.
    	
    	
    	AT SELECTION-SCREEN OUTPUT.
    	  CASE 'X'.
    	    WHEN p_import OR p_delete.
    	      IF p_import = 'X'.
    	        gs_text-icon_id   = icon_execute_object.
    	        gs_text-text      = '执行新增数据'.
    	        gs_text-icon_text = '执行新增'.
    	      ELSE.
    	        gs_text-icon_id   = icon_execute_object.
    	        gs_text-text      = '执行删除数据'.
    	        gs_text-icon_text = '执行删除'.
    	      ENDIF.
    	
    	      LOOP AT SCREEN.
    	        IF screen-group1 = 'M2'.
    	          screen-active = 0.
    	          MODIFY SCREEN.
    	        ENDIF.
    	      ENDLOOP.
    	    WHEN p_query.
    	      LOOP AT SCREEN.
    	        IF screen-group1 = 'M1'.
    	          screen-active = 0.
    	          MODIFY SCREEN.
    	        ENDIF.
    	      ENDLOOP.
    	    WHEN OTHERS.
    	  ENDCASE.
    	
    	AT SELECTION-SCREEN.
    	  IF sscrfields-ucomm = 'FC01'.
    	    PERFORM frm_download_template.
    	  ELSEIF sscrfields-ucomm = 'FC02'.
    	    PERFORM frm_skip_old_tcode.
    	  ENDIF.
    	
    	
    	
    	AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    	  PERFORM frm_f4_request.
    	
    	START-OF-SELECTION.
    	  CASE 'X
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值