利用信息记录文本保持合同信息

业务要求用信息记录维护采购合同,同时要记录采购和财务复核合同的信息。下面程序就是利用采购信息记录的文本(居于采购组织的文本)实现。

后台配置:

源程序:


*&---------------------------------------------------------------------*
*& Report ZMM_INFO_RECORD_EDIT
*&---------------------------------------------------------------------*
*& 编辑采购信息记录文本
*& 功能:1. ALV显示 2. 复选框选择 3. 保存按钮 4. TXZ01可编辑+下拉选择
*&       5. 显示EINA和EINE长文本
*&---------------------------------------------------------------------*
REPORT zmmr_013.

TABLES: eina, eine, makt.

TYPES: BEGIN OF ty_data,
         sel      TYPE c LENGTH 1,           " 选择复选框
         infnr    TYPE eina-infnr,          " 采购信息记录
         matnr    TYPE eina-matnr,          " 物料
         ekorg    TYPE eine-ekorg,          " 采购组织
         lifnr    TYPE eina-lifnr,          " 供应商
         txz01    TYPE eina-txz01,          " 信息记录文本(可编辑)
         maktx    TYPE makt-maktx,          " 物料描述
         esokz    TYPE eine-esokz,          " 信息记录类别
         ekgrp    TYPE eine-ekgrp,          " 采购组
         aplfz    TYPE eine-aplfz,          " 计划交货时间
         netpr    TYPE eine-netpr,          " 净价
         effpr    TYPE eine-effpr,          " 有效价格
         peinh    TYPE eine-peinh,          " 每(价格单位)
         bprme    TYPE eine-bprme,          " 订单价单位
         meins    TYPE mara-meins,          " 基本计量单位
         waers    TYPE eine-waers,          " 货币
         erdat    TYPE eine-erdat,          " 创建日期
         mwskz    TYPE eine-mwskz,          " 税码
         datlb    TYPE eine-datlb,          " 日期(有效至)
         norbm    TYPE eine-norbm,          " 标准数量
         bpumz    TYPE eine-bpumz,          " 转换分子
         bpumn    TYPE eine-bpumn,          " 转换分母
         knumh    TYPE a018-knumh,          " 条件记录号
         NA_ltex1 TYPE string,              " EINA长文本(AT-信息记录注释)
         NA_ltex2 TYPE string,              " EINA长文本(AT-信息记录注释)
         NA_ltex3 TYPE string,              " EINA长文本(AT-信息记录注释)

         NE_ltex1 TYPE string,              " EINE长文本(BT-采购订单文本)
         NE_ltex2 TYPE string,              " EINE长文本(BT-采购订单文本)
         NE_ltex3 TYPE string,              " EINE长文本(BT-采购订单文本)

         message  TYPE string,
       END OF ty_data.

DATA: gt_data TYPE TABLE OF ty_data,
      gs_data TYPE ty_data.

" ALV相关变量
DATA: gt_fieldcat TYPE lvc_t_fcat,
      gs_fieldcat TYPE lvc_s_fcat,
      gs_layout   TYPE lvc_s_layo.
DATA: gt_event TYPE slis_t_event,
      gs_event TYPE slis_alv_event.
DATA: g_repid    LIKE sy-repid.
DATA: go_grid    TYPE REF TO cl_gui_alv_grid. " ALV对象

" 新增:下拉相关变量
DATA: gt_dropdown TYPE lvc_t_drop,
      gs_dropdown TYPE lvc_s_drop.

" 新增:长文本相关变量
DATA: gt_lines TYPE STANDARD TABLE OF tline WITH DEFAULT KEY,
      gs_lines TYPE tline,
      gt_stxh  TYPE TABLE OF stxh,
      gs_stxh  TYPE stxh.

DATA: gt_bdcdata TYPE TABLE OF bdcdata WITH HEADER LINE.

DATA:
      gc_fi TYPE c.

" 选择屏幕定义
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
  SELECT-OPTIONS:
             s_matnr FOR eina-matnr,
             s_ekorg FOR eine-ekorg," OBLIGATORY,
             s_lifnr FOR eina-lifnr." OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.

" 事件类定义
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS:
      handle_modify
        FOR EVENT data_changed_finished OF cl_gui_alv_grid
        IMPORTING e_modified et_good_cells,
      handle_data_changed
        FOR EVENT data_changed OF cl_gui_alv_grid
        IMPORTING er_data_changed e_onf4 e_onf4_before e_onf4_after
                  e_ucomm sender,
      handle_toolbar
        FOR EVENT toolbar OF cl_gui_alv_grid
        IMPORTING e_object e_interactive.
ENDCLASS.

CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_modify.
    DATA: ls_stbl TYPE lvc_s_stbl.
    IF e_modified = 'X'.
      " 当TXZ01字段被修改时,更新内部表
      LOOP AT et_good_cells INTO DATA(ls_good_cells).
        IF ls_good_cells-fieldname = 'TXZ01'.
          READ TABLE gt_data INTO gs_data INDEX ls_good_cells-row_id.
          IF sy-subrc = 0.
            " 验证输入值是否在下拉列表中
            READ TABLE gt_dropdown WITH KEY
              handle = '1'
              value = ls_good_cells-value
              TRANSPORTING NO FIELDS.
            IF sy-subrc = 0.
              " 值有效,更新数据
              gs_data-txz01 = ls_good_cells-value.
            ELSE.
              " 值无效,清空或显示错误
              gs_data-txz01 = ''.
              MESSAGE '请从下拉列表中选择有效的值'
                      TYPE 'I'.
            ENDIF.
            MODIFY gt_data FROM gs_data INDEX ls_good_cells-row_id.
          ENDIF.
        ENDIF.
      ENDLOOP.
      " 刷新显示
      ls_stbl-row = 'X'.
      ls_stbl-col = 'X'.
      CALL METHOD go_grid->refresh_table_display
        EXPORTING
          is_stable = ls_stbl.
    ENDIF.
  ENDMETHOD.

  METHOD handle_data_changed.
    " 可以在这里添加更复杂的校验逻辑
  ENDMETHOD.

  METHOD handle_toolbar.
    " 工具栏处理
  ENDMETHOD.
ENDCLASS.

DATA: go_event_receiver TYPE REF TO lcl_event_receiver.

*----------------------------------------------------------------------*
*   START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
  PERFORM get_data.

*----------------------------------------------------------------------*
*   END-OF-SELECTION
*----------------------------------------------------------------------*
END-OF-SELECTION.
  PERFORM show_alv.

*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
FORM get_data .
  DATA: lt_eina TYPE TABLE OF eina,
        ls_eina TYPE eina,
        lt_eine TYPE TABLE OF eine,
        ls_eine TYPE eine,
        lt_makt TYPE TABLE OF makt,
        ls_makt TYPE makt,
        lt_mara TYPE TABLE OF mara,
        ls_mara TYPE mara,
        lt_a018 TYPE TABLE OF a018,
        ls_a018 TYPE a018.

  DATA: lt_matnr TYPE RANGE OF matnr,
        ls_matnr LIKE LINE OF lt_matnr.

  CLEAR: gc_fi.

  " 获取采购信息记录主数据
  SELECT * FROM eina
    INTO TABLE lt_eina
    WHERE matnr IN s_matnr
      AND lifnr IN s_lifnr.

  IF lt_eina IS NOT INITIAL.
    " 构建MATNR范围表
    CLEAR lt_matnr.
    LOOP AT lt_eina INTO ls_eina.
      ls_matnr-sign = 'I'.
      ls_matnr-option = 'EQ'.
      ls_matnr-low = ls_eina-matnr.
      APPEND ls_matnr TO lt_matnr.
    ENDLOOP.

    " 获取采购组织数据
    SELECT * FROM eine
      INTO TABLE lt_eine
      FOR ALL ENTRIES IN lt_eina
      WHERE infnr = lt_eina-infnr
        AND ekorg IN s_ekorg
        AND loekz = ''.

    " 获取物料主数据
    IF lt_matnr IS NOT INITIAL.
      SELECT * FROM mara
        INTO TABLE lt_mara
        WHERE matnr IN lt_matnr.
    ENDIF.

    " 获取物料描述
    IF lt_matnr IS NOT INITIAL.
      SELECT * FROM makt
        INTO TABLE lt_makt
        WHERE matnr IN lt_matnr
          AND spras = sy-langu.
    ENDIF.

    " 获取价格条件记录
    SELECT * FROM a018
      INTO TABLE lt_a018
      WHERE kappl = 'M'
        AND kschl = 'PB00'
        AND lifnr IN s_lifnr
        AND matnr IN s_matnr
        AND ekorg IN s_ekorg
        AND datab <= sy-datum
        AND datbi >= sy-datum.
  ENDIF.

  " 组合数据
  LOOP AT lt_eine INTO ls_eine.
    CLEAR gs_data.

    " 从 EINE 获取数据
    gs_data-infnr  = ls_eine-infnr.
    gs_data-ekorg  = ls_eine-ekorg.
    gs_data-esokz  = ls_eine-esokz.
    gs_data-ekgrp  = ls_eine-ekgrp.
    gs_data-aplfz  = ls_eine-aplfz.
    gs_data-netpr  = ls_eine-netpr.
    gs_data-effpr  = ls_eine-effpr.
    gs_data-peinh  = ls_eine-peinh.
    gs_data-bprme  = ls_eine-bprme.
    gs_data-waers  = ls_eine-waers.
    gs_data-erdat  = ls_eine-erdat.
    gs_data-mwskz  = ls_eine-mwskz.
    gs_data-datlb  = ls_eine-datlb.
    gs_data-norbm  = ls_eine-norbm.
    gs_data-bpumz  = ls_eine-bpumz.
    gs_data-bpumn  = ls_eine-bpumn.

    " 根据INFNR从EINA读取数据
    READ TABLE lt_eina INTO ls_eina WITH KEY infnr = ls_eine-infnr.
    IF sy-subrc = 0.
      gs_data-matnr = ls_eina-matnr.
      gs_data-lifnr = ls_eina-lifnr.
      gs_data-txz01 = ls_eina-txz01.
    ENDIF.

    " 读取物料描述
    READ TABLE lt_makt INTO ls_makt
      WITH KEY matnr = gs_data-matnr.
    IF sy-subrc = 0.
      gs_data-maktx = 

内容概要:本文围绕“计及V2G主动支撑的光伏-储能-电动汽车输配协同日前优化调度”展开研究,提出了一种综合考虑光伏发电、储能系统与电动汽车(EV)在V2G(Vehicle-to-Grid)模式下协同参与电网调度的优化模型。通过Matlab代码实现,构建了日前优化调度框架,充分挖掘电动汽车作为移动储能单元的潜力,利用其双向充放电能力为主动配电网提供调峰、填谷和备用等主动支撑服务。研究综合考虑了可再生能源出力不确定性、负荷需求波动以及电动汽车出行行为特征,建立了多主体、多目标的协同优化机制,旨在降低系统运行成本、提高新能源消纳水平,并增强电网运行的稳定性与可靠性。该资源属于电力系统与综合能源系统领域的高水平科研复现资料,具备较强的理论深度与工程应用价值; 适合人群:具备电力系统分析、优化建模基础及Matlab编程能力的研究生、科研人员,以及从事智能电网、能源互联网、综合能源系统等相关领域技术研发的专业技术人员; 使用场景及目标:①用于学习和复现源-网-荷-储协同优化调度的核心建模方法与求解流程;②掌握V2G技术在电网调频调峰中的数学建模方法及其在优化调度中的集成应用;③支撑光伏、储能与电动汽车耦合系统的低碳经济调度、鲁棒优化或分布鲁棒优化等前沿课题的研究与仿真验证; 阅读建议:建议结合文中提供的Matlab代码与主流优化工具箱(如YALMIP、CPLEX、Gurobi等)进行实践操作,重点理解目标函数设计、约束条件构建及多变量耦合关系的处理策略,同时可进一步拓展至日内滚动优化、实时调度或多时间尺度协调优化方向开展深入研究。
内容概要:本文提出了一种基于改进自适应完备集合经验模态分解(Improved Adaptive Complete Ensemble Empirical Mode Decomposition, ICEEMDAN)的混合储能辅助火电机组调频协同控制策略,并提供了完整的Matlab代码实现。该策略利用ICEEMDAN对电网频率波动信号进行高精度自适应分解,提取不同时间尺度下的功率分量,进而合理分配火电机组与混合储能系统(如蓄电池、飞轮等)的调频任务,充分发挥各自响应速度快慢互补的优势。通过引入优化算法对功率分配系数进行动态整定,实现了调频过程中储能系统的高效协同运行,有效抑制了功率波动,提升了系统频率调节的快速性、稳定性和调节精度,同时延长了储能设备的使用寿命。文中详细阐述了算法原理、模型构建、控制逻辑设计及仿真验证过程,具有较强的可复现性与工程应用价值。; 适合人群:具备电力系统自动化、新能源并网控制或智能优化算法等相关专业知识背景,熟悉Matlab/Simulink仿真平台的技术人员,特别适用于从事电网调频、储能系统控制、信号处理在电力系统中应用等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入研究混合储能系统在提升传统火电机组调频性能中的作用机制;②掌握ICEEMDAN等先进非平稳信号处理方法在功率动态分解中的具体实现与参数调优;③构建火电机组-储能协同调频仿真模型,开展多工况对比分析以优化控制性能;④为相关学术论文复现、科研项目申报或实际工程方案设计提供可靠的技术参考与代码支持。; 阅读建议:建议结合Matlab代码逐模块阅读文档内容,重点关注ICEEMDAN的实现流程、IMF分量筛选规则、功率分配权重计算逻辑及整体控制架构的设计思路。读者可通过调整信号噪声水平、滤波参数、储能容量配置等变量进行仿真实验,对比不同策略下的调频效果,从而深化对协同控制机理的理解,并可进一步拓展至风光火储联合系统或多时间尺度协调控制的研究场景。
内容概要:本文围绕《【顶级EI完整复现】【DRCC】考虑N-1准则的分布鲁棒机会约束低碳经济调度(Matlab代码实现)》展开,系统介绍了一种融合分布鲁棒优化(DRO)与机会约束规划(CCP)的低碳经济调度模型,并引入电力系统N-1安全准则以增强调度方案在设备故障等异常工况下的可靠性。该研究针对新能源出力波动、负荷不确定性等实际挑战,构建了兼具环保性与经济性的优化调度框架,通过Matlab实现了完整的数学建模、算法求解与仿真验证流程,属于高水平学术成果的工程化复现,具有较强的理论深度与实践价值。; 适合人群:具备电力系统分析、优化建模基础及Matlab编程能力,从事能源系统调度、低碳技术、智能电网等领域研究的研究生、科研人员及工程技术人员(建议工作年限1-5年)。; 使用场景及目标:① 学习并复现顶级EI期刊中低碳经济调度的先进建模范式;② 掌握分布鲁棒优化与机会约束在处理不确定性问题中的建模技巧;③ 理解N-1安全准则在优化模型中的集成方法与工程意义;④ 利用所提供的Matlab代码进行算法验证、参数调试或拓展至微电网、综合能源系统等应用场景。; 阅读建议:建议结合相关优化理论文献与原始论文对照学习,重点剖析模型构建的数学逻辑与物理含义,动手运行代码并尝试修改约束条件、调整不确定性参数或替换测试系统,以深化对算法性能与调度策略的理解,提升解决复杂电力系统优化问题的实战能力。
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 标题中的“mac驱动兼容win11系统驱动适配版本bootcamp_5.1.5640”明确指出这是一个面向苹果Mac电脑用户的产品,其核心目的是协助用户在Windows 11操作系统上完成驱动程序的安装与配置工作。BootCamp作为苹果公司推出的一项工具,赋予Mac用户在不移除原有macOS系统的前提下,安装并执行Windows操作系统的能力。此特定版本的BootCamp 5.1.5640是专门针对Windows 11环境进行优化的驱动适配版本。 描述部分提及的“mac装win11适配的驱动包”,表明这个压缩文件内含了适配Mac硬件在Windows 11操作系统下运行的驱动程序,涵盖显卡、声卡、网卡等关键设备。用户需首先对文件进行解压缩操作,随后在BootCamp文件夹中找到名为"BootCamp.msi"的安装文件,通过双击执行来启动安装流程。这一步骤是BootCamp驱动安装过程中的核心环节,其中msi文件代表Microsoft Installer格式,其功能在于应用程序的分发与管理。 “BootCamp”标签进一步验证了该压缩包的主要功能,即借助BootCamp服务实现Mac设备与Windows系统之间的硬件兼容性。BootCamp的功能不止于提供驱动程序,还集成了一个引导管理器,允许用户在系统启动时选择运行macOS或Windows。 在压缩包的文件清单中: 1. "AutoUnattend.xml":该文件通常作为无人值守安装的配置文档,旨在自动执行Windows安装过程中的部分或全部设置任务,如用户账户的建立、地区设定的调整、网络配置等,从而提升安装的便捷性。 ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值