当前位置: 首页 > news >正文

SAP ABAP 自定义表数据导入

一:效果展示:
读取 Excel 数据到 SAP 数据库表。

在这里插入图片描述
在这里插入图片描述

二:源码:

*&---------------------------------------------------------------------*
*& Report ZTEST_DRW02
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Report  ZLXL001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*REPORT ZTEST_DRW02.
TABLES:RSRD1.
TYPE-POOLS:ABAP.FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,<DYN_WA>,<DYN_FIELD>.
DATA: DY_TABLE TYPE REF TO DATA,DY_LINE  TYPE REF TO DATA,XFC      TYPE        LVC_S_FCAT,IFC      TYPE        LVC_T_FCAT.DATA : GT_EXCEL_T TYPE         ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,GS_EXCEL_T LIKE LINE OF GT_EXCEL_T.
DATA: GC_FIELDVALUE TYPE FIELDVALUE,  "字符值GC_FLDNAME    TYPE FIELDNAME.   "字段名SELECTION-SCREEN:BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_TBMA TYPE RSRD1-TBMA_VAL,P_FILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK BLK01.AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.PERFORM FRM_GET_FILEPATH.START-OF-SELECTION.CHECK P_TBMA IS NOT INITIAL AND P_TBMA(1) = 'Z'.CHECK P_FILE IS NOT INITIAL.PERFORM PRM_GET_TAB_STRC.PERFORM PRM_GET_EXCEL.PERFORM PRM_UPDATA_TAB.
*&---------------------------------------------------------------------*
*&      Form  FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_GET_FILEPATH .CALL FUNCTION 'WS_FILENAME_GET'EXPORTINGMASK             = ',Excel(*.xls),*.XLS,*.XLSX,'TITLE            = '选择文件'(100)IMPORTINGFILENAME         = P_FILEEXCEPTIONSINV_WINSYS       = 1NO_BATCH         = 2SELECTION_CANCEL = 3SELECTION_ERROR  = 4OTHERS           = 5.IF SY-SUBRC <> 0."      MESSAGE e100(zdev) WITH '选择文件出错!'(007).ENDIF.
ENDFORM.                    " FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
*&      Form  PRM_GET_TAB_STRC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_GET_TAB_STRC .DATA:GT_TABLE TYPE DDFIELDS,GS_TABLE TYPE DFIES.CALL FUNCTION 'CATSXT_GET_DDIC_FIELDINFO'EXPORTINGIM_STRUCTURE_NAME = P_TBMAIMPORTINGEX_DDIC_INFO      = GT_TABLEEXCEPTIONSFAILED            = 1OTHERS            = 2.IF SY-SUBRC <> 0.ENDIF.LOOP AT GT_TABLE INTO GS_TABLE.CLEAR XFC.XFC-FIELDNAME = GS_TABLE-FIELDNAME .XFC-INTTYPE = GS_TABLE-INTTYPE.XFC-INTLEN = GS_TABLE-LENG.XFC-DECIMALS = GS_TABLE-DECIMALS.APPEND XFC TO IFC.ENDLOOP.CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLEEXPORTINGIT_FIELDCATALOG = IFCIMPORTINGEP_TABLE        = DY_TABLE.ASSIGN DY_TABLE->* TO <DYN_TABLE>.CREATE DATA DY_LINE LIKE LINE OF <DYN_TABLE>.ASSIGN DY_LINE->* TO <DYN_WA>.
ENDFORM.                    " PRM_GET_TAB_STRC
*&---------------------------------------------------------------------*
*&      Form  PRM_GET_EXCEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_GET_EXCEL .IF P_FILE IS NOT INITIAL.
*将excel数据传入内表CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'EXPORTINGFILENAME    = P_FILEI_BEGIN_COL = '1'I_BEGIN_ROW = '2'I_END_COL   = '300'I_END_ROW   = '50000'TABLESINTERN      = GT_EXCEL_T.ENDIF.IF GT_EXCEL_T[] IS NOT INITIAL.LOOP AT GT_EXCEL_T INTO GS_EXCEL_T.AT NEW ROW.CLEAR <DYN_WA>.ENDAT.IF <DYN_WA> IS INITIAL.ASSIGN COMPONENT GS_EXCEL_T-COL OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.IF SY-SUBRC = 0.<DYN_FIELD> = SY-MANDT.ENDIF.ENDIF.GS_EXCEL_T-COL = GS_EXCEL_T-COL + 1.GC_FIELDVALUE = GS_EXCEL_T-VALUE.CONDENSE GC_FIELDVALUE.ASSIGN COMPONENT GS_EXCEL_T-COL OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.IF SY-SUBRC = 0.<DYN_FIELD> = GC_FIELDVALUE.ENDIF.AT END OF ROW.APPEND <DYN_WA> TO <DYN_TABLE>.ENDAT.ENDLOOP.ENDIF.
ENDFORM.                    " PRM_GET_EXCEL
*&---------------------------------------------------------------------*
*&      Form  PRM_UPDATA_TAB
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_UPDATA_TAB .MODIFY (P_TBMA) FROM TABLE <DYN_TABLE>.IF SY-SUBRC = 0.MESSAGE '导入成功' TYPE 'S'.ELSE.MESSAGE '导入失败' TYPE 'S' DISPLAY LIKE 'E'.EXIT.ENDIF.
ENDFORM.                    " PRM_UPDATA_TAB
http://www.lryc.cn/news/98503.html

相关文章:

  • 目标检测识别——大恒(DaHeng)相机操作与控制编程
  • 国标GB28181视频监控平台EasyGBS视频无法播放,抓包返回ICMP是什么原因?
  • 如何正确使用npm常用命令
  • 无人机影像配准并发布(共线方程)
  • openGauss学习笔记-23 openGauss 简单数据管理-时间/日期函数和操作符
  • C++OpenCV(7):图像形态学基础操作
  • Appium+python自动化(二十二)- 控件坐标获取(超详解)
  • Tensorflow benchmark 实操指南
  • 【linux】调试工具介绍
  • 2.获取DOM元素
  • flask中redirect、url_for、endpoint介绍
  • 《MySQL》第十二篇 数据类型
  • Python与OpenCV环境中,借助SIFT、单应性、KNN以及Ransac技术进行实现的图像拼接算法详细解析及应用
  • 苍穹外卖Day01项目日志
  • Netty学习(二)
  • ReactRouterv5在BrowserRouter和HashRouter模式下对location.state的支持
  • Aerotech系列文章(3)运动设置命令Motion Setup Commands
  • 线性神经网络——softmax 回归随笔【深度学习】【PyTorch】【d2l】
  • 【Nodejs】Node.js开发环境安装
  • 梅尔频谱(Mel spectrum)简介及Python实现
  • 【数据结构】实验六:队列
  • 【Linux线程】第一章||理解线程概念+创建一个线程(附代码加讲解)
  • Android进阶之微信扫码登录
  • macOS Monterey 12.6.8 (21G725) Boot ISO 原版可引导镜像
  • Unity自定义后处理——用偏导数求图片颜色边缘
  • 本地Git仓库和GitHub仓库SSH传输
  • 【C++11】——右值引用、移动语义
  • 消息服务概述
  • 【Spring Boot】Web开发 — 数据验证
  • 技术分享 | App常见bug解析