Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to Open new screen for single click on ALV icon.

Former Member
0 Kudos

Hi All,

Can any body help me regarding the below ALV requirement.

I need to create a executable program ZPROGRAM with a table having field to store long text.The ALV report should display records according to the selection screen parameters with a icon in each record when clicked should open a new screen with present data in the field and must be able to save the entered long text.

Can any body give me the idea after displaying the simple ALV in the output,

How to open new screen(not the Pop-up’s) after single click on the icon,

in that I should be able to modify & save the long text in my ZTABLE and

able to retrieve the same text for single clicked icon record.

which function modules/Classes/Methods can we use for this requirement.

And how retrieve the same text for this record.

Thanks in advance.

Regards,

Kalam A.

4 REPLIES 4

Former Member
0 Kudos

Hi,

First you need create field catalogue with the "HOT SPOT" charateristic updated.

Then you can use the event HOTSPOT_CLICK.

EG:

CLASS ZCL_GUI_ALV_GRID DEFINITION INHERITING FROM CL_GUI_ALV_GRID.

ENDCLASS.

CLASS ZCL_GUI_ALV_GRID IMPLEMENTATION.

ENDCLASS.

Declare the class/method:

CLASS CL_EVENT_RECEIVER DEFINITION.

METHODS HOTSPOT_CLICK

FOR EVENT HOTSPOT_CLICK OF ZCL_GUI_ALV_GRID.

Implement it:

CLASS CL_EVENT_RECEIVER IMPLEMENTATION.

METHOD HOTSPOT_CLICK.

PERFORM "THE ROUTINE".

You could call the ALV grid again with the details pertaining to that line selected.

Thanks

Deepak

Former Member
0 Kudos

*&----


*

*& Report ZTEST_ALV

*&

*&----


*

*&

*&

*&----


*

REPORT ZTEST_ALV.

TYPE-POOLS slis.

DATA: gt_fieldcat TYPE TABLE OF slis_fieldcat_alv .

DATA: gs_layout TYPE slis_layout_alv.

DATA: gt_list_top_of_page TYPE slis_t_listheader.

DATA: gt_sortinfo_alv TYPE slis_t_sortinfo_alv.

DATA: gs_print_alv TYPE slis_print_alv.

DATA: gs_grid TYPE lvc_s_glay.

DATA: gt_event TYPE slis_t_event.

DATA: gs_event TYPE slis_alv_event.

DATA: BEGIN OF GT_DISPLAY OCCURS 100.

INCLUDE STRUCTURE MARA.

DATA: BOX.

DATA: END OF GT_DISPLAY.

START-OF-SELECTION.

SELECT * FROM MARA UP TO 50 ROWS

INTO CORRESPONDING FIELDS OF TABLE GT_DISPLAY.

End-of-Selection.

PERFORM build_alv.

PERFORM display_screen .

FORM build_alv .

DATA: ls_fieldcat LIKE LINE OF gt_fieldcat.

DATA: ls_top TYPE LINE OF slis_t_listheader.

DATA: ls_sort TYPE slis_sortinfo_alv.

CLEAR: ls_fieldcat, gt_fieldcat[], ls_top,gt_list_top_of_page[],

ls_sort,gs_grid,gs_print_alv,gt_sortinfo_alv[].

*&-----gs_layout definition.

  • gs_layout-zebra = 'X'.

  • gs_layout-detail_popup = 'X'. "ÊÇ·ñµ¯³öÏêϸÐÅÏ¢´°¿Ú

  • gs_layout-f2code = '&ETA'. "ÉèÖô¥·¢µ¯³öÏêϸÐÅÏ¢´°¿ÚµÄ¹¦ÄÜÂë,ÕâÀïÊÇË«»÷

gs_layout-no_vline = ' '. "ÉèÖÃÁмä¸ôÏß

gs_layout-colwidth_optimize = 'X'. "ÓÅ»¯Áпí

gs_layout-detail_initial_lines = 'X'.

  • gs_layout-coltab_fieldname = 'LINE_COLOR'. "Line_colorΪgt_displayµÄÒ»¸ö×Ö¶Î,¾ßÌåÑÕÉ«ÉèÖüûÏÂÃæ˵Ã÷.

gs_layout-hotspot_fieldname = 'MATNR'.

  • gs_layout-detail_titlebar = 'ÏêϸÄÚÈÝ'. "ÉèÖõ¯³ö´°¿ÚµÄ±êÌâÀ¸

  • gs_layout-group_change_edit = 'X'.

*&-----gs_grid definition.

gs_grid-top_p_only = 'X'.

*&-----gs_print_alv definition.

gs_print_alv-prnt_title = 'X'.

gs_print_alv-prnt_info = 'X'.

*&-----gt_sortinfo_alv definition. С¼Æ

ls_sort-fieldname = 'MTART'.

ls_sort-tabname = 'GT_DISPLAY'.

ls_sort-subtot = 'X'.

ls_sort-spos = 1.

ls_sort-up = 'X'.

  • ls_sort-group = 'UL'.

APPEND ls_sort TO gt_sortinfo_alv.

ls_sort-fieldname = 'AENAM'.

ls_sort-tabname = 'GT_DISPLAY'.

ls_sort-subtot = 'X'.

ls_sort-spos = 1.

ls_sort-up = 'X'.

  • ls_sort-group = 'UL'.

APPEND ls_sort TO gt_sortinfo_alv.

*&-----slis_t_listheader definition. title.

CLEAR ls_top.

ls_top-key = 'µ±Ç°ÈÕÆÚ:'.

ls_top-typ = 'S'. " H = Header, S = Selection, A = Action

CONCATENATE sy-datum0(4) '-' sy-datum4(2) '-' sy-datum+6(2) INTO ls_top-info .

APPEND ls_top TO gt_list_top_of_page.

CLEAR ls_top.

ls_top-key = 'title'.

ls_top-typ = 'S'. " H = Header, S = Selection, A = Action

ls_top-info = space.

APPEND ls_top TO gt_list_top_of_page.

*&-----gs_print_alv definition.

gs_print_alv-prnt_title = 'X'.

gs_print_alv-prnt_info = 'X'.

*&-----gt_fieldcat definition.

  • CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

  • EXPORTING

  • i_program_name = sy-repid

  • i_internal_tabname = 'GT_DISPLAY'

  • i_structure_name = 'MARA'

    • I_CLIENT_NEVER_DISPLAY = 'X'

  • i_inclname = sy-repid

  • CHANGING

  • ct_fieldcat = gt_fieldcat[]

  • EXCEPTIONS

  • inconsistent_interface = 1

  • program_error = 2

  • OTHERS = 3.

  • ls_fieldcat-hotspot = 'X'.

  • MODIFY gt_fieldcat FROM ls_fieldcat INDEX 2.

**-1. definition with macro.

DEFINE macro.

  • col_pos = col_pos + 1.

  • ls_fieldcat-tabname = 'it_typ_data'.

ls_fieldcat-fieldname = '&1'.

ls_fieldcat-seltext_l = &2.

  • ls_fieldcat-col_pos = col_pos.

ls_fieldcat-outputlen = '&3'.

  • ls_fieldcat-datatype = '&4'.

  • ls_fieldcat-do_sum = &5.

  • ls_fieldcat-edit = &6.

  • ls_fieldcat-checkbox = &7.

  • ls_fieldcat-key = &9.

  • ls_fieldcat-fix_column = &10.

  • ls_fieldcat-no_out = &11.

ls_fieldcat-ref_fieldname = &4. " System F4 Effect.

ls_fieldcat-ref_tabname = &5. " System F4 Effect.

ls_fieldcat-hotspot = &6.

append ls_fieldcat to gt_fieldcat.

clear ls_fieldcat.

END-OF-DEFINITION.

*

macro matnr 'matnr' 18 'MATNR' 'MARA' 'X'.

macro MTART 'MTART' 18 'MTART' 'MARA' ''.

macro AENAM 'AENAM' 18 'MAENAM' 'MARA' ''.

**-2. definition one-by-one.

  • CLEAR ls_fieldcat.

  • ls_fieldcat-fieldname = 'MATNR'.

  • ls_fieldcat-seltext_s = 'ÎïÁÏ'.

  • ls_fieldcat-ref_fieldname = 'ROLLNAME'.

  • ls_fieldcat-ref_tabname = 'DD03L'.

*

  • APPEND ls_fieldcat TO gt_fieldcat.

ENDFORM. "build_alv

FORM display_screen .

  • CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • i_list_type = 0

  • IMPORTING

  • et_events = gt_event

  • EXCEPTIONS

  • list_type_wrong = 1

  • OTHERS = 2.

  • IF sy-subrc <> 0.

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

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

  • ENDIF.

*

  • READ TABLE gt_event INTO gs_event WITH KEY name = 'TOP_OF_PAGE'.

  • IF sy-subrc EQ 0.

  • gs_event-form = 'TOP_OF_PAGE'.

  • MODIFY gt_event FROM gs_event INDEX sy-tabix.

  • ENDIF.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-repid

  • i_callback_pf_status_set = 'PF_STATUS_SET '

i_callback_user_command = 'USER_COMMAND'

  • i_callback_top_of_page = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

I_BACKGROUND_ID = 'ALV_BACKGROUND' "When top-of-page is initial.

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

it_sort = gt_sortinfo_alv[]

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

I_SAVE = 'A'

  • IS_VARIANT =

  • IT_EVENTS = gt_event

  • IT_EVENT_EXIT =

IS_PRINT = gs_print_alv

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = gt_display

EXCEPTIONS

program_error = 1

OTHERS = 2

.

IF sy-subrc <> 0.

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

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

ENDIF.

ENDFORM. "display_screen

FORM user_command USING ucomm LIKE sy-ucomm

selfield TYPE slis_selfield.

Data ref1 type ref to cl_gui_alv_grid.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' "Check Box need fieldcat-checkbox, input and edit.

IMPORTING

E_GRID = ref1.

CASE ucomm.

WHEN '&IC1'. " SAP standard code for double-clicking

"----

-


  • READ TABLE gt_display INTO gs_display INDEX slis_selfield-tabindex.

  • CHECK sy-subrc = 0.

  • CASE selfield-fieldname .

  • WHEN 'PLNUM'.

  • SET PARAMETER ID 'PAF' FIELD gs_display-plnum.

  • CALL TRANSACTION 'MD12' AND SKIP FIRST SCREEN.

  • WHEN 'POSNR'.

  • SUBMIT rvscd100 USING SELECTION-SCREEN '1000' WITH vbeln = gs_display-vbeln

  • WITH posnr = gs_display-posnr

  • WITH zinfo = 'X'

  • AND RETURN.

  • ENDCASE.

"----

-


  • IF selfield-sel_tab_field = 'OUT_ITAB-PI_SL'. " Line detail.

  • READ TABLE i_output INTO pisl_itab INDEX selfield-tabindex.

  • IF sy-subrc EQ 0.

  • ENDIF.

WHEN 'CHANGE'.

CALL METHOD ref1->check_changed_data.

CALL METHOD ref1->refresh_table_display.

*5´Ë´¦´úÂë×èÖ¹'REUSE_ALV_GRID_DISPLAY´´½¨ÐµÄÆÁÄ»£¬Ôì³ÉÆÁÄ»¶à²ã

selfield-refresh = 'X'.

WHEN 'SWITCH'.

  • PERFORM switch_edit_mode.

WHEN OTHERS.

ENDCASE.

ENDFORM. "user_command

Add your code in user_command form.

WHEN you click matnr ucomm eq '&IC1'.

Message was edited by:

Chunhai Hu

Former Member
0 Kudos

hi

u send me your code i can modify and i send it back

uwe_schieferstein
Active Contributor
0 Kudos

Hello Kalam

Perhaps the sample report <b>ZUS_SDN_PS_LONGTEXT_DISPLAY</b> may be useful to you.

*&---------------------------------------------------------------------*
*& Report  ZUS_SDN_PS_LONGTEXT_DISPLAY
*&
*&---------------------------------------------------------------------*
*& Display and change of PSP element longtext
*&
*&---------------------------------------------------------------------*

REPORT  zus_sdn_ps_longtext_display.


TYPE-POOLS: cntl.  " Types for Controls

DATA:
  gd_okcode      TYPE ui_func,
  go_docking     TYPE REF TO cl_gui_docking_container,
  go_textedit    TYPE REF TO cl_gui_textedit,
*
  gd_name        TYPE thead-tdname,
  gs_header      TYPE thead,
  gd_langu       TYPE thead-tdspras,
  gt_itf_text    TYPE STANDARD TABLE OF tline,
  gt_stream      TYPE TABLE OF text1024.  " string not possible



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.
  PUBLIC SECTION.

    CLASS-METHODS:
      handle_context_menu
        FOR EVENT context_menu OF cl_gui_textedit
          IMPORTING
            menu
            sender,

      handle_ctxmenu_selected
        FOR EVENT context_menu_selected OF cl_gui_textedit
          IMPORTING
            fcode
            sender.

ENDCLASS.                    "lcl_eventhandler DEFINITION



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_context_menu.

    CALL METHOD menu->add_function
      EXPORTING
        fcode       = 'MY_FUNC'
        text        = 'My Function'
*        ICON        =
*        FTYPE       =
*        DISABLED    =
*        HIDDEN      =
*        CHECKED     =
*        ACCELERATOR =
        .

  ENDMETHOD.                    "handle_context_menu


  METHOD handle_ctxmenu_selected.

    CASE fcode.
      WHEN 'MY_FUNC'.
        MESSAGE 'My function selected from ctxmenu' TYPE 'I'.

      WHEN OTHERS.
    ENDCASE.

  ENDMETHOD.                    "handle_ctxmenu_selected

ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION




PARAMETERS:
  p_pspnr    TYPE prps-pspnr.  "  default 'E-9990-4'.





START-OF-SELECTION.

* Get the text object (transaction SO10)
  gs_header-tdid = 'LTXT'.  " long text
  gs_header-tdspras = syst-langu.
  CONCATENATE syst-langu p_pspnr
      INTO gs_header-tdname.
  gs_header-tdobject = 'PMS'.


  CALL FUNCTION 'READ_TEXT'
    EXPORTING
*     CLIENT                        = SY-MANDT
      id                            = gs_header-tdid
      language                      = gs_header-tdspras
      name                          = gs_header-tdname
      object                        = gs_header-tdobject
*     ARCHIVE_HANDLE                = 0
*     LOCAL_CAT                     = ' '
*   IMPORTING
*     HEADER                        =
    TABLES
      lines                         = gt_itf_text
    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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'
*   EXPORTING
*     LANGUAGE          = SY-LANGU
    TABLES
      itf_text          = gt_itf_text
      text_stream       = gt_stream.
"   NOTE: if gt_stream a string table the report would dump here


  CALL SCREEN '0100'.


END-OF-SELECTION.



*&---------------------------------------------------------------------*
*&      Form  SET_REGISTERED_EVENTS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM
set_registered_events .
* define local data
  DATA:
    lt_events      TYPE cntl_simple_events,
    ls_event       TYPE cntl_simple_event.


  TYPES: BEGIN OF cntl_simple_event,
       eventid TYPE i,
       appl_event TYPE c,
     END OF cntl_simple_event.


  ls_event-eventid = cl_gui_textedit=>event_context_menu.
  APPEND ls_event TO lt_events.
  ls_event-eventid = cl_gui_textedit=>event_context_menu_selected.
  APPEND ls_event TO lt_events.

  CALL METHOD go_textedit->set_registered_events
    EXPORTING
      events                    = lt_events
    EXCEPTIONS
      cntl_error                = 1
      cntl_system_error         = 2
      illegal_event_combination = 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.




ENDFORM.                    " SET_REGISTERED_EVENTS



*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'MAIN_0100'.
*  SET TITLEBAR 'xxx'.


  CLEAR: gd_okcode.

  IF ( go_textedit IS NOT BOUND ).
    CREATE OBJECT go_docking
       EXPORTING
         parent                      = cl_gui_container=>screen0
*        REPID                       =
*        DYNNR                       =
*        SIDE                        = DOCK_AT_LEFT
*        EXTENSION                   = 50
*        STYLE                       =
*        LIFETIME                    = lifetime_default
*        CAPTION                     =
*        METRIC                      = 0
        ratio                       = 90
*        NO_AUTODEF_PROGID_DYNNR     =
*        NAME                        =
      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.

    CREATE OBJECT go_textedit
      EXPORTING
*        MAX_NUMBER_CHARS       =
*        STYLE                  = 0
        wordwrap_mode          =
            c_textedit_control=>wordwrap_at_windowborder
*        WORDWRAP_POSITION      =
        wordwrap_to_linebreak_mode =
           c_textedit_control=>true
*        FILEDROP_MODE          = DROPFILE_EVENT_OFF
        parent                 = go_docking
*        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.

    CALL METHOD go_textedit->set_text_as_stream
      EXPORTING
        text            = gt_stream
      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.

    CALL METHOD go_textedit->set_enable
      EXPORTING
        enable            = cl_gui_cfw=>true
      EXCEPTIONS
        cntl_error        = 1
        cntl_system_error = 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.


    PERFORM set_registered_events.
    SET HANDLER:
      lcl_eventhandler=>handle_context_menu     FOR go_textedit,
      lcl_eventhandler=>handle_ctxmenu_selected FOR go_textedit.
  ENDIF.

ENDMODULE.                 " STATUS_0100  OUTPUT



*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  CASE gd_okcode.
    WHEN 'BACK'  OR
         'EXIT'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.

    WHEN 'SAVE'.
      PERFORM save_longtext.

    WHEN OTHERS.
  ENDCASE.

  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Form  SAVE_LONGTEXT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM save_longtext .
* define local data
  DATA:
   lx_modified    TYPE i.


  REFRESH: gt_itf_text,
           gt_stream.

  CALL METHOD go_textedit->get_text_as_stream
    EXPORTING
      only_when_modified     = cl_gui_textedit=>true
    IMPORTING
      text                   = gt_stream
      is_modified            = lx_modified
    EXCEPTIONS
      error_dp               = 1
      error_cntl_call_method = 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.

  CHECK ( lx_modified = cl_gui_textedit=>true ).


  CALL FUNCTION 'CONVERT_STREAM_TO_ITF_TEXT'
*   EXPORTING
*     LANGUAGE          = SY-LANGU
    TABLES
      text_stream       = gt_stream
      itf_text          = gt_itf_text.



  CALL FUNCTION 'SAVE_TEXT'
    EXPORTING
*     CLIENT                = SY-MANDT
      header                = gs_header
*     INSERT                = ' '
      SAVEMODE_DIRECT       = 'X'
*     OWNER_SPECIFIED       = ' '
*     LOCAL_CAT             = ' '
*   IMPORTING
*     FUNCTION              =
*     NEWHEADER             =
    TABLES
      lines                 = gt_itf_text
    EXCEPTIONS
      id                    = 1
      language              = 2
      name                  = 3
      object                = 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.



ENDFORM.                    " SAVE_LONGTEXT

Regards,

Uwe