SMARTFORMS 创建文本(text)对象时 GUI闪退问题解决方法之一

本文介绍了解决在使用SMARTFORMS时创建文本对象导致GUI闪退的问题的方法,包括调整程序代码验证S/4HANA环境及通过ABAP程序提供两种文本编辑模式的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在用smartforms时出现一个现象:创建文本text对象时,GUI就会闪退,解决方法如下:

1、增强

先前博客:https://blog.csdn.net/wangjolly/article/details/74679381

对象CL_COS_UTILITIES->IS_S4H

  method is_s4h.

    validate_gv_s4h( ).

    if gv_s4h-public_cloud_on = abap_true.
      rv_is_s4h = abap_true.
    else.
      rv_is_s4h = gv_s4h-on_premise_on.
    endif.
*{   INSERT         DEVK900318                                        1
*
   CALL FUNCTION 'ZS4_E_IS_S4H'
    EXPORTING
      IV_ACTIVE       = 'X'
    CHANGING
      CV_IS_S4H       = RV_IS_S4H.

*}   INSERT

  endmethod.
FUNCTION zs4_e_is_s4h.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(IV_ACTIVE) TYPE  C DEFAULT 'X'
*"  CHANGING
*"     REFERENCE(CV_IS_S4H) TYPE  ABAP_BOOL OPTIONAL
*"----------------------------------------------------------------------

  CHECK iv_active = 'X'.

  IF sy-tcode = 'SMARTFORMS'.
    cv_is_s4h = space.
    RETURN.
  ENDIF.


ENDFUNCTION.

2、将编辑器WS->TEXT:通过I18N将word模式转换为TEXT,或者通过如下程序

先前博客:https://blog.csdn.net/wangjolly/article/details/8778364

*&---------------------------------------------------------------------*
*& Report zswitch_edit_mode
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zswitch_edit_mode.

************************************************************************
* 定义选择屏幕
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.  "选择文本编辑模式
PARAMETER:p_text RADIOBUTTON GROUP g1 USER-COMMAND c1 DEFAULT 'X', "以TEXT模式显示SMARTFORMS编辑文本
          p_msword RADIOBUTTON GROUP g1.                           "以WORD模式显示SMARTFORMS编辑文本
SELECTION-SCREEN END OF BLOCK blk1.


SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE TEXT-002. "注意事项
SELECTION-SCREEN  BEGIN  OF LINE.
SELECTION-SCREEN: COMMENT 1(79) warning1.
SELECTION-SCREEN  END  OF LINE.
SELECTION-SCREEN END OF BLOCK blk2.

************************************************************************
* Initialization
************************************************************************
INITIALIZATION.

  warning1 = '【注意】请退出当前SMARTFORMS事务代码,重新进入!'.

************************************************************************
* START-OF-SELECTION
************************************************************************
START-OF-SELECTION.
  PERFORM switch_edit_mode.
*&---------------------------------------------------------------------*
*&      Form  SWITCH_EDIT_MODE
*&---------------------------------------------------------------------*
*       转换SMARTFORMS文本编辑模式
*----------------------------------------------------------------------*
FORM switch_edit_mode .
*更改SMARTFORMS编辑模式为TXT编辑模式
  IF p_text = 'X'.
    CALL METHOD cl_i18n_system_settings=>maintain_tcp0i
      EXPORTING
        im_history = space
        im_name    = cl_i18n_system_settings=>c_tcp0i_name_smartforms_editor
        im_value   = ''.

    IF sy-subrc = 0.
      MESSAGE 'SMARTFORMS编辑模式已转换为TEXT模式' TYPE 'S'.
    ENDIF.
  ENDIF.

*更改SMARTFORMS编辑模式为MSWord模式
  IF p_msword = 'X'.
    CALL METHOD cl_i18n_system_settings=>maintain_tcp0i
      EXPORTING
        im_history = space
        im_name    = cl_i18n_system_settings=>c_tcp0i_name_smartforms_editor
        im_value   = 'MSWord'.
    IF sy-subrc = 0.
      MESSAGE 'SMARTFORMS编辑模式已转换为MSWord模式' TYPE 'S'.
    ENDIF.
  ENDIF.
ENDFORM.                    " SWITCH_EDIT_MODE


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王小磊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值