最近在用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