当前位置: 代码迷 >> 综合 >> ABAP实现粘贴板的操作,复制粘贴
  详细解决方案

ABAP实现粘贴板的操作,复制粘贴

热度:52   发布时间:2024-01-18 14:49:56.0
ABAP可以实现复制粘贴的操作
自己玩儿
项目里暂时用不到

ABAP中的 CLASSCL_GUI_FRONTEND_SERVICES中提供了两个方法来控制与剪贴板内容的导入导出,

分别是:CLIPBOARD_EXPORTCLIPBOARD_IMPORT

    CLIPBOARD_EXPORT是将一个内表的内容导入到剪贴板中,示例程序如下:

复制   

 DATA rc TYPE i.

    DATA:BEGIN OF itab OCCURS 0,

    line(200) TYPE c ,

    END OF itab.

    itab-line = '好吧,你已经把我复制了……'.

    APPEND itab.

    CALL METHOD cl_gui_frontend_services=>clipboard_export

    IMPORTING

    data                 = itab[]

    CHANGING

    rc                   = rc

        EXCEPTIONS

          CNTL_ERROR           = 1

          ERROR_NO_GUI         = 2

          NOT_SUPPORTED_BY_GUI = 3

          others               = 4

    .

    IF sy-subrc <> 0.

       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.


粘贴    


CLIPBOARD_IMPORT是将剪贴板中的内容导入到一个定义好的内表当中,示例程序如下:

    DATA rc TYPE i.

    DATA:BEGIN OF itab OCCURS 0,

    line(200) TYPE c ,

    END OF itab.

    CALL METHOD cl_gui_frontend_services=>clipboard_import

    IMPORTING

    DATA                 = itab[]           "粘贴板内数据

    LENGTH               = rc               "一共几行

    EXCEPTIONS

      CNTL_ERROR           = 1

      ERROR_NO_GUI         = 2

      NOT_SUPPORTED_BY_GUI = 3

      others               = 4

    .

    IF sy-subrc <> 0.

    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.

    write: '粘贴板中一共' ,rc,' 行数据,如下:'.

    loop at itab.

    write / itab-line.

    endloop.