ABAP INITIALIZATION EVENT -多值选项默认值与备选值-人性化让client满意的写法

initialization事件(初始化事件)
一般在initialization事件下写什么呢?
通常在该事件下对程序设置值和屏幕元素进行初始化赋值。

业务前提
需求多值选项字段默认值备选值过多,并且所给值是无规则散乱的。
并且如果client需要修改默认值,而源代码写成hard code,甲方公司需要进行审批,时间过长那么如果写成让client满意的需求?

特点:可以让client 自己修改默认值,极大提高业务灵活性和效率,默认值备选值存在自创建表中。

基础知识:[type range of] , into table @data(itab) / into @data(wa) ,field[ ] , sign , option , high , low , @abap_true .

事务代码:SE80 SE11 SM30 SE16N

程序代码

SELECTION-SCREEN  BEGIN OF BLOCK BK1 WITH FRAME TITLE TEXT-T01.
SELECT-OPTIONS: S_HKONT FOR BSIS-HKONT MATCHCODE OBJECT kred ,
S_BUKRS FOR BSIS-BUKRS DEFAULT 'SY'.
SELECTION-SCREEN END OF BLOCK BK1.

注意不给S_HKONT赋默认值

INITIALIZATION.
PERFORM Init_data.
form init_data.
    CONSTANTS:
    IT_bt     TYPE char2 VALUE 'BT',
    IT_I     TYPE char1 VALUE 'I'.
    DATA:
    lt_exvd TYPE RANGE OF BSIS-HKONT,
    ls_exvd LIKE LINE OF lt_exvd,
    GT_RELATE TYPE RANGE OF BSIS-HKONT.
    IF S_HKONT[] IS INITIAL AND S_HKONT IS INITIAL.
    SELECT
      OPTION1,
      HKONT_L,
      HKONT_H
    INTO TABLE @DATA(lt_ex)
    FROM Z12_EXVD
      WHERE related = @abap_true.

    IF sy-subrc = 0.
      LOOP AT lt_ex INTO DATA(ls_ex).
        ls_exvd-sign = IT_I.
        ls_exvd-low = ls_ex-HKONT_L.
        ls_exvd-high = ls_ex-HKONT_H.
        IF ls_exvd-high IS INITIAL.
          ls_exvd-option = ls_ex-OPTION1.
        ELSE.
          ls_exvd-option = IT_bt.
        ENDIF.
        APPEND ls_exvd TO lt_exvd.
        CLEAR: ls_ex,ls_exvd.
      ENDLOOP.
    ENDIF.
    APPEND LINES OF lt_exvd[] TO S_HKONT.
    APPEND LINES OF lt_exvd[] TO gt_relate.
  ENDIF.
ENDFORM.

Z12_EXVD表
Z12_EXVD表
建好后赋权限
Utilities → Table Maintenance Generator

执行SM30,CLIENT可以在SM30中修改默认值
在这里插入图片描述
运行效果部分截图

在这里插入图片描述
在这里插入图片描述
如果想要更多限制条件可在视图维护时查看status找到对应function进行代码编写
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP是一种用于SAP系统开发的编程语言,其中pp模块是SAP系统中的生产计划模块,主要用于生产计划、生产过程控制和生产数据记录等。 ABAP开发在pp模块中的要点如下: 1. 熟悉pp模块的基础知识:了解pp模块的功能和流程,包括物料需求计划、生产订单、工作中心、生产版本等。这些知识对于正确理解和开发与pp模块相关的程序非常重要。 2. 掌握ABAP语言特性:ABAP作为SAP系统的开发语言,开发人员需要掌握其语法和特性,例如数据类型、变量声明、循环语句、条件语句等。这些知识将帮助开发人员编写高效且可靠的pp模块程序。 3. 理解生产计划数据结构:pp模块涉及的数据结构较为复杂,包括物料清单、工艺路线、生产订单等。开发人员需要了解这些数据结构的组成和关系,以便能够正确地读取和处理这些数据。 4. 开发报表和界面程序:PP模块通常需要输出各种类型的报表,如生产订单报表、工序报表等。开发人员需要根据用户需求设计和开发这些报表,并保证它们的准确性和易用性。 5. 数据验证和错误处理:在pp模块开发中,数据的准确性和可靠性非常重要。开发人员需要编写适当的代码来验证用户输入的数据,并能够处理各种可能的错误情况,以保证系统的稳定性和可靠性。 总之,ABAP开发在pp模块中需要掌握相关的知识和技术,包括pp模块的基础知识、ABAP语言特性、数据结构、报表和界面开发以及数据验证和错误处理等方面。只有掌握这些要点,才能够开发出高质量和高效率的pp模块程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值