专栏首页SAP Technical动态控制选择画面字段Text描述
原创

动态控制选择画面字段Text描述

我们通常在开发报表时,选择屏上自定义字段的描述通常是通过SE38代码编辑界面下菜单GOTO下Text element中去维护的,或者有必要时通过 SELECTION-SCREEN COMMENT 语句去声明,但这些都是静态的设置了描述。下面是一段动态控制选择屏幕上字段描述显示的代码:

TABLES mara.

PARAMETER p_cb AS CHECKBOX USER-COMMAND uc1.
SELECTION-SCREEN COMMENT
PARAMETER       p_test(10).
SELECT-OPTIONS: s_test FOR mara-matnr ,
                s_matnr FOR mara-matnr .

INITIALIZATION.

AT SELECTION-SCREEN OUTPUT.

  PERFORM mod_sel_text USING sy-repid 'P' 'P_CB' '改变下面字段的描述'.

  IF p_cb = 'X'.
    PERFORM mod_sel_text USING sy-repid 'P' 'P_TEST' '我是Parameter,由代码控制'.
    PERFORM mod_sel_text USING sy-repid 'S' 'S_TEST' '我是Select-option,由代码控制'.
  ELSE.
    PERFORM mod_sel_text USING sy-repid 'P' 'P_TEST' 'P_TEST'.
    PERFORM mod_sel_text USING sy-repid 'S' 'S_TEST' 'P_TEST'.
  ENDIF.

*&---------------------------------------------------------------------*
*&      FORM  MOD_SEL_TEXT
*&---------------------------------------------------------------------*
FORM mod_sel_text USING p_repid   "the name of the current program
                        kind
                        parameter
                        text .

  DATA sel TYPE rsseltexts OCCURS 1 WITH HEADER LINE.
  REFRESH sel.
  sel-name = parameter.
  sel-kind = kind.
  sel-text   = text.
  APPEND sel.

  CALL FUNCTION 'SELECTION_TEXTS_MODIFY'
    EXPORTING
      program                     = p_repid
    TABLES
      seltexts                    = sel
    EXCEPTIONS
      program_not_found           = 1
      program_cannot_be_generated = 2
      OTHERS                      = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                    "MOD_SEL_TEXT

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ABAP 防止程序重复执行

    有的程序需要现在同一时间只能运行一个,这种需求可以用锁的方式来实现,在START-OF-SELECTION 事件后加锁,如果是加锁成功,说明还没有程序在执行,如...

    matinal
  • ABAP 防止程序重复执行

    有的程序需要现在同一时间只能运行一个,这种需求可以用锁的方式来实现,在START-OF-SELECTION 事件后加锁,如果是加锁成功,说明还没有程序在执行,如...

    matinal
  • SAP 获取工单和工序的状态

    ABAP 获取订单状态的两个函数 STATUS_TEXT_EDIT 和 STATUS_READ 的简单介绍

    matinal
  • Istio服务网格原理与实践

    Istio 1.4版本中,Envoy代理在每次请求后都调用Mixer的API来发送遥测数据,数据主要包括请求的来源和目的地址、来源和目的负载的ID(K8SPOD...

    SammyLiu
  • 干货:微信域名链接被微信封杀拦截屏蔽解决方案

    想通过活动营销来推广产品的用户,肯定经常遇到域名被微信封杀拦截屏蔽的情况,想申请恢复访问过程复杂,而且由个人或小团队经营的网站基本只能放弃,花钱解封价格昂贵,遇...

    qq_1401806571
  • 关于ssm的分页部分代码

    Dream城堡
  • 通俗易懂的HTTPS解释

    我们在网络的行为(例如看文章、购物、上传图片),简单来说都是向服务器发送消息、接收服务器的消息,这个过程很像信鸽传书。

    dys
  • 针对于客户网站被攻击而进行的渗透测试服务分享

    客户网站前端时间被攻击,网站被劫持到了赌bo网站上去,通过朋友介绍找到我们SINESAFE做网站的安全防护,我们随即对客户网站进行了全面的渗透测试,包括了网站的...

    技术分享达人
  • 运行时需要注意的问题

    int , long int也可用%x, %#x , %X , %#X,转换为16进制输出

    孙晨c
  • MySQL 事务日志

    在写日志的时候,单个日志如果过大,对于读写和同步都会产生影响,所以在日志变大的时候,需要对日志进行一个分组。

    付威

扫码关注云+社区

领取腾讯云代金券