Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8635

Re: Using the same screen to display the data in ALV and clicking back button to go to the selection screen directly from final screen

$
0
0

Hello Praphulla,

 

 

I am facing the same issue. The entry is being deleted from the final
internal table but while displaying it displayes all the lines including the
deleted lines. When I use "CALL METHOD ws_obj1->free." it was not
displaying the deleted lines.

 

 

Please find my code below.

 

 

 

 

 

CLASS
lcl_event_receiver DEFINITION DEFERRED.
"for event handling

 

 

DATA: ws_obj1            TYPE REF TO
cl_gui_custom_container,

 

 

      ws_obj2            TYPE REF TO cl_gui_alv_grid,

 

 

      lcl_event_receiver TYPE REF TO
lcl_event_receiver.

 

 

 

 

 

 

 

 

 

 

 

*---------------------------------------------------------------------*

 

 

*       CLASS lcl_event_receiver DEFINITION

 

 

*---------------------------------------------------------------------*

 

 

*

 

 

*---------------------------------------------------------------------*

 

 

CLASS lcl_event_receiver
DEFINITION.

 

 


PUBLIC SECTION.

 

 

 

 

 

  
METHODS: hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid

 

 

                             IMPORTING e_row_id
e_column_id,

 

 

             button_click FOR EVENT
button_click OF cl_gui_alv_grid

 

 

        IMPORTING es_col_id es_row_no.

 

 

 

 

 

 

 

 

  1. ENDCLASS.                    "lcl_event_receiver
    DEFINITION

 

 

 

 

 

 

 

 

*---------------------------------------------------------------------*

 

 

*       CLASS lcl_event_receiver IMPLEMENTATION

 

 

*---------------------------------------------------------------------*

 

 

*

 

 

*---------------------------------------------------------------------*

 

 

CLASS lcl_event_receiver
IMPLEMENTATION.

 

 

 

 

 


METHOD hotspot_click.

 

 

  
PERFORM hotspot_click USING e_row_id e_column_id.

 

 


ENDMETHOD.                  
"HOTSPOT_CLICK

 

 

 

 

 


METHOD button_click.

 

 

  
PERFORM button_click USING es_col_id es_row_no.

 

 


ENDMETHOD.                  
"button_click

 

 

 

 

 

  1. ENDCLASS.                    "lcl_event_receiver
    IMPLEMENTATION

 

 

 

 

 

IF NOT i_final IS
INITIAL.

 

 



CALL SCREEN '0101'.

 

 



  1. ENDIF.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MODULE status_0101 OUTPUT.

 

 

 

 

 


SET PF-STATUS 'ZFMZFR10'.

 

 


SET TITLEBAR 'ZFMZFR10'.

 

 

 

 

 

*& Container and object
creation

 

 


PERFORM frm_container_obj_crea.

 

 

 

 

 

*& Layout creation

 

 


CLEAR: wa_layout,

 

 

         s_sdate,

 

 

         s_edate.

 

 

 

 

 


wa_layout-zebra = c_x.

 

 

 

 

 


WRITE s_cpudt-low TO s_sdate.

 

 


WRITE s_cpudt-high TO s_edate.

 

 

 

 

 


CONCATENATE: text-048

 

 

               s_sdate

 

 

               'to'

 

 

               s_edate INTO
wa_layout-grid_title

 

 

               SEPARATED BY space.

 

 

 

 

 


wa_layout-info_fname = c_row_col.

 

 

 

 

 

  wa_layout-sel_mode   = 'D'.

 

 


wa_variant = sy-repid.

 

 

 

 

 

*& Field catalog creation

 

 


PERFORM frm_field_cat.

 

 

 

 

 

*& Final screen to display
the data

 

 


PERFORM frm_display_data.

 

 

 

 

 

  1. ENDMODULE.                 " STATUS_0101  OUTPUT

 

 

 

 

 

 

 

 

 

 

 

MODULE user_command_0101 INPUT.

 

 

 

 

 


CLEAR: ok_code.

 

 


ok_code  = sy-ucomm.

 

 

 

 

 


CASE: ok_code.

 

 

  
WHEN c_back OR c_exit OR c_cancel.

 

 

 

 

 

      LEAVE TO SCREEN 0.

 

 

 

 

 


ENDCASE.

 

 

 

 

 

  1. ENDMODULE.                 " USER_COMMAND_0101  INPUT

 

 

 

 

 

 

 

 

 

 

 

FORM frm_container_obj_crea .

 

 

 

 

 


CLEAR: ws_obj1.

 

 


CREATE OBJECT ws_obj1

 

 

     EXPORTING

 

 

      container_name               = 'I_CONTAINER'

 

 

     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.

 

 

 

 

 


CLEAR: ws_obj2.

 

 


CREATE OBJECT ws_obj2

 

 

  
EXPORTING

 

 

     i_parent           = ws_obj1

 

 

  
EXCEPTIONS

 

 

      error_cntl_create = 1

 

 

      error_cntl_init   = 2

 

 

      error_cntl_link   = 3

 

 

      error_dp_create   = 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.

 

 

 

 

 


CREATE OBJECT lcl_event_receiver.

 

 


IF sy-subrc EQ 0.

 

 

  
SET HANDLER lcl_event_receiver->hotspot_click FOR ws_obj2.

 

 

  
SET HANDLER lcl_event_receiver->button_click FOR ws_obj2.

 

 


ENDIF.

 

 

 

 

 

  1. ENDFORM.                    " frm_container_obj_crea

 

 

 

 

 

 

 

 

FORM frm_field_cat .

 

 

 

 

 


REFRESH: i_field.

 

 

*& Display Approve Button

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '1'.

 

 


wa_field-fieldname = text-040.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-icon      = c_x.

 

 


wa_field-outputlen = 10.

 

 



wa_field-reptext   = text-041.

 

 


wa_field-hotspot   = c_x.

 

 


wa_field-style     =
cl_gui_alv_grid=>mc_style_button.

 

 


wa_field-icon      = 'X'.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Display Reject Button

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '2'.

 

 


wa_field-fieldname = text-042.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-icon      = c_x.

 

 


wa_field-outputlen = 10.

 

 


wa_field-reptext   = text-043.

 

 


wa_field-hotspot   = c_x.

 

 


wa_field-style     =
cl_gui_alv_grid=>mc_style_button.

 

 


wa_field-icon      = 'X'.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Category Name

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '3'.

 

 


wa_field-fieldname = text-001.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 30.

 

 


wa_field-reptext   = text-003.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Company Code

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '4'.

 

 


wa_field-fieldname = text-004.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 12.

 

 


wa_field-reptext   = text-005.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Document Number

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '5'.

 

 


wa_field-fieldname = text-006.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 10.

 

 


wa_field-reptext   = text-007.

 

 


wa_field-hotspot   = c_x.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Posting Date

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '6'.

 

 


wa_field-fieldname = text-008.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 10.

 

 


wa_field-reptext   = text-009.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Vendor Number

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '7'.

 

 


wa_field-fieldname = text-011.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 10.

 

 


wa_field-reptext   = text-012.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Vendor Name

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '8'.

 

 


wa_field-fieldname = text-013.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 35.

 

 


wa_field-reptext   = text-014.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Invoice Number

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '9'.

 

 


wa_field-fieldname = text-015.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 16.

 

 


wa_field-reptext   = text-022.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Invoice Date

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '10'.

 

 


wa_field-fieldname = text-023.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 10.

 

 


wa_field-reptext   = text-024.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Amount

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '11'.

 

 


wa_field-fieldname = text-025.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 13.

 

 


wa_field-reptext   = text-026.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Currency

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '12'.

 

 


wa_field-fieldname = text-027.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 10.

 

 


wa_field-reptext   = text-028.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Due Date

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '13'.

 

 


wa_field-fieldname = text-029.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 10.

 

 


wa_field-reptext   = text-031.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& User Name

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '14'.

 

 


wa_field-fieldname = text-032.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 12.

 

 


wa_field-reptext   = text-033.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Credit

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '15'.

 

 


wa_field-fieldname = text-034.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 8.

 

 


wa_field-reptext   = text-035.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Header Text

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '16'.

 

 


wa_field-fieldname = text-036.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 25.

 

 


wa_field-reptext   = text-037.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& Line Text

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '17'.

 

 


wa_field-fieldname = text-038.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-outputlen = 50.

 

 


wa_field-reptext   = text-039.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 

*& View Image

 

 


CLEAR: wa_field.

 

 


wa_field-row_pos   = '1'.

 

 


wa_field-col_pos   = '18'.

 

 


wa_field-fieldname = text-045.

 

 


wa_field-tabname   = text-002.

 

 


wa_field-icon      = c_x.

 

 


wa_field-outputlen = 10.

 

 


wa_field-reptext   = text-046.

 

 


wa_field-style     =
cl_gui_alv_grid=>mc_style_button.

 

 


wa_field-icon      = 'X'.

 

 


APPEND wa_field TO i_field.

 

 

 

 

 


CLEAR: wa_field.

 

 

  1. ENDFORM.                    " frm_field_cat

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FORM frm_display_data .

 

 

 

 

 


CALL METHOD ws_obj2->set_table_for_first_display

 

 

  
EXPORTING

 

 

      is_variant                    = wa_variant

 

 

      is_layout                     = wa_layout

 

 

  
CHANGING

 

 

      it_outtab                     = i_final

 

 

      it_fieldcatalog               = i_field

 

 

  
EXCEPTIONS

 

 

      invalid_parameter_combination = 1

 

 

      program_error                 = 2

 

 

      too_many_lines                = 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.

 

 

 

 

 


CALL METHOD ws_obj2->check_changed_data.

 

 


CALL METHOD ws_obj2->refresh_table_display.

 

 

 

 

 

  1. ENDFORM.                    " frm_display_data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FORM button_click  USING  
p_es_col_id

 

 

                            p_es_row_no.

 

 

 

 

 


INCLUDE <cntn01>.

 

 

 

 

 


TYPES: BEGIN OF ty_data,

 

 

            windowtitle TYPE sapb-sapwintitl,

 

 

            windowid    TYPE sapb-sapwinid,

 

 

            docclass    TYPE toaom-doc_type,

 

 

         END OF ty_data.

 

 

 

 

 


DATA: val            TYPE
lvc_s_roid,

 

 

        name           TYPE swotinvoke-verb,

 

 

        l_docnum       TYPE edi_docnum,

 

 

        l_idoc         TYPE swc_object,

 

 

        lws_objectid   TYPE saeobjid,

 

 

        lws_image      TYPE swc_object,

 

 

        lws_arc_doc_id TYPE saeardoid,

 

 

        lws_archiv_id  TYPE saearchivi,

 

 

        lws_objkey     TYPE swo_typeid,

 

 

        i_data         TYPE STANDARD TABLE OF ty_data,

 

 

        wa_data        LIKE LINE OF i_data.

 

 

 

 

 


CLEAR: val.

 

 

 

 

 


CASE: p_es_col_id.

 

 

  
WHEN 'ICON'.

 

 

 

 

 

      CLEAR: name.

 

 

 

 

 

      val = p_es_row_no.

 

 

      name = 'Display'.

 

 

 

 

 

      CLEAR: wa_data.

 

 

      REFRESH: i_data.

 

 

 

 

 

      wa_data-windowtitle = 'Hello'.

 

 

      wa_data-windowid  = '1'.

 

 

      wa_data-docclass  = 'PDF'.

 

 

      APPEND wa_data TO i_data.

 

 

 

 

 

      swc_container container.

 

 

 

 

 

      CLEAR: wa_final, lws_objectid.

 

 

 

 

 

      READ TABLE i_final INTO wa_final INDEX
val-row_id.

 

 

      IF sy-subrc EQ 0 AND

 

 

         NOT wa_final-cat_name IS INITIAL AND

 

 

         NOT wa_final-bukrs    IS INITIAL AND

 

 

         NOT wa_final-belnr    IS INITIAL.

 

 

 

 

 

        CONCATENATE wa_final-bukrs

 

 

                    wa_final-belnr

 

 

                    wa_final-gjahr

 

 

                    INTO lws_objectid.

 

 

 

 

 

        CLEAR: lws_archiv_id,

 

 

               lws_arc_doc_id.

 

 

 

 

 

        SELECT SINGLE archiv_id

 

 

                      arc_doc_id

 

 

                      INTO (lws_archiv_id, lws_arc_doc_id)

 

 

                      FROM toa01

 

 

                      WHERE sap_object = 'FIPP'
AND

 

 

                            object_id  = lws_objectid.

 

 

 

 

 

        IF sy-subrc EQ 0.

 

 

 

 

 

          CLEAR: lws_objkey.

 

 

          CONCATENATE lws_archiv_id

 

 

                      lws_arc_doc_id

 

 

                      INTO lws_objkey.

 

 

 

 

 

          swc_create_object lws_image 'IMAGE'
lws_objkey.

 

 

 

 

 

          swc_create_container container.

 

 

 

 

 

          IF lws_objkey IS NOT INITIAL.

 

 

          
swc_call_method lws_image name container.

 

 

          ELSE.

 

 

            MESSAGE i001(zfin) WITH text-047.

 

 

          ENDIF.

 

 

        ELSE.

 

 

 

 

 

          CLEAR: l_docnum.

 

 

          SELECT SINGLE idoc_no

 

 

                        INTO l_docnum

 

 

                        FROM zgeli_track

 

 

                        WHERE zfi_bukrs =
wa_final-bukrs

 

 

                          AND zfi_belnr =
wa_final-belnr

 

 

                          AND zfi_gjahr =
wa_final-gjahr.

 

 

 

 

 

          swc_create_object l_idoc 'IDOC'
l_docnum.

 

 

 

 

 

          swc_create_container container.

 

 

          IF l_docnum IS NOT INITIAL.

 

 

            swc_call_method l_idoc name
container.

 

 

          ELSE.

 

 

            MESSAGE i001(zfin) WITH text-047.

 

 

          ENDIF.

 

 

        ENDIF.

 

 

      ENDIF.

 

 

 

 

 

      CLEAR: p_es_row_no,    val,

 

 

             name,           wa_data,

 

 

             lws_objectid,   lws_archiv_id,

 

 

             lws_arc_doc_id, lws_objkey,

 

 

             l_docnum,       lws_image,

 

 

             p_es_col_id,    l_idoc.

 

 

 

 

 

 

 

 

  
WHEN 'APP'.

 

 

 

 

 

      val = p_es_row_no.

 

 

 

 

 

      CLEAR: wa_final.

 

 

      READ TABLE i_final INTO wa_final INDEX
val-row_id.

 

 

 

 

 

      IF sy-subrc EQ 0 AND

 

 

         NOT wa_final-cat_name IS INITIAL AND

 

 

         NOT wa_final-bukrs    IS INITIAL AND

 

 

         NOT wa_final-belnr    IS INITIAL.

 

 

 

 

 

        DELETE i_final INDEX val-row_id.

 

 

 

 

 

        IF sy-subrc = 0 AND

 

 

        NOT i_final IS INITIAL.

 

 

 

 

 

          CALL SCREEN '0101'.

 

 

 

 

 

        ENDIF.

 

 

      ENDIF.

 

 

 

 

 

      CLEAR: p_es_row_no, val,

 

 

             p_es_col_id.

 

 

 

 

 

  
WHEN 'REJ'.

 

 

 

 

 


ENDCASE.

 

 

 

 

 

  1. ENDFORM.                    " button_click

Viewing all articles
Browse latest Browse all 8635

Trending Articles