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

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


好的,我可以为您提供一个简单的示例来演示如何使用ABAP SmartForms创建一个打印表单的demo。以下是一个创建发票打印表单的示例: 1. 首先,在SAP系统中打开事务码`SE71`,这是ABAP SmartForms的主界面。 2. 在主界面上,点击"Create"按钮创建一个新的表单。 3. 在弹出的对话框中,输入表单的名称(如"DEMO_INVOICE")和描述,并点击"Create"按钮。 4. 在表单编辑界面中,可以看到左侧的元素列表,右侧是表单的设计区域。 5. 在设计区域中,您可以拖拽和放置各种元素来构建表单的布局。例如,您可以拖拽一个文本元素来显示发票号码,拖拽一个表格元素来显示商品明细等。 6. 对于每个元素,您可以在属性窗口中进行设置。例如,您可以设置文本元素的文本内容和格式,设置表格元素的列数和行数等。 7. 在表单设计完成后,您可以点击"Output Options"按钮来设置输出选项,如打印机设置、输出格式等。 8. 完成表单设计后,点击"Save"按钮保存表单。 9. 在SAP系统中,您可以使用函数模块`SSF_FUNCTION_MODULE_NAME`来获取表单的函数模块名称。将此函数模块与相关数据一起调用,即可生成发票打印输出。 以上是一个简单的示例,演示了如何使用ABAP SmartForms创建一个打印表单的demo。请注意,这只是一个基本示例,实际使用可能需要更复杂的设计和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王小磊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值