ABAP Text edit使用

1、如果要使用自定义的文本对象和识别码,需要先用se75创建文本对象和识别码。
2、在屏幕中拖个自定义控件,拖放适当的大小,激活。
3、在代码中申明一个cl_gui_custom_container类型的变量和一个cl_gui_textedit类型的变量。
data:gv_container type REF TO cl_gui_custom_container,
     gv_editor    type ref to cl_gui_textedit.
4、创建上面两个变量的实例。
if gv_container is initial.
    CREATE OBJECT gv_container
      EXPORTING
*        parent                      =
        container_name  = 'GV_CONTAINER_TXT'  "一定要是屏幕中自定义控件的名字
*        style                       =
*        lifetime                    = lifetime_default
*        repid                       =
*        dynnr                       =
*        no_autodef_progid_dynnr     =
*      EXCEPTIONS
*        cntl_error                  = 1
*        cntl_system_error           = 2
*        create_error                = 3
*        lifetime_error              = 4
*        lifetime_dynpro_dynpro_link = 5
*        others                      = 6
        .
    IF sy-subrc <> 0.
     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    if gv_editor is initial.
        CREATE OBJECT gv_editor
          EXPORTING
*            max_number_chars       =
*            style                  = 0
            wordwrap_mode          = cl_gui_textedit=>WORDWRAP_AT_FIXED_POSITION
            wordwrap_position      = -1
            wordwrap_to_linebreak_mode = cl_gui_textedit=>true
*            filedrop_mode          = DROPFILE_EVENT_OFF
            parent                 = gv_container
*            lifetime               =
*            name                   =
*          EXCEPTIONS
*            error_cntl_create      = 1
*            error_cntl_init        = 2
*            error_cntl_link        = 3
*            error_dp_create        = 4
*            gui_type_not_supported = 5
*            others                 = 6
            .

        IF sy-subrc <> 0.
*         MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    endif.
  endif.
 
运行下就可以看到文本编辑框了。怎么读写文本呢,先申明下面的变量
data:fid     like THEAD-TDID,
     fNAME   like THEAD-TDNAME,
     fobject like THEAD-TDOBJECT,
     it_line like STANDARD TABLE OF line WITH HEADER LINE,
     it_tline like STANDARD TABLE OF tline WITH HEADER LINE,
     it_header like THEAD.
 
从数据库中读文本和写文本使用read_text、create_text这两个FM,他们有个table参数是tline类型的。
从文本编辑框中读、写文本使用 SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}</STYLE. get_text_as_r3table 和 setSPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}</STYLE. _text_as_r3table 这两个method 他们有个table参数是line类型的。这两种类型使用下面的form进行转换
 
"
"
form. convert_tlines_to_lines.
  clear:it_line[],it_line.
  loop at it_tline.
    it_line = it_tline-TDLINE.
    append it_line.
  ENDLOOP.
  "clear:it_tline[],it_tline.
endform.
"
"
form. convert_lines_to_tlines.
  clear:it_tline[],it_tline.
  loop at it_line.
    it_tline-tdline = it_line.
    append it_tline.
  ENDLOOP.
  "clear:it_line[],it_line.
endform.
 
把文本读到文本编辑框中的代码。
 

*&---------------------------------------------------------------------*
*&      Form  READ_TEXT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form. READ_TEXT .
  CALL FUNCTION 'READ_TEXT'
     EXPORTING
*      CLIENT                        = SY-MANDT
       id                            = fid
       language                      = sy-langu
       NAME                          = fname
       OBJECT                        = fobject
*      ARCHIVE_HANDLE                = 0
*      LOCAL_CAT                     = ' '
*    IMPORTING
*      HEADER                        =
     TABLES
       lines                         = it_tline
    EXCEPTIONS
      ID                            = 1
      LANGUAGE                      = 2
      NAME                          = 3
      NOT_FOUND                     = 4
      OBJECT                        = 5
      REFERENCE_CHECK               = 6
      WRONG_ACCESS_TO_ARCHIVE       = 7
      OTHERS                        = 8
             .
   IF sy-subrc <> 0.
* Implement suitable error handling here
   ENDIF.
  perform. convert_tlines_to_lines.
endform.                    " READ_TEXT
 
 

PROCESS BEFORE OUTPUT.
 module load_text.
 
module LOAD_TEXT output.
   "perform. convert_tlines_to_lines.
   CALL METHOD gv_editor->set_text_as_r3table
     EXPORTING
       table           = it_line[]
     EXCEPTIONS
       error_dp        = 1
       error_dp_create = 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.
   "clear:it_tline[],it_tline,it_line[],it_line.
endmodule.                 " LOAD_TEXT  OUTPUT
 
文本从编辑框中保存到数据库的代码。
 
form. SAVE_TEXT .
    CALL METHOD gv_editor->get_text_as_r3table
*      EXPORTING
*        only_when_modified     = FALSE
      IMPORTING
        table                  = it_line[]
*        is_modified            =
      EXCEPTIONS
        error_dp               = 1
        error_cntl_call_method = 2
        error_dp_create        = 3
        potential_data_loss    = 4
        others                 = 5
            .
    IF sy-subrc <> 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    if it_line[] is not initial.

      perform. convert_lines_to_tlines.
 
      CALL FUNCTION 'CREATE_TEXT'
        EXPORTING
          fid               = fid
          flanguage         = sy-langu
          fname             = fname
          fobject           = fobject
*         SAVE_DIRECT       = 'X'
*         FFORMAT           = '*'
        TABLES
          flines            = it_tline[]
       EXCEPTIONS
         NO_INIT           = 1
         NO_SAVE           = 2
         OTHERS            = 3
                .
      IF sy-subrc <> 0.
* Implement suitable error handling here
      ENDIF.

    "clear:it_tline[],it_tline.
    endif.
endform.                    " SAVE_TEXT
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值