SAP MM物料主数据批导功能

一、功能逻辑

二、功能界面

三、功能代码

*&---------------------------------------------------------------------*
*& Report ZRPFICO_0007
*&---------------------------------------------------------------------*
*& 程序名:ZRPFICO_0007

*&---------------------------------------------------------------------*
REPORT zrpmm_0002 MESSAGE-ID zmm01.

************************************************************************
* 表参考                                       *
************************************************************************
TABLES:sscrfields.
************************************************************************
* 类型定义                                           *
************************************************************************
TYPES:BEGIN OF ty_sheet,"用于多sheet导入
        name(50) TYPE c,
      END OF ty_sheet.
TYPES:BEGIN OF ty_data,
        col1(18),   "在多个表导入的情况下第一个字段共用
        col2(60),
        col3(200),
        col4(200),
        col5(200),
        col6(60),
        col7(60),
        col8(60),
        col9(60),
        col10(60),
        col11(60),
        col12(60),
        col13(60),
        col14(60),
        col15(60),
        col16(60),
        col17(60),
        col18(60),
        col19(60),
        col20(60),
        col21(60),
        col22(60),
        col23(60),
        col24(60),
        col25(60),
        col26(60),
        col27(60),
        col28(60),
        col29(60),
        col30(60),
        col31(60),
        col32(60),
        col33(60),
        col34(60),
        icon      TYPE icon_d,
        message   TYPE char200,
      END OF ty_data.
TYPES:BEGIN OF ty_txz,
        class LIKE klah-class, "分类
        atnam LIKE cabn-atnam, "特征
        atfor LIKE cabn-atfor, "特征值类型
      END OF ty_txz.
************************************************************************
* 内表工作区定义                                    *
************************************************************************
DATA:gt_sheet  TYPE TABLE OF ty_sheet,
     gt_data   TYPE TABLE OF ty_data,
     gt_data1  TYPE TABLE OF ty_data,
     gt_data2  TYPE TABLE OF ty_data,
     gt_data3  TYPE TABLE OF ty_data,
     gt_data4  TYPE TABLE OF ty_data,
     gt_data5  TYPE TABLE OF ty_data,
     gt_data6  TYPE TABLE OF ty_data,
     gt_data7  TYPE TABLE OF ty_data,
     gt_data8  TYPE TABLE OF ty_data,
     gt_data9  TYPE TABLE OF ty_data,
     gt_data10 TYPE TABLE OF ty_data,
     gt_data11 TYPE TABLE OF ty_data,
     gw_data   TYPE   ty_data.
DATA:gt_excel01 TYPE TABLE OF zalsmex_tabline,
     gt_excel02 TYPE TABLE OF zalsmex_tabline,
     gt_excel03 TYPE TABLE OF zalsmex_tabline,
     gt_excel04 TYPE TABLE OF zalsmex_tabline.


DATA:gt_ztmm0001 TYPE TABLE OF ztmm0001,
     gs_ztmm0001 TYPE ztmm0001.
***********
*常量定义                                  *
************************************************************************

***********
*BAPI 变量定义                                  *
************************************************************************
DATA:gs_head   TYPE bapimathead,
     gs_mara   TYPE bapi_mara,
     gs_marax  TYPE bapi_marax,
     gs_marc   TYPE bapi_marc,
     gs_marcx  TYPE bapi_marcx,
     gs_mard   TYPE bapi_mard,
     gs_mardx  TYPE bapi_mardx,
     gs_mbew   TYPE bapi_mbew,
     gs_mbewx  TYPE bapi_mbewx,
     gs_mvke   TYPE bapi_mvke,
     gs_mvkex  TYPE bapi_mvkex,
     gt_makt   TYPE TABLE OF bapi_makt WITH HEADER LINE,
     gt_marm   TYPE TABLE OF bapi_marm WITH HEADER LINE,
     gt_marmx  TYPE TABLE OF bapi_marmx WITH HEADER LINE,
     gs_return TYPE  bapi_matreturn2,
     gt_mlan   TYPE TABLE OF bapi_mlan WITH HEADER LINE.

DATA:gt_tline TYPE TABLE OF tline WITH HEADER LINE,
     gs_text  TYPE thead.
DATA:gv_classtype   LIKE  bapi1003_key-classtype,   "类型
     gv_classnum    LIKE  bapi1003_key-classnum,    "类名
     gv_objecttable LIKE  bapi1003_key-objecttable,
     gv_object_long LIKE  bapi1003_key-object_long.

DATA:gt_val_num  LIKE TABLE OF bapi1003_alloc_values_num  WITH HEADER LINE,
     gt_val_char LIKE TABLE OF bapi1003_alloc_values_char WITH HEADER LINE,
     gt_val_curr LIKE TABLE OF bapi1003_alloc_values_curr WITH HEADER LINE,
     gt_return   LIKE TABLE OF bapiret2 WITH HEADER LINE.
DATA:gt_txz TYPE TABLE OF ty_txz.
************************************************************************
* ALV 相关变量定义                                   *
************************************************************************
DATA:gt_fieldcat  TYPE lvc_t_fcat.
DATA:gw_fieldcat  LIKE LINE OF gt_fieldcat.
DATA:gw_layout TYPE  lvc_s_layo.
DATA:gt_sort TYPE lvc_t_sort WITH HEADER LINE.
DATA:go_grid TYPE REF TO cl_gui_alv_grid, ""object
     gs_stbl TYPE lvc_s_stbl. ""稳定刷新

************************************************************************
* 宏定义
************************************************************************
DEFINE def_fieldcat.

  CLEAR gw_fieldcat.
  gw_fieldcat-fieldname = &1.
  gw_fieldcat-ref_table = &2.
  gw_fieldcat-ref_field = &3.
  gw_fieldcat-reptext = &4.
  gw_fieldcat-coltext = &4.
  gw_fieldcat-scrtext_l = &4.
  gw_fieldcat-scrtext_m = &4.
  gw_fieldcat-scrtext_s = &4.
  gw_fieldcat-no_zero = &5.
  gw_fieldcat-edit = &6.
  gw_fieldcat-outputlen = &7.
  gw_fieldcat-checkbox = &8.
  gw_fieldcat-do_sum = &9.

  APPEND gw_fieldcat TO gt_fieldcat.

END-OF-DEFINITION.

***********************************************************************
* 选择屏幕定义*
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE TEXT-t01.
  PARAMETERS p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK a.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE TEXT-t02.
  PARAMETERS:r_1 RADIOBUTTON GROUP grp1 DEFAULT 'X',
             r_2 RADIOBUTTON GROUP grp1,
             r_3 RADIOBUTTON GROUP grp1,
             r_4 RADIOBUTTON GROUP grp1,
             r_5 RADIOBUTTON GROUP grp1,
             r_6 RADIOBUTTON GROUP grp1,
             r_7 RADIOBUTTON GROUP grp1,
             r_8 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN END OF BLOCK b.

SELECTION-SCREEN FUNCTION KEY 1.

***********************************************************************
* 在这里可以初始一些数据*
************************************************************************
INITIALIZATION.
  PERFORM frm_init_data.

***********************************************************************
* 在这里可以在选择屏幕PBO时做一些处理*
************************************************************************
AT SELECTION-SCREEN OUTPUT.
  PERFORM frm_screen_pbo.

AT SELECTION-SCREEN.
  CASE sscrfields-ucomm.
*    WHEN 'FC01'.
*      PERFORM FRM_DOWNLOAD_TEMP_1.
    WHEN 'FC01'.
      PERFORM frm_download_temp.
    WHEN OTHERS.
  ENDCASE.

***********************************************************************
* F4帮助
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.  "F4帮助
  PERFORM frm_get_path."获取文件路径
***********************************************************************
* 开始数据获取
************************************************************************
START-OF-SELECTION.
  PERFORM frm_check_auth.
  PERFORM frm_upload_file USING p_file.
  PERFORM frm_check_data  .

END-OF-SELECTION.

***********************************************************************
* 显示ALV
************************************************************************
  PERFORM frm_alv_data.""展示

*&---------------------------------------------------------------------*
*& 在这里可以初始一些数据
*&---------------------------------------------------------------------*
FORM frm_init_data .

  "刷新参数赋值
  gs_stbl-row = 'X'.
  gs_stbl-col = 'X'.

  DATA: ls_functxt TYPE smp_dyntxt.
  ls_functxt-icon_id   = icon_export.
  ls_functxt-quickinfo = '下载模板'.
  ls_functxt-icon_text = '下载模板'.
  sscrfields-functxt_01 = ls_functxt.
  sscrfields-ucomm = 'FC01'.
  "批导物料分类属性时多sheet导入
  gt_sheet[] = VALUE #(
              ( name = '成品'   )
              ( name = '覆铜板' )
              ( name = '半固化片' )
              ( name = '铜箔'   )
              ( name = '干膜'   )
              ( name = '油墨' )
              ( name = '金属' )
              ( name = '刀具'   )
              ( name = '化学药品'   )
              ( name = '废品' ) ).
ENDFORM.

*&---------------------------------------------------------------------*
*& 在这里可以在选择屏幕PBO时做一些处理
*&---------------------------------------------------------------------*
FORM frm_screen_pbo .

ENDFORM.

*&---------------------------------------------------------------------*
*& 检查屏幕数据和权限
*&---------------------------------------------------------------------*
FORM frm_check_screen .


ENDFORM.

*&---------------------------------------------------------------------*
*& 获取数据
*&---------------------------------------------------------------------*
FORM frm_get_data .

ENDFORM.

*&---------------------------------------------------------------------*
*& 处理数据
*&---------------------------------------------------------------------*
FORM frm_processing_data .

ENDFORM.

*&---------------------------------------------------------------------*
*& Form frm_alv_data
*&---------------------------------------------------------------------*
*& 展示
*&---------------------------------------------------------------------*
FORM frm_alv_data .

  PERFORM frm_fill_fieldcat.""填充字段目錄
  PERFORM frm_set_layout.""設置佈局參數
  CASE abap_true.
    WHEN r_1 OR r_3 OR r_4 OR r_5 OR r_6 OR r_7 OR r_8.
      PERFORM frm_alv_create TABLES gt_data.""展示ALV
    WHEN r_2.

      PERFORM frm_alv_create TABLES gt_data11.""展示ALV
    WHEN OTHERS.
  ENDCASE.


ENDFORM.

*&---------------------------------------------------------------------*
*& 填充字段目錄,设置fieldcat属性
*&---------------------------------------------------------------------*
FORM frm_fill_fieldcat .
  CASE abap_true.
    WHEN r_1.
      def_fieldcat: 'ICON'       '' ''  '指示灯'  '' '' '' '' '',
                    'MESSAGE'    '' ''  '异常消息' '' '' '' '' '',
                    'COL1'       '' ''  TEXT-001  '' '' '' '' '',
                    'COL2'       '' ''  TEXT-002  '' '' '' '' '',
                    'COL3'       '' ''  TEXT-003  '' '' '' '' '',
                    'COL4'       '' ''  TEXT-004  '' '' '' '' '',
                    'COL5'       '' ''  TEXT-005  '' '' '' '' '',
                    'COL6'       '' ''  TEXT-006  '' '' '' '' '',
                    'COL7'       '' ''  TEXT-007  '' '' '' '' '',
                    'COL8'       '' ''  TEXT-008  '' '' '' '' '',
                    'COL9'       '' ''  TEXT-009  '' '' '' '' '',
                    'COL10'      '' ''  TEXT-010  '' '' '' '' '',
                    'COL11'      '' ''  TEXT-011  '' '' '' '' '',
                    'COL12'      '' ''  TEXT-012  '' '' '' '' '',
                    'COL13'      '' ''  TEXT-013  '' '' '' '' '',
                    'COL14'      '' ''  TEXT-014  '' '' '' '' '',
                    'COL15'      '' ''  TEXT-015  '' '' '' '' '',
                    'COL16'      '' ''  TEXT-016  '' '' '' '' '',
                    'COL17'      '' ''  TEXT-017  '' '' '' '' '',
                    'COL18'      '' ''  TEXT-018  '' '' '' '' '',
                    'COL19'      '' ''  TEXT-096  '' '' '' '' ''.
    WHEN r_2.
      def_fieldcat: 'ICON'       '' ''  '指示灯'  '' '' '' '' '',
                   'MESSAGE'    '' ''  '异常消息' '' '' '' '' '',
                   'COL1'       '' ''  TEXT-001  '' '' '' '' '',
                   'COL2'       '' ''  TEXT-002  '' '' '' '' '',
                   'COL4'       '' ''  TEXT-071  '' '' '' '' '',
                   'COL5'       '' ''  TEXT-072  '' '' '' '' '',
                   'COL6'       '' ''  TEXT-073  '' '' '' '' '',
                   'COL7'       '' ''  TEXT-074  '' '' '' '' '',
                   'COL8'       '' ''  TEXT-075  '' '' '' '' '',
                   'COL9'       '' ''  TEXT-076  '' '' '' '' '',
                   'COL10'      '' ''  TEXT-077  '' '' '' '' '',
                   'COL11'      '' ''  TEXT-078  '' '' '' '' '',
                   'COL12'      '' ''  TEXT-079  '' '' '' '' '',
                   'COL13'      '' ''  TEXT-080  '' '' '' '' '',
                   'COL14'      '' ''  TEXT-081  '' '' '' '' '',
                   'COL15'      '' ''  TEXT-082  '' '' '' '' '',
                   'COL16'      '' ''  TEXT-083  '' '' '' '' '',
                   'COL17'      '' ''  TEXT-084  '' '' '' '' '',
                   'COL18'      '' ''  TEXT-085  '' '' '' '' '',
                   'COL19'      '' ''  TEXT-086  '' '' '' '' '',
                   'COL20'      '' ''  TEXT-087  '' '' '' '' '',
                   'COL21'      '' ''  TEXT-088  '' '' '' '' '',
                   'COL22'      '' ''  TEXT-089  '' '' '' '' '',
                   'COL23'      '' ''  TEXT-090  '' '' '' '' '',
                   'COL24'      '' ''  TEXT-091  '' '' '' '' '',
                   'COL25'      '' ''  TEXT-092  '' '' '' '' '',
                   'COL26'      '' ''  TEXT-093  '' '' '' '' '',
                   'COL27'      '' ''  TEXT-094  '' '' '' '' '' ,
                   'COL28'      '' ''  TEXT-100  '' '' '' '' '',
                   'COL29'      '' ''  TEXT-101  '' '' '' '' '',
                   'COL30'      '' ''  TEXT-102  '' '' '' '' '',
                   'COL31'      '' ''  TEXT-103  '' '' '' '' '',
                   'COL32'      '' ''  TEXT-104  '' '' '' '' '',
                   'COL33'      '' ''  TEXT-105  '' '' '' '' '',
                   'COL34'      '' ''  TEXT-106  '' '' '' '' '' .

    WHEN r_3.
      def_fieldcat: 'ICON'       '' ''  '指示灯'  '' '' '' '' '',
                   'MESSAGE'    '' ''  '异常消息' '' '' '' '' '',
                   'COL1'       '' ''  TEXT-001  '' '' '' '' '',
                   'COL2'       '' ''  TEXT-002  '' '' '' '' '',
                   'COL3'       '' ''  TEXT-030  '' '' '' '' '',
                   'COL4'       '' ''  TEXT-031  '' '' '' '' '',
                   'COL5'       '' ''  TEXT-032  '' '' '' '' '',
                   'COL6'       '' ''  TEXT-033  '' '' '' '' '',
                   'COL7'       '' ''  TEXT-034  '' '' '' '' '',
                   'COL8'       '' ''  TEXT-035  '' '' '' '' ''.

    WHEN r_4.
      def_fieldcat: 'ICON'       '' ''  '指示灯'  '' '' '' '' '',
                   'MESSAGE'    '' ''  '异常消息' '' '' '' '' '',
                   'COL1'       '' ''  TEXT-001  '' '' '' '' '',
                   'COL2'       '' ''  TEXT-002  '' '' '' '' '',
                   'COL3'       '' ''  TEXT-019  '' '' '' '' '',
                   'COL4'       '' ''  TEXT-029  '' '' '' '' '',
                   'COL5'       '' ''  TEXT-020  '' '' '' '' '',
                   'COL6'       '' ''  TEXT-008  '' '' '' '' '',
                   'COL7'       '' ''  TEXT-021  '' '' '' '' '',
                   'COL8'       '' ''  TEXT-022  '' '' '' '' '',
                   'COL9'       '' ''  TEXT-023  '' '' '' '' '',
                   'COL10'       '' ''  TEXT-024  '' '' '' '' '',
                   'COL11'       '' ''  TEXT-069  '' '' '' '' ''.
    WHEN r_5.
      def_fieldcat: 'ICON'       '' ''  '指示灯'  '' '' '' '' '',
                   'MESSAGE'    '' ''  '异常消息' '' '' '' '' '',
                   'COL1'       '' ''  TEXT-001  '' '' '' '' '',
                   'COL2'       '' ''  TEXT-002  '' '' '' '' '',
                   'COL3'       '' ''  TEXT-019  '' '' '' '' '',
                   'COL4'       '' ''  TEXT-036  '' '' '' '' '',
                   'COL5'       '' ''  TEXT-037  '' '' '' '' '',
                   'COL6'       '' ''  TEXT-038  '' '' '' '' '',
                   'COL7'       '' ''  TEXT-039  '' '' '' '' '',
                   'COL8'       '' ''  TEXT-097 '' '' '' '' '',
                   'COL9'       '' ''  TEXT-098 '' '' '' '' '',
                   'COL10'      '' ''  TEXT-040  '' '' '' '' '',
                   'COL11'      '' ''  TEXT-041  '' '' '' '' '',
                   'COL12'      '' ''  TEXT-042  '' '' '' '' '',
                   'COL13'      '' ''  TEXT-043  '' '' '' '' '',
                   'COL14'      '' ''  TEXT-044  '' '' '' '' '',
                   'COL15'      '' ''  TEXT-045  '' '' '' '' '',
                   'COL16'      '' ''  TEXT-046  '' '' '' '' '',
                   'COL17'      '' ''  TEXT-047  '' '' '' '' '',
                   'COL18'      '' ''  TEXT-048  '' '' '' '' '',
                   'COL19'      '' ''  TEXT-049  '' '' '' '' '',
                   'COL20'      '' ''  TEXT-050  '' '' '' '' '',
                   'COL21'      '' ''  TEXT-051  '' '' '' '' '',
                   'COL22'      '' ''  TEXT-052  '' '' '' '' '',
                   'COL23'      '' ''  TEXT-053  '' '' '' '' '',
                   'COL24'      '' ''  TEXT-025  '' '' '' '' '',
                   'COL25'      '' ''  TEXT-026  '' '' '' '' '',
                   'COL26'      '' ''  TEXT-027  '' '' '' '' '',
                   'COL27'      '' ''  TEXT-028  '' '' '' '' '',
                   'COL28'      '' ''  TEXT-099  '' '' '' '' ''.

    WHEN r_6.
      def_fieldcat: 'ICON'       '' ''  '指示灯'  '' '' '' '' '',
                   'MESSAGE'    '' ''  '异常消息' '' '' '' '' '',
                   'COL1'       '' ''  TEXT-001  '' '' '' '' '',
                   'COL2'       '' ''  TEXT-002  '' '' '' '' '',
                   'COL3'       '' ''  TEXT-019  '' '' '' '' '',
                   'COL4'       '' ''  TEXT-054  '' '' '' '' '',
                   'COL5'       '' ''  TEXT-055  '' '' '' '' '',
                   'COL6'       '' ''  TEXT-056  '' '' '' '' '',
                   'COL7'       '' ''  TEXT-057  '' '' '' '' '',
                   'COL8'       '' ''  TEXT-058  '' '' '' '' '',
                   'COL9'       '' ''  TEXT-059  '' '' '' '' '',
                   'COL10'       '' ''  TEXT-069  '' '' '' '' ''.
    WHEN r_7.
      def_fieldcat: 'ICON'   &n

内容概要:本研究聚焦于“绿电直连型电氢氨园区”的优化运行,提出一种直接利用绿色电力驱动制氢与合成氨的综合能源系统架构。通过构建包含风/光发电、电解水制氢、氢气储存、合成氨反应及电能直供等关键环节的系统模型,研究旨在实现能源的高效转化与梯级利用,降低对外部电网依赖,提升园区能源自洽率与经济性。研究综合运用Matlab与Python工具进行建模与仿真,结合实际气象与负荷数据,对系统在不同工况下的运行策略、能量流动、设备容量配置及经济技术指标进行深入分析与优化,并形成完整的Word论文文档,为新型零碳产业园区的规划与建设提供了理论依据和技术支撑。; 适合人群:具备新能源、电力系统、化工或综合能源系统背景的科研人员,以及从事园区规划、能源管理、低碳技术开发的工程技术人员。; 使用场景及目标:①研究绿电如何高效耦合至化工生产流程,实现“电-氢-氨”多能互补;②掌握综合能源系统(IES)的建模、仿真与优化方法,特别是多时间尺度下的运行调度策略;③为撰写高水平学术论文或完成相关课题研究积累数据、代码与写作模板。; 阅读建议:此资源包含代码、数据和完整论文,建议使用者先通读Word论文以理解整体框架与理论基础,再结合Matlab/Python代码进行复现与调试,最后可基于提供的数据和模型进行二次开发,以深化对绿电综合利用技术的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值