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: 

Issues with ALV Custom container

former_member462348
Participant
0 Kudos

Hi Experts,

Please help me out with the below problem. I have created an docking container, And I want to display values of two internal tables based on the push buttons choosed. When i click on the first radio button, the output is getting displayed successfully at the right side.

But whereas when I make an click on the second radio button, the output values are not getting refreshed on the right side and its getting printed separately at left side, kindly find the attached snaps for your reference.

so here in the below snap if i make a click on the basic details radio button the output displayed correctly.

but when i click on the other push button, its overlapping with the text boxes and push buttons which i have created and its not refreshing the view with the new internal table column values.

I have attached my code in word document kindly help me on this.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Rufus,

I have noted some issues in your code and tried to rectify it.

You can check my code hoping it works as per your requirement and compare it.

REPORT  ZR_DOCKING_CONTAINER3.

TYPE-POOLS slis.

TABLES: /sapdmc/lsoatt.

*SELECT-OPTIONS: p_projt FOR /sapdmc/lsoatt-project.

DATA: BEGIN OF ty_tab,
         project TYPE /sapdmc/ls_project,
         subproj TYPE /sapdmc/ls_project,
         object TYPE /sapdmc/ls_project,
         objecttype TYPE char2,
         dxobj TYPE char4,
         subdx TYPE char4,
         busobj TYPE oj_name,
         method TYPE swc_elem,
         messtype TYPE edi_mestyp,
         idoctype TYPE edi_idoctp,
         owner TYPE uname,
         uname TYPE uname,
         datum TYPE datum,
       END OF ty_tab,
       BEGIN OF ty_tab2,
         project TYPE /sapdmc/ls_project,
         subproj TYPE /sapdmc/ls_project,
         object TYPE /sapdmc/ls_project,
         posnr TYPE /sapdmc/ls_posnr,
         trgstr TYPE /sapdmc/ls_trgstr,
         trgfld TYPE /sapdmc/ls_trgfld,
         counter TYPE /sapdmc/ls_counter,
         line TYPE /sapdmc/ls_line,
         uname TYPE uname,
         datum TYPE datum,
         END OF ty_tab2.

DATA: "wa_tab1 type ty_tab,
       lt_tab1 LIKE STANDARD TABLE OF ty_tab,
       lt_tab2 LIKE STANDARD TABLE OF ty_tab2,
       lt_fieldcat TYPE lvc_t_fcat,
       wa_fieldcat TYPE lvc_s_fcat,
       it_tab2 LIKE STANDARD TABLE OF ty_tab2.
DATA:
* * User Command

ok_code TYPE sy-ucomm,

* * Reference Variable for Docking Container

r_dock_container TYPE REF TO cl_gui_docking_container,

* * Reference Variable for alv grid

r_grid TYPE REF TO cl_gui_alv_grid.

data  gv_tab1 type c.

START-OF-SELECTION.

PERFORM INITIAL_BASE.
 
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_OUTPUT .
PERFORM fill_fieldcat USING :
         'PROJECT' 'LT_TAB1' 'Project Name',
         'SUBPROJ'   'LT_TAB1' 'Subproject Name',
         'OBJECT'  'LT_TAB1'   'Object Name',
         'OBJECTTYPE'  'LT_TAB1'  'Object Type',
         'DXOBJ'   'LT_TAB1'   'Standard Batch I/P',
         'SUBDX'   'LT_TAB1'   'Standard Batch',
         'BUSOBJ'   'LT_TAB1'   'Business Obj',
         'METHOD'   'LT_TAB1'   'Method Name',
         'MESSTYPE'   'LT_TAB1'   'Message type',
         'IDOCTYPE'   'LT_TAB1'   'Idoc Type',
         'OWNER'   'LT_TAB1'   'Owner',
         'UNAME'   'LT_TAB1'   'User Name',
         'DATUM'   'LT_TAB1'   'Last Changed on'.

*call screen 999.
ENDFORM.                    " DISPLAY_OUTPUT
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_OUTPUT2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_OUTPUT2 .
  PERFORM fill_fieldcat2 USING :
         'PROJECT' 'LT_TAB2'   'Project Name',
         'SUBPROJ' 'LT_TAB2'   'Subproject Name',
         'OBJECT'  'LT_TAB2'   'Object Name',
         'POSNR'   'LT_TAB2'   'Item',
         'TRGSTR'  'LT_TAB2'   'Target Strcuture',
         'TRGFLD'  'LT_TAB2'   'Target Field',
         'COUNTER' 'LT_TAB2'   'Counter',
         'LINE'    'LT_TAB2'   'Line',
         'UNAME'   'LT_TAB2'   'User Name',
         'DATUM'   'LT_TAB2'   'Last Changed on'.

*CALL SCREEN 999.
ENDFORM.                    " DISPLAY_OUTPUT2
*&---------------------------------------------------------------------*
*&      Form  FILL_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0180   text
*      -->P_0181   text
*      -->P_0182   text
*----------------------------------------------------------------------*
FORM fill_fieldcat USING  pv_field TYPE any
                           pv_tabname TYPE any
                           pv_coltext TYPE any .

   wa_fieldcat-fieldname = pv_field.
   wa_fieldcat-tabname = pv_tabname.
   wa_fieldcat-coltext = pv_coltext.
   APPEND wa_fieldcat TO lt_fieldcat.
   CLEAR wa_fieldcat.
   ENDFORM.      " FILL_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  FILL_FIELDCAT2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0264   text
*      -->P_0265   text
*      -->P_0266   text
*----------------------------------------------------------------------*
FORM fill_fieldcat2 USING  pv_field TYPE any
                           pv_tabname TYPE any
                           pv_coltext TYPE any .

   wa_fieldcat-fieldname = pv_field.
   wa_fieldcat-tabname = pv_tabname.
   wa_fieldcat-coltext = pv_coltext.

   APPEND wa_fieldcat TO lt_fieldcat.

   CLEAR wa_fieldcat.
ENDFORM.                    " FILL_FIELDCAT2
*&---------------------------------------------------------------------*
*&      Module  STATUS_0999  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0999 OUTPUT.
   SET PF-STATUS 'ZSTATUS'.
ENDMODULE.                 " STATUS_0999  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0999  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0999 INPUT.


CASE SY-UCOMM.


      WHEN 'BASE'.
       CLEAR lt_fieldcat[].
       PERFORM display_output.
       gv_tab1 = abap_true.
         SELECT  project
               subproj
               object
               objecttype
               dxobj
               subdx
               busobj
               method
               messtype
               idoctype
               owner
               uname
               datum FROM /sapdmc/lsoatt INTO TABLE lt_tab1
               WHERE project EQ /sapdmc/lsoatt-project OR
                     subproj EQ /sapdmc/lsoatt-subproj OR
                     object EQ /sapdmc/lsoatt-object.

           SORT lt_tab1 BY subproj.

           CALL METHOD r_grid->set_table_for_first_display
             CHANGING
               it_outtab                     = lt_tab1
               it_fieldcatalog               = lt_fieldcat
             EXCEPTIONS
               invalid_parameter_combination = 1
               program_error                 = 2
               too_many_lines                = 3
               OTHERS                        = 4.

             CALL METHOD r_grid->refresh_table_display.
             CALL METHOD cl_gui_cfw=>flush.


     WHEN 'BSBO'.
       CLEAR lt_fieldcat[].
       PERFORM display_output2.
       SELECT
         project
         subproj
         object
         posnr
         trgstr
         trgfld
         counter
         line
         uname
         datum FROM /sapdmc/lsocod INTO TABLE lt_tab2
         WHERE project EQ /sapdmc/lsoatt-project OR
               subproj EQ /sapdmc/lsoatt-subproj OR
               object EQ /sapdmc/lsoatt-object.

         SORT lt_tab1 BY subproj.

         CALL METHOD r_grid->set_table_for_first_display
           CHANGING
             it_outtab                     = lt_tab2
             it_fieldcatalog               = lt_fieldcat
           EXCEPTIONS
             invalid_parameter_combination = 1
             program_error                 = 2
             too_many_lines                = 3
             OTHERS                        = 4.
           CALL METHOD r_grid->refresh_table_display.
           CALL METHOD cl_gui_cfw=>flush.


     WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.
       LEAVE TO SCREEN 0.
   ENDCASE. " CASE ok_code.
ENDMODULE.                 " USER_COMMAND_0999  INPUT
*&---------------------------------------------------------------------*
*&      Module  CREATE_OBJECTS  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE CREATE_OBJECTS OUTPUT.

CHECK r_dock_container IS  INITIAL.

    CREATE OBJECT r_dock_container
     EXPORTING
       side                        = cl_gui_docking_container=>dock_at_right
       extension                   = 1250
       caption                     = 'Project Details'
     EXCEPTIONS
       cntl_error                  = 1
       cntl_system_error           = 2
       create_error                = 3
       lifetime_error              = 4
       lifetime_dynpro_dynpro_link = 5
       OTHERS                      = 6
       .

    CREATE OBJECT r_grid
     EXPORTING
       i_parent          = r_dock_container
     EXCEPTIONS
       error_cntl_create = 1
       error_cntl_init   = 2
       error_cntl_link   = 3
       error_dp_create   = 4
       OTHERS            = 5
       .

    gv_tab1 = abap_true.
         SELECT  project
               subproj
               object
               objecttype
               dxobj
               subdx
               busobj
               method
               messtype
               idoctype
               owner
               uname
               datum FROM /sapdmc/lsoatt INTO TABLE lt_tab1
               WHERE project EQ /sapdmc/lsoatt-project OR
                     subproj EQ /sapdmc/lsoatt-subproj OR
                     object EQ /sapdmc/lsoatt-object.

           SORT lt_tab1 BY subproj.

           CALL METHOD r_grid->set_table_for_first_display
             CHANGING
               it_outtab                     = lt_tab1
               it_fieldcatalog               = lt_fieldcat
             EXCEPTIONS
               invalid_parameter_combination = 1
               program_error                 = 2
               too_many_lines                = 3
               OTHERS                        = 4.

             CALL METHOD r_grid->refresh_table_display.
             CALL METHOD cl_gui_cfw=>flush.

ENDMODULE.                 " CREATE_OBJECTS  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  INITIAL_BASE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM INITIAL_BASE .
CLEAR lt_fieldcat[].

       PERFORM fill_fieldcat USING :
         'PROJECT' 'LT_TAB1' 'Project Name',
         'SUBPROJ'   'LT_TAB1' 'Subproject Name',
         'OBJECT'  'LT_TAB1'   'Object Name',
         'OBJECTTYPE'  'LT_TAB1'  'Object Type',
         'DXOBJ'   'LT_TAB1'   'Standard Batch I/P',
         'SUBDX'   'LT_TAB1'   'Standard Batch',
         'BUSOBJ'   'LT_TAB1'   'Business Obj',
         'METHOD'   'LT_TAB1'   'Method Name',
         'MESSTYPE'   'LT_TAB1'   'Message type',
         'IDOCTYPE'   'LT_TAB1'   'Idoc Type',
         'OWNER'   'LT_TAB1'   'Owner',
         'UNAME'   'LT_TAB1'   'User Name',
         'DATUM'   'LT_TAB1'   'Last Changed on'.

         call screen 999.

ENDFORM.                    " INITIAL_BASE

19 REPLIES 19

former_member184158
Active Contributor
0 Kudos

Hi,

there is node code, you have forgotten it !!

and I see no radio buttons, only pushbuttons.!!

Regards

Ibr

0 Kudos

Sorry due to privacy cant attach the code, And its push buttons not radio buttons.

apologize for the Typo. Any idea to resolve this case

0 Kudos

Hi,

so you have only one container, and w buttons,

Button1 displays ITAB1 on the container CONT

Button2 displays ITAB2 on the same container CONT;

so you can do it easly, as I think you have the same structrure,

you just need to change ITAB,

Data:

ITAB type table of sflight.,

ITAB1 type  table of sflight,

ITAB2 type table of sflight

When 'B1,

ITAB  = ITAB1.

call method  firstdisplay_ALV

or call method refresh_ALV

When 'B2'

ITAB = ITAB2.

call method  firstdisplay_ALV

or call method refresh_ALV

Endcase...

Ps: Method first_display should have the ITAB

Regards

Ibr

0 Kudos

Hi

I have pasted the code below, kindly check and help me out.

TYPE-POOLS slis.

TABLES: /sapdmc/lsoatt.

*SELECT-OPTIONS: p_projt FOR /sapdmc/lsoatt-project.

DATA: BEGIN OF ty_tab,

        project TYPE /sapdmc/ls_project,

        subproj TYPE /sapdmc/ls_project,

        object TYPE /sapdmc/ls_project,

        objecttype TYPE char2,

        dxobj TYPE char4,

        subdx TYPE char4,

        busobj TYPE oj_name,

        method TYPE swc_elem,

        messtype TYPE edi_mestyp,

        idoctype TYPE edi_idoctp,

        owner TYPE uname,

        uname TYPE uname,

        datum TYPE datum,

      END OF ty_tab,

      BEGIN OF ty_tab2,

        project TYPE /sapdmc/ls_project,

        subproj TYPE /sapdmc/ls_project,

        object TYPE /sapdmc/ls_project,

        posnr TYPE /sapdmc/ls_posnr,

        trgstr TYPE /sapdmc/ls_trgstr,

        trgfld TYPE /sapdmc/ls_trgfld,

        counter TYPE /sapdmc/ls_counter,

        line TYPE /sapdmc/ls_line,

        uname TYPE uname,

        datum TYPE datum,

        END OF ty_tab2.

DATA: "wa_tab1 type ty_tab,

      lt_tab1 LIKE STANDARD TABLE OF ty_tab,

      lt_tab2 LIKE STANDARD TABLE OF ty_tab2,

      lt_fieldcat TYPE lvc_t_fcat,

      wa_fieldcat TYPE lvc_s_fcat,

      it_tab2 LIKE STANDARD TABLE OF ty_tab2.

DATA:

* * User Command

ok_code TYPE sy-ucomm,

* * Reference Variable for Docking Container

r_dock_container TYPE REF TO cl_gui_docking_container,

* * Reference Variable for alv grid

r_grid TYPE REF TO cl_gui_alv_grid.

START-OF-SELECTION.

if sy-ucomm eq 'BASE'.

  PERFORM display_output.

  else.

    perform display_output2.

    endif.

*&---------------------------------------------------------------------*

*&      Form  display_output

*&---------------------------------------------------------------------*

*       text

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

FORM display_output.

  PERFORM fill_fieldcat USING :

        'PROJECT' 'LT_TAB1' 'Project Name',

        'SUBPROJ'   'LT_TAB1' 'Subproject Name',

        'OBJECT'  'LT_TAB1'   'Object Name',

        'OBJECTTYPE'  'LT_TAB1'  'Object Type',

        'DXOBJ'   'LT_TAB1'   'Standard Batch I/P',

        'SUBDX'   'LT_TAB1'   'Standard Batch',

        'BUSOBJ'   'LT_TAB1'   'Business Obj',

        'METHOD'   'LT_TAB1'   'Method Name',

        'MESSTYPE'   'LT_TAB1'   'Message type',

        'IDOCTYPE'   'LT_TAB1'   'Idoc Type',

        'OWNER'   'LT_TAB1'   'Owner',

        'UNAME'   'LT_TAB1'   'User Name',

        'DATUM'   'LT_TAB1'   'Last Changed on'.

  CALL SCREEN 999.

ENDFORM.                    "display_output

*&---------------------------------------------------------------------*

*&      Form  display_output2

*&---------------------------------------------------------------------*

*       text

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

FORM display_output2.

  PERFORM fill_fieldcat2 USING :

        'PROJECT' 'LT_TAB2'   'Project Name',

        'SUBPROJ' 'LT_TAB2'   'Subproject Name',

        'OBJECT'  'LT_TAB2'   'Object Name',

        'POSNR'   'LT_TAB2'   'Item',

        'TRGSTR'  'LT_TAB2'   'Target Strcuture',

        'TRGFLD'  'LT_TAB2'   'Target Field',

        'COUNTER' 'LT_TAB2'   'Counter',

        'LINE'    'LT_TAB2'   'Line',

        'UNAME'   'LT_TAB2'   'User Name',

        'DATUM'   'LT_TAB2'   'Last Changed on'.

  CALL SCREEN 999.

ENDFORM.                    "display_output2

*&---------------------------------------------------------------------*

*&      Form  fill_fieldcat

*&---------------------------------------------------------------------*

*       text

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

*      -->PV_FIELD   text

*      -->PV_TABNAME text

*      -->PV_COLTEXT text

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

FORM fill_fieldcat USING  pv_field TYPE any

                          pv_tabname TYPE any

                          pv_coltext TYPE any .

  wa_fieldcat-fieldname = pv_field.

  wa_fieldcat-tabname = pv_tabname.

  wa_fieldcat-coltext = pv_coltext.

  APPEND wa_fieldcat TO lt_fieldcat.

  CLEAR wa_fieldcat.

ENDFORM.                    "fill_fieldcat

*&---------------------------------------------------------------------*

*&      Form  fill_fieldcat2

*&---------------------------------------------------------------------*

*       text

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

*      -->PV_FIELD   text

*      -->PV_TABNAME text

*      -->PV_COLTEXT text

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

FORM fill_fieldcat2 USING  pv_field TYPE any

                          pv_tabname TYPE any

                          pv_coltext TYPE any .

  wa_fieldcat-fieldname = pv_field.

  wa_fieldcat-tabname = pv_tabname.

  wa_fieldcat-coltext = pv_coltext.

  APPEND wa_fieldcat TO lt_fieldcat.

  CLEAR wa_fieldcat.

ENDFORM.                    "fill_fieldcat

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

*  MODULE status_0500 OUTPUT

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

*

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

MODULE status_0999 OUTPUT.

  SET PF-STATUS 'LSMW'.

  SET TITLEBAR 'TITLE'.

    CREATE OBJECT r_grid

    EXPORTING

      i_parent          = r_dock_container

    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.

*CALL METHOD: r_grid->free.

*CALL METHOD cl_gui_cfw=>flush.

ENDMODULE.                    "status_0500 OUTPUT

"This module create the Docking container and hence its not

"Required to create a docking container in SE51

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

*  MODULE create_objects OUTPUT

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

*

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

MODULE create_objects INPUT.

*  CHECK r_dock_container IS INITIAL.

IF r_dock_container IS not INITIAL.

*  call METHOD: r_dock_container->free.

  CLEAR r_dock_container.

    IF sy-ucomm eq 'BASE'.

  CALL METHOD r_grid->set_table_for_first_display

    CHANGING

      it_outtab                     = lt_tab1

      it_fieldcatalog               = lt_fieldcat

    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 r_grid->refresh_table_display.

CALL METHOD cl_gui_cfw=>flush.

  ELSE.

  CALL METHOD r_grid->set_table_for_first_display

    CHANGING

      it_outtab                     = lt_tab2

      it_fieldcatalog               = lt_fieldcat

    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 r_grid->refresh_table_display.

  CALL METHOD cl_gui_cfw=>flush.

    ENDIF.

  endif.

IF r_dock_container IS INITIAL.

  CREATE OBJECT r_dock_container

    EXPORTING

      side                        = cl_gui_docking_container=>dock_at_right

      extension                   = 1250

      caption                     = 'Project Details'

    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 r_grid

    EXPORTING

      i_parent          = r_dock_container

    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.

  IF sy-ucomm eq 'BASE'.

  CALL METHOD r_grid->set_table_for_first_display

    CHANGING

      it_outtab                     = lt_tab1

      it_fieldcatalog               = lt_fieldcat

    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 r_grid->refresh_table_display.

CALL METHOD cl_gui_cfw=>flush.

  ELSE.

*call METHOD: r_dock_container->free.

  CALL METHOD r_grid->set_table_for_first_display

    CHANGING

      it_outtab                     = lt_tab2

      it_fieldcatalog               = lt_fieldcat

    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 r_grid->refresh_table_display.

  CALL METHOD cl_gui_cfw=>flush.

    ENDIF.

*    ELSE.

**      CALL METHOD r_grid->refresh_table_display.

*      call METHOD: r_dock_container->free.

    ENDIF.

ENDMODULE.                    "create_objects OUTPUT

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

*  MODULE user_command_0500 INPUT

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

*

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

MODULE user_command_0999 INPUT.

  CASE SY-UCOMM.

    WHEN 'BASE'.

        SELECT  project

              subproj

              object

              objecttype

              dxobj

              subdx

              busobj

              method

              messtype

              idoctype

              owner

              uname

              datum FROM /sapdmc/lsoatt INTO TABLE lt_tab1

              WHERE project EQ /sapdmc/lsoatt-project OR

                    subproj EQ /sapdmc/lsoatt-subproj OR

                    object EQ /sapdmc/lsoatt-object.

        SORT lt_tab1 BY subproj.

*    WHEN 'ABAP'.

*

*      SELECT

*        project

*        subproj

*        object

*        posnr

*        trgstr

*        trgfld

*        counter

*        line

*        uname

*        datum FROM /sapdmc/lsocod INTO TABLE lt_tab2

*        WHERE project EQ /sapdmc/lsoatt-project OR

*              subproj EQ /sapdmc/lsoatt-subproj OR

*              object EQ /sapdmc/lsoatt-object.

    WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.

      LEAVE TO SCREEN 0.

  ENDCASE. " CASE ok_code.

  endmodule.

MODULE user_command_0991 INPUT.

  CASE sy-ucomm.

        WHEN 'BSBO'.

*      ELSEIF /sapdmc/lsoatt-busobj IS NOT INITIAL.

*

      SELECT

        project

        subproj

        object

        posnr

        trgstr

        trgfld

        counter

        line

        uname

        datum FROM /sapdmc/lsocod INTO TABLE lt_tab2

        WHERE project EQ /sapdmc/lsoatt-project OR

              subproj EQ /sapdmc/lsoatt-subproj OR

              object EQ /sapdmc/lsoatt-object.

*&---------------------------------------------------------------------*

*&      Form  display_output2

*&---------------------------------------------------------------------*

*       text

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

      "display_output2

  ENDCASE.

ENDMODULE.                    "user_command_0500 INPUT

former_member184158
Active Contributor
0 Kudos

Hi,

I have done it without docking,

so I will try it out tomorrow to do it with docking, but today I don't have time sorry.


REPORT zibo_test1.


TYPE-POOLS slis.

TABLES: /sapdmc/lsoatt.
DATA gv_tab1 TYPE abap_bool.
*SELECT-OPTIONS: p_projt FOR /sapdmc/lsoatt-project.

DATA: BEGIN OF ty_tab,
        project
TYPE /sapdmc/ls_project,
        subproj
TYPE /sapdmc/ls_project,
        object
TYPE /sapdmc/ls_project,
        objecttype
TYPE char2,
        dxobj
TYPE char4,
        subdx
TYPE char4,
        busobj
TYPE oj_name,
       
method TYPE swc_elem,
        messtype
TYPE edi_mestyp,
        idoctype
TYPE edi_idoctp,
        owner
TYPE uname,
        uname
TYPE uname,
        datum
TYPE datum,
     
END OF ty_tab,


     
BEGIN OF ty_tab2,
        project
TYPE /sapdmc/ls_project,
        subproj
TYPE /sapdmc/ls_project,
        object
TYPE /sapdmc/ls_project,
        posnr
TYPE /sapdmc/ls_posnr,
        trgstr
TYPE /sapdmc/ls_trgstr,
        trgfld
TYPE /sapdmc/ls_trgfld,
        counter
TYPE /sapdmc/ls_counter,
       
line TYPE /sapdmc/ls_line,
        uname
TYPE uname,
        datum
TYPE datum,
       
END OF ty_tab2.





DATA: "wa_tab1 type ty_tab,
      lt_tab1
LIKE STANDARD TABLE OF ty_tab,
      lt_tab2
LIKE STANDARD TABLE OF ty_tab2,
      lt_fieldcat
TYPE lvc_t_fcat,
      wa_fieldcat
TYPE lvc_s_fcat,
      it_tab2
LIKE STANDARD TABLE OF ty_tab2.

DATA:* * User Command
ok_code
TYPE sy-ucomm,* * Reference Variable for Docking Container
r_dock_container
TYPE REF TO cl_gui_docking_container,
r_cont 
TYPE REF TO cl_gui_custom_container,* * Reference Variable for alv grid
r_grid
TYPE REF TO cl_gui_alv_grid.

START-OF-SELECTION.


 
IF sy-ucomm EQ 'BASE'.
   
PERFORM display_output.
 
ELSE.
   
PERFORM display_output2.
 
ENDIF.

*&---------------------------------------------------------------------**&      Form  display_output*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM display_output.


 
PERFORM fill_fieldcat USING :
       
'PROJECT' 'LT_TAB1' 'Project Name',
       
'SUBPROJ'   'LT_TAB1' 'Subproject Name',
       
'OBJECT'  'LT_TAB1'   'Object Name',
       
'OBJECTTYPE'  'LT_TAB1'  'Object Type',
       
'DXOBJ'   'LT_TAB1'   'Standard Batch I/P',
       
'SUBDX'   'LT_TAB1'   'Standard Batch',
       
'BUSOBJ'   'LT_TAB1'   'Business Obj',
       
'METHOD'   'LT_TAB1'   'Method Name',
       
'MESSTYPE'   'LT_TAB1'   'Message type',
       
'IDOCTYPE'   'LT_TAB1'   'Idoc Type',
       
'OWNER'   'LT_TAB1'   'Owner',
       
'UNAME'   'LT_TAB1'   'User Name',
       
'DATUM'   'LT_TAB1'   'Last Changed on'.
 
CALL SCREEN 999.ENDFORM.                    "display_output

*&---------------------------------------------------------------------**&      Form  display_output2*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM display_output2.


 
PERFORM fill_fieldcat2 USING :
       
'PROJECT' 'LT_TAB2'   'Project Name',
       
'SUBPROJ' 'LT_TAB2'   'Subproject Name',
       
'OBJECT'  'LT_TAB2'   'Object Name',
       
'POSNR'   'LT_TAB2'   'Item',
       
'TRGSTR'  'LT_TAB2'   'Target Strcuture',
       
'TRGFLD'  'LT_TAB2'   'Target Field',
       
'COUNTER' 'LT_TAB2'   'Counter',
       
'LINE'    'LT_TAB2'   'Line',
       
'UNAME'   'LT_TAB2'   'User Name',
       
'DATUM'   'LT_TAB2'   'Last Changed on'.
 
CALL SCREEN 999.

ENDFORM.                    "display_output2



*&---------------------------------------------------------------------**&      Form  fill_fieldcat*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->PV_FIELD   text*      -->PV_TABNAME text*      -->PV_COLTEXT text*----------------------------------------------------------------------*FORM fill_fieldcat USING  pv_field TYPE any
                          pv_tabname
TYPE any
                          pv_coltext
TYPE any .


  wa_fieldcat
-fieldname = pv_field.
  wa_fieldcat
-tabname = pv_tabname.
  wa_fieldcat
-coltext = pv_coltext.
 
APPEND wa_fieldcat TO lt_fieldcat.
 
CLEAR wa_fieldcat.

ENDFORM.                    "fill_fieldcat

*&---------------------------------------------------------------------**&      Form  fill_fieldcat2*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->PV_FIELD   text*      -->PV_TABNAME text*      -->PV_COLTEXT text*----------------------------------------------------------------------*FORM fill_fieldcat2 USING  pv_field TYPE any
                          pv_tabname
TYPE any
                          pv_coltext
TYPE any .


  wa_fieldcat
-fieldname = pv_field.
  wa_fieldcat
-tabname = pv_tabname.
  wa_fieldcat
-coltext = pv_coltext.
 
APPEND wa_fieldcat TO lt_fieldcat.
 
CLEAR wa_fieldcat.

ENDFORM.                    "fill_fieldcat*----------------------------------------------------------------------**  MODULE status_0500 OUTPUT*----------------------------------------------------------------------***----------------------------------------------------------------------*MODULE status_0999 OUTPUT.
 
SET PF-STATUS 'LSMW'.
 
SET TITLEBAR 'TITLE'.

 
IF r_cont IS INITIAL.
   
CREATE OBJECT r_cont
     
EXPORTING*      parent                      =
        container_name             
= 'CONT'      .  .
  
   
CREATE OBJECT r_grid
     
EXPORTING
        i_parent         
= r_cont
     
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.

 
ENDIF.


 
IF gv_tab1 = abap_true.
   
CALL METHOD r_grid->set_table_for_first_display
     
CHANGING
        it_outtab                    
= lt_tab1
        it_fieldcatalog              
= lt_fieldcat
     
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.

 
ELSE.
   
CALL METHOD r_grid->set_table_for_first_display
     
CHANGING
        it_outtab                    
= lt_tab2
        it_fieldcatalog              
= lt_fieldcat
     
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.
 
ENDIF.*CALL METHOD: r_grid->free.*CALL METHOD cl_gui_cfw=>flush.




ENDMODULE.                    "status_0500 OUTPUT



"This module create the Docking container and hence its not"Required to create a docking container in SE51*----------------------------------------------------------------------**  MODULE create_objects OUTPUT*----------------------------------------------------------------------***----------------------------------------------------------------------*MODULE create_objects INPUT.


ENDMODULE.                    "create_objects OUTPUT

*----------------------------------------------------------------------**  MODULE user_command_0500 INPUT*----------------------------------------------------------------------***----------------------------------------------------------------------*MODULE user_command_0999 INPUT.
 
CASE sy-ucomm.
   
WHEN 'BASE'.
      gv_tab1
= abap_true.

     
SELECT  project
            subproj
            object
            objecttype
            dxobj
            subdx
            busobj
           
method
            messtype
            idoctype
            owner
            uname
            datum
FROM /sapdmc/lsoatt INTO TABLE lt_tab1 UP TO 5 ROWS.



     
SORT lt_tab1 BY subproj.

   
WHEN 'BSBO'.

     
SELECT
         project
         subproj
         object
         posnr
         trgstr
         trgfld
         counter
        
line
         uname
         datum
FROM /sapdmc/lsocod INTO TABLE lt_tab2 UP TO 20 ROWS.
      gv_tab1
= abap_false.

   
WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.
     
LEAVE TO SCREEN 0.
 
ENDCASE. " CASE ok_code.ENDMODULE.                    "user_command_0999 INPUT

*----------------------------------------------------------------------**  MODULE user_command_0991 INPUT*----------------------------------------------------------------------***----------------------------------------------------------------------*MODULE user_command_0991 INPUT.


ENDMODULE.                    "user_command_0500 INPUT

former_member184158
Active Contributor
0 Kudos

Hi,

I hope this code, could help you, I have created with docking_container,

you can do with one ALV, and the other one you don't need it if its your requirement, try to change it as you can, and if face any problem , just let us to know



TABLES:   /sapdmc/lsoatt.
DATA: gr_docking          TYPE REF TO cl_gui_docking_container,
      gr_split           
TYPE REF TO cl_gui_easy_splitter_container,
      gr_alv_ALV1        
TYPE REF TO cl_gui_alv_grid,
      gr_alv_ALV2        
TYPE REF TO cl_gui_alv_grid,
      gr_cont_top        
TYPE REF TO cl_gui_container,
      gr_cont_but        
TYPE REF TO cl_gui_container.
DATA: gt_tab1 TYPE TABLE OF /sapdmc/lsoatt ,
      gt_tab2
TYPE TABLE OF /sapdmc/lsoatt.
PARAMETERS: p_proj TYPE  /sapdmc/lsoatt-project .SELECT-OPTIONS: s_sub FOR  /sapdmc/lsoatt-subproj .SELECT-OPTIONS: s_object FOR /sapdmc/lsoatt-object.SELECTION-SCREEN PUSHBUTTON /15(20) p_button USER-COMMAND base.SELECTION-SCREEN PUSHBUTTON /40(20) p_butto2 USER-COMMAND ibo.
INITIALIZATION.
  p_button
= '@42@ Select 1'.

   p_butto2
= '@42@ Select 2'.
* DockingContainer erzeugen
 
CREATE OBJECT gr_docking
   
EXPORTING
      side     
= cl_gui_docking_container=>dock_at_right
      extension
= 850.
* DockingContainer splitten
 
CREATE OBJECT gr_split
   
EXPORTING
      parent     
= gr_docking
      orientation
= 0.

  gr_cont_top
= gr_split->top_left_container.
  gr_cont_but
= gr_split->bottom_right_container.* 1. ALV
 
CREATE OBJECT gr_alv_alv1
   
EXPORTING
      i_parent     
= gr_cont_top
      i_appl_events
= 'X'.

 
CALL METHOD gr_alv_alv1->set_table_for_first_display
   
EXPORTING
      i_save          
= space
      i_default       
= 'X'
      i_structure_name
= '/SAPDMC/LSOATT'
   
CHANGING
      it_outtab       
= gt_tab1
   
EXCEPTIONS
     
OTHERS           = 4.
* 2. ALV
 
CREATE OBJECT gr_alv_alv2
   
EXPORTING
      i_parent     
= gr_cont_but
      i_appl_events
= 'X'.

 
CALL METHOD gr_alv_alv2->set_table_for_first_display
   
EXPORTING
      i_save          
= space
      i_default       
= 'X'
      i_structure_name
= '/SAPDMC/LSOATT'
   
CHANGING
      it_outtab       
= gt_tab2
   
EXCEPTIONS
     
OTHERS           = 4.
AT SELECTION-SCREEN.
 
IF sy-ucomm = 'BASE'.
   
SELECT  *
     
FROM /sapdmc/lsoatt INTO TABLE gt_tab1 UP TO 5 ROWS.

    gr_alv_alv1
->refresh_table_display( ).

 
ELSEIF sy-ucomm = 'IBO'.
   
SELECT  *
    
FROM /sapdmc/lsoatt INTO TABLE gt_tab2 UP TO 10 ROWS.

    gr_alv_alv2
->refresh_table_display( ).


 
ENDIF.
START-OF-SELECTION.



Regards

Ibrahim

0 Kudos

HI Ibrahim,

Thanks so much for your time, but i used the flag variables to display the output by referring your code, but still face the same issue.

Again when I press the any button for the second time its not docking at right and not refreshing the first internal table columns. Please find the code which I have corrected by referring your code. Kindly help me on this again from your end.

REPORT  zlsmw.

TYPE-POOLS slis.

TABLES: /sapdmc/lsoatt.

*SELECT-OPTIONS: p_projt FOR /sapdmc/lsoatt-project.

DATA: BEGIN OF ty_tab,

        project TYPE /sapdmc/ls_project,

        subproj TYPE /sapdmc/ls_project,

        object TYPE /sapdmc/ls_project,

        objecttype TYPE char2,

        dxobj TYPE char4,

        subdx TYPE char4,

        busobj TYPE oj_name,

        method TYPE swc_elem,

        messtype TYPE edi_mestyp,

        idoctype TYPE edi_idoctp,

        owner TYPE uname,

        uname TYPE uname,

        datum TYPE datum,

      END OF ty_tab,

      BEGIN OF ty_tab2,

        project TYPE /sapdmc/ls_project,

        subproj TYPE /sapdmc/ls_project,

        object TYPE /sapdmc/ls_project,

        posnr TYPE /sapdmc/ls_posnr,

        trgstr TYPE /sapdmc/ls_trgstr,

        trgfld TYPE /sapdmc/ls_trgfld,

        counter TYPE /sapdmc/ls_counter,

        line TYPE /sapdmc/ls_line,

        uname TYPE uname,

        datum TYPE datum,

        END OF ty_tab2.

DATA: "wa_tab1 type ty_tab,

      lt_tab1 LIKE STANDARD TABLE OF ty_tab,

      lt_tab2 LIKE STANDARD TABLE OF ty_tab2,

      lt_fieldcat TYPE lvc_t_fcat,

      wa_fieldcat TYPE lvc_s_fcat,

      it_tab2 LIKE STANDARD TABLE OF ty_tab2.

DATA:

* * User Command

ok_code TYPE sy-ucomm,

* * Reference Variable for Docking Container

r_dock_container TYPE REF TO cl_gui_docking_container,

* * Reference Variable for alv grid

r_grid TYPE REF TO cl_gui_alv_grid.

data  gv_tab1 type c.

START-OF-SELECTION.

if sy-ucomm eq 'BASE'.

  PERFORM display_output.

  else.

    perform display_output2.

    endif.

*&---------------------------------------------------------------------*

*&      Form  display_output

*&---------------------------------------------------------------------*

*       text

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

FORM display_output.

  PERFORM fill_fieldcat USING :

        'PROJECT' 'LT_TAB1' 'Project Name',

        'SUBPROJ'   'LT_TAB1' 'Subproject Name',

        'OBJECT'  'LT_TAB1'   'Object Name',

        'OBJECTTYPE'  'LT_TAB1'  'Object Type',

        'DXOBJ'   'LT_TAB1'   'Standard Batch I/P',

        'SUBDX'   'LT_TAB1'   'Standard Batch',

        'BUSOBJ'   'LT_TAB1'   'Business Obj',

        'METHOD'   'LT_TAB1'   'Method Name',

        'MESSTYPE'   'LT_TAB1'   'Message type',

        'IDOCTYPE'   'LT_TAB1'   'Idoc Type',

        'OWNER'   'LT_TAB1'   'Owner',

        'UNAME'   'LT_TAB1'   'User Name',

        'DATUM'   'LT_TAB1'   'Last Changed on'.

  CALL SCREEN 999.

ENDFORM.                    "display_output

*&---------------------------------------------------------------------*

*&      Form  display_output2

*&---------------------------------------------------------------------*

*       text

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

FORM display_output2.

  PERFORM fill_fieldcat2 USING :

        'PROJECT' 'LT_TAB2'   'Project Name',

        'SUBPROJ' 'LT_TAB2'   'Subproject Name',

        'OBJECT'  'LT_TAB2'   'Object Name',

        'POSNR'   'LT_TAB2'   'Item',

        'TRGSTR'  'LT_TAB2'   'Target Strcuture',

        'TRGFLD'  'LT_TAB2'   'Target Field',

        'COUNTER' 'LT_TAB2'   'Counter',

        'LINE'    'LT_TAB2'   'Line',

        'UNAME'   'LT_TAB2'   'User Name',

        'DATUM'   'LT_TAB2'   'Last Changed on'.

  CALL SCREEN 999.

ENDFORM.                    "display_output2

*&---------------------------------------------------------------------*

*&      Form  fill_fieldcat

*&---------------------------------------------------------------------*

*       text

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

*      -->PV_FIELD   text

*      -->PV_TABNAME text

*      -->PV_COLTEXT text

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

FORM fill_fieldcat USING  pv_field TYPE any

                          pv_tabname TYPE any

                          pv_coltext TYPE any .

  wa_fieldcat-fieldname = pv_field.

  wa_fieldcat-tabname = pv_tabname.

  wa_fieldcat-coltext = pv_coltext.

  APPEND wa_fieldcat TO lt_fieldcat.

  CLEAR wa_fieldcat.

ENDFORM.                    "fill_fieldcat

*&---------------------------------------------------------------------*

*&      Form  fill_fieldcat2

*&---------------------------------------------------------------------*

*       text

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

*      -->PV_FIELD   text

*      -->PV_TABNAME text

*      -->PV_COLTEXT text

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

FORM fill_fieldcat2 USING  pv_field TYPE any

                          pv_tabname TYPE any

                          pv_coltext TYPE any .

  wa_fieldcat-fieldname = pv_field.

  wa_fieldcat-tabname = pv_tabname.

  wa_fieldcat-coltext = pv_coltext.

  APPEND wa_fieldcat TO lt_fieldcat.

  CLEAR wa_fieldcat.

ENDFORM.                    "fill_fieldcat

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

*  MODULE status_0500 OUTPUT

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

*

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

MODULE status_0999 OUTPUT.

  SET PF-STATUS 'LSMW'.

  SET TITLEBAR 'TITLE'.

    CREATE OBJECT r_grid

    EXPORTING

      i_parent          = r_dock_container

    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.

*CALL METHOD: r_grid->free.

*CALL METHOD cl_gui_cfw=>flush.

ENDMODULE.                    "status_0500 OUTPUT

"This module create the Docking container and hence its not

"Required to create a docking container in SE51

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

*  MODULE create_objects OUTPUT

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

*

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

MODULE create_objects INPUT.

IF r_dock_container IS INITIAL or r_dock_container is not INITIAL.

  CREATE OBJECT r_dock_container

    EXPORTING

      side                        = cl_gui_docking_container=>dock_at_right

      extension                   = 1250

      caption                     = 'Project Details'

    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 r_grid

    EXPORTING

      i_parent          = r_dock_container

    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.

*  IF sy-ucomm eq 'BASE'.

IF gv_tab1 = abap_true.

  CALL METHOD r_grid->set_table_for_first_display

    CHANGING

      it_outtab                     = lt_tab1

      it_fieldcatalog               = lt_fieldcat

    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 r_grid->refresh_table_display.

CALL METHOD cl_gui_cfw=>flush.

  ELSE.

*call METHOD: r_dock_container->free.

  CALL METHOD r_grid->set_table_for_first_display

    CHANGING

      it_outtab                     = lt_tab2

      it_fieldcatalog               = lt_fieldcat

    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 r_grid->refresh_table_display.

  CALL METHOD cl_gui_cfw=>flush.

    ENDIF.

*    ELSE.

**      CALL METHOD r_grid->refresh_table_display.

*      call METHOD: r_dock_container->free.

    ENDIF.

ENDMODULE.                    "create_objects OUTPUT

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

*  MODULE user_command_0500 INPUT

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

*

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

MODULE user_command_0999 INPUT.

  CASE SY-UCOMM.

    WHEN 'BASE'.

gv_tab1 = abap_true.

        SELECT  project

              subproj

              object

              objecttype

              dxobj

              subdx

              busobj

              method

              messtype

              idoctype

              owner

              uname

              datum FROM /sapdmc/lsoatt INTO TABLE lt_tab1

              WHERE project EQ /sapdmc/lsoatt-project OR

                    subproj EQ /sapdmc/lsoatt-subproj OR

                    object EQ /sapdmc/lsoatt-object.

        SORT lt_tab1 BY subproj.

*    WHEN 'ABAP'.

*

*      SELECT

*        project

*        subproj

*        object

*        posnr

*        trgstr

*        trgfld

*        counter

*        line

*        uname

*        datum FROM /sapdmc/lsocod INTO TABLE lt_tab2

*        WHERE project EQ /sapdmc/lsoatt-project OR

*              subproj EQ /sapdmc/lsoatt-subproj OR

*              object EQ /sapdmc/lsoatt-object.

    WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.

      LEAVE TO SCREEN 0.

  ENDCASE. " CASE ok_code.

  endmodule.

MODULE user_command_0991 INPUT.

  CASE sy-ucomm.

        WHEN 'BSBO'.

*      ELSEIF /sapdmc/lsoatt-busobj IS NOT INITIAL.

*

      SELECT

        project

        subproj

        object

        posnr

        trgstr

        trgfld

        counter

        line

        uname

        datum FROM /sapdmc/lsocod INTO TABLE lt_tab2

        WHERE project EQ /sapdmc/lsoatt-project OR

              subproj EQ /sapdmc/lsoatt-subproj OR

              object EQ /sapdmc/lsoatt-object.

gv_tab1 = abap_false.

*&---------------------------------------------------------------------*

*&      Form  display_output2

*&---------------------------------------------------------------------*

*       text

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

      "display_output2

  ENDCASE.

ENDMODULE.                    "user_command_0500 INPUT

0 Kudos

Hi,

I have tried it out, and I got it,

so you have written

IF r_dock_container IS INITIAL or r_dock_container is not INITIAL.  ( this is false) he creates it every time, because of this it happend the overlapping

it should be like this ,

IF r_dock_container IS INITIAL or r_dock_container is  INITIAL.

without NOT; it should be null, it runs only one time

try it please and let me to know if it works with,

Regards

Ibrahim

0 Kudos

Hi Ibrahim,

I tried with that too but no luck. The reason I put it as not initial because, When i press the first button the output is getting displayed successfully, since the object r_dock_container is initial for the first run.

Once the first run has been completed, the object r_dock_container is no more initial, since in the first push button run values has been assigned to it. So ALV is getting displayed only for the one push button which is being clicked first.

In order to make the push button work for the second click, I write that code if its not initial, then also docking should work.

But here the docking is working but getting displayed at left instead of right.

please guide me further

Regards,

Rufus Samuel

0 Kudos

Hi

I have tried it out, and it works, and are displayed at right.

just try to avoid to create again the container.

in my program, it works, and with this condation, the container has been only 1 time created, just try this one. It works with me without any problem,

you can copy it as Text and try it out. Hopfully it could help you.,

What I have done here

1.  IF r_dock_container IS INITIAL or r_dock_container is  INITIAL.

2. *check r_grid is INITIAL.
 
IF r_grid IS NOT INITIAL.
    r_grid
->free( ).
 
ENDIF.


these statements should help you to get only one container in right side, and one ALV-Grid with different contents based on the condiation, Buttons, (ITAB1, ITAB2)




*&---------------------------------------------------------------------*
*& Report  ZIBO_PG_TEST1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zibo_pg_test1.
TYPE-POOLS slis.


TABLES: /sapdmc/lsoatt.


*SELECT-OPTIONS: p_projt FOR /sapdmc/lsoatt-project.


DATA: BEGIN OF ty_tab,
        project
TYPE /sapdmc/ls_project,
        subproj
TYPE /sapdmc/ls_project,
        object
TYPE /sapdmc/ls_project,
        objecttype
TYPE char2,
        dxobj
TYPE char4,
        subdx
TYPE char4,
        busobj
TYPE oj_name,
       
method TYPE swc_elem,
        messtype
TYPE edi_mestyp,
        idoctype
TYPE edi_idoctp,
        owner
TYPE uname,
        uname
TYPE uname,
        datum
TYPE datum,
     
END OF ty_tab,


     
BEGIN OF ty_tab2,
        project
TYPE /sapdmc/ls_project,
        subproj
TYPE /sapdmc/ls_project,
        object
TYPE /sapdmc/ls_project,
        posnr
TYPE /sapdmc/ls_posnr,
        trgstr
TYPE /sapdmc/ls_trgstr,
        trgfld
TYPE /sapdmc/ls_trgfld,
        counter
TYPE /sapdmc/ls_counter,
       
line TYPE /sapdmc/ls_line,
        uname
TYPE uname,
        datum
TYPE datum,
       
END OF ty_tab2.






DATA: "wa_tab1 type ty_tab,
      lt_tab1
LIKE STANDARD TABLE OF ty_tab,
      lt_tab2
LIKE STANDARD TABLE OF ty_tab2,
      lt_fieldcat
TYPE lvc_t_fcat,
      wa_fieldcat
TYPE lvc_s_fcat,
      it_tab2
LIKE STANDARD TABLE OF ty_tab2.


DATA:
* * User Command
ok_code
TYPE sy-ucomm,
* * Reference Variable for Docking Container
r_dock_container
TYPE REF TO cl_gui_docking_container,
* * Reference Variable for alv grid
r_grid
TYPE REF TO cl_gui_alv_grid.
DATA  gv_tab1 TYPE c.


START-OF-SELECTION.


 
IF sy-ucomm EQ 'BASE'.
   
PERFORM display_output.
 
ELSE.
   
PERFORM display_output2.
 
ENDIF.


*&---------------------------------------------------------------------*
*&      Form  display_output
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_output.


 
PERFORM fill_fieldcat USING :
       
'PROJECT' 'LT_TAB1' 'Project Name',
       
'SUBPROJ'   'LT_TAB1' 'Subproject Name',
       
'OBJECT'  'LT_TAB1'   'Object Name',
       
'OBJECTTYPE'  'LT_TAB1'  'Object Type',
       
'DXOBJ'   'LT_TAB1'   'Standard Batch I/P',
       
'SUBDX'   'LT_TAB1'   'Standard Batch',
       
'BUSOBJ'   'LT_TAB1'   'Business Obj',
       
'METHOD'   'LT_TAB1'   'Method Name',
       
'MESSTYPE'   'LT_TAB1'   'Message type',
       
'IDOCTYPE'   'LT_TAB1'   'Idoc Type',
       
'OWNER'   'LT_TAB1'   'Owner',
       
'UNAME'   'LT_TAB1'   'User Name',
       
'DATUM'   'LT_TAB1'   'Last Changed on'.
 
CALL SCREEN 999.
ENDFORM.                    "display_output


*&---------------------------------------------------------------------*
*&      Form  display_output2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_output2.


 
PERFORM fill_fieldcat2 USING :
       
'PROJECT' 'LT_TAB2'   'Project Name',
       
'SUBPROJ' 'LT_TAB2'   'Subproject Name',
       
'OBJECT'  'LT_TAB2'   'Object Name',
       
'POSNR'   'LT_TAB2'   'Item',
       
'TRGSTR'  'LT_TAB2'   'Target Strcuture',
       
'TRGFLD'  'LT_TAB2'   'Target Field',
       
'COUNTER' 'LT_TAB2'   'Counter',
       
'LINE'    'LT_TAB2'   'Line',
       
'UNAME'   'LT_TAB2'   'User Name',
       
'DATUM'   'LT_TAB2'   'Last Changed on'.
 
CALL SCREEN 999.


ENDFORM.                    "display_output2




*&---------------------------------------------------------------------*
*&      Form  fill_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_FIELD   text
*      -->PV_TABNAME text
*      -->PV_COLTEXT text
*----------------------------------------------------------------------*
FORM fill_fieldcat USING  pv_field TYPE any
                          pv_tabname
TYPE any
                          pv_coltext
TYPE any .


  wa_fieldcat
-fieldname = pv_field.
  wa_fieldcat
-tabname = pv_tabname.
  wa_fieldcat
-coltext = pv_coltext.
 
APPEND wa_fieldcat TO lt_fieldcat.
 
CLEAR wa_fieldcat.


ENDFORM.                    "fill_fieldcat


*&---------------------------------------------------------------------*
*&      Form  fill_fieldcat2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_FIELD   text
*      -->PV_TABNAME text
*      -->PV_COLTEXT text
*----------------------------------------------------------------------*
FORM fill_fieldcat2 USING  pv_field TYPE any
                          pv_tabname
TYPE any
                          pv_coltext
TYPE any .


  wa_fieldcat
-fieldname = pv_field.
  wa_fieldcat
-tabname = pv_tabname.
  wa_fieldcat
-coltext = pv_coltext.
 
APPEND wa_fieldcat TO lt_fieldcat.
 
CLEAR wa_fieldcat.


ENDFORM.                    "fill_fieldcat
*----------------------------------------------------------------------*
*  MODULE status_0500 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE status_0999 OUTPUT.
 
SET PF-STATUS '0999'.
 
SET TITLEBAR 'TITLE'.

 
PERFORM create_objects_ibo.
*check r_grid is INITIAL.
 
IF r_grid IS NOT INITIAL.
    r_grid
->free( ).
 
ENDIF.
 
CREATE OBJECT r_grid
   
EXPORTING
      i_parent         
= r_dock_container
   
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.
 
SELECT * FROM  /sapdmc/lsoatt
   
INTO CORRESPONDING FIELDS OF TABLE lt_tab1.

 
SELECT * FROM  /sapdmc/lsoatt
   
INTO CORRESPONDING FIELDS OF TABLE lt_tab2 UP TO 5 ROWS.



 
IF sy-ucomm = 'BASE'.
   
CALL METHOD r_grid->set_table_for_first_display
     
CHANGING
        it_outtab                    
= lt_tab1
        it_fieldcatalog              
= lt_fieldcat
     
EXCEPTIONS
        invalid_parameter_combination
= 1
        program_error                
= 2
        too_many_lines               
= 3
       
OTHERS                        = 4.


 
ELSE.
   
CALL METHOD r_grid->set_table_for_first_display
     
CHANGING
        it_outtab                    
= lt_tab2
        it_fieldcatalog              
= lt_fieldcat
     
EXCEPTIONS
        invalid_parameter_combination
= 1
        program_error                
= 2
        too_many_lines               
= 3
       
OTHERS                        = 4.
 
ENDIF.



ENDMODULE.                    "status_0500 OUTPUT



*----------------------------------------------------------------------*
MODULE user_command_0991 INPUT.
 
CASE sy-ucomm.
   
WHEN 'BSBO'.




*      ELSEIF /sapdmc/lsoatt-busobj IS NOT INITIAL.
*
     
SELECT
        project
        subproj
        object
        posnr
        trgstr
        trgfld
        counter
       
line
        uname
        datum
FROM /sapdmc/lsocod INTO TABLE lt_tab2
       
WHERE project EQ /sapdmc/lsoatt-project OR
              subproj
EQ /sapdmc/lsoatt-subproj OR
              object
EQ /sapdmc/lsoatt-object.


      gv_tab1
= abap_false.


*&---------------------------------------------------------------------*
*&      Form  display_output2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
     
"display_output2


 
ENDCASE.




ENDMODULE.                    "user_command_0500 INPUT


*&---------------------------------------------------------------------*
*&      Form  create_objects_ibo
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM create_objects_ibo.


 
IF r_dock_container IS INITIAL OR r_dock_container IS INITIAL.
   
IF r_dock_container IS NOT INITIAL.
      r_dock_container
->free( ).
   
ENDIF.
   
CREATE OBJECT r_dock_container
     
EXPORTING
        side                       
= cl_gui_docking_container=>dock_at_right
        extension                  
= 1250
        caption                    
= 'Project Details'
     
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.

 
ENDIF.

*
*
ENDFORM.                    "create_objects_ibo



#



Regards

Ibr

0 Kudos

Hi,

Create Splitter container with 2 rows and 1 column.

And call both the containers for separate rows.

*Create Splitter Container

       
CREATE OBJECT go_splitter

         
EXPORTING

            parent           
= go_container

           
rows              2

            columns          
= 1

         
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.

     
ENDIF.

     
IF go_splitter IS NOT INITIAL.

* Split the custom_container to two containers and move the reference

        CALL METHOD go_splitter->get_container

         
EXPORTING

            row      
= 1

            column   
= 1

          RECEIVING

            container
= go_parent_doc.



       
CALL METHOD go_splitter->get_container

         
EXPORTING

            row      
= 2

            column   
= 1

          RECEIVING

            container
= go_parent_grid.

* Set height for g_parent_html

       
CALL METHOD go_splitter->set_row_height

         
EXPORTING

           
id     = 1

            height
= 32.

     
ENDIF.

Regards,

SPR


0 Kudos

Hi Saranya,

Thanks for the info. In my case I want to use docking container and in the output I need to use four buttons and display the internal table values when the required button is clicked.

Each and every time when i click on the push buttons, Grid should get refresh and display the output for that respective internal table values alone.

I have just done with half the requirment by creating two push buttons, But still its not working for two.

My requirement is not with slipt contanier.

Kindly provide your ideas.

Regards,

Rufus Samuel

0 Kudos

Hi Rufus,

Sorry now I got your issue.

Please remove the Create r_grid FM from Module status_0999.

And put a condition IF r_dock_container IS INITIAL. before the CREATE OBJECT r_dock_container. and ENDIF after RGRID creation.

This is the only change required in your program,

Module status_0999 OUTPUT.

 
SET PF-STATUS 'LSMW'.
 
SET TITLEBAR 'TITLE'.
*CALL METHOD: r_grid->free.
*CALL METHOD cl_gui_cfw=>flush.
ENDMODULE.                    "status_0500 OUTPUT

Module create_objects OUTPUT.
IF r_dock_container IS INITIAL.

Create OBJECT r_dock_container. ------etc

-------------------------

----------------

Create OBJECT r_grid -------

--------

if sy-subrc <> 0.

-------

ENDIF.

ENDIF.

Please try and let me know.

Regards,

SPR

0 Kudos

Hi,

Are you freeing the original objects the second and subsequent times you go round the loop ?

Unfortunately I cannot get any output from your code,  however,  it appears to me that when you display each table you are calling screen 999 repeatedly.  Personally,  I would do all the decision making,  field cat filling,  processing etc etc as modules in 999's PAI or PBO.

Regards

Rich

0 Kudos

Hi Richard,

he can do it with small code, but I could not understand why he insists only on his style and logic

So I have tried to help him with his own logic and code, it works with me but anscheinend he could not understand it or he does not want it, I dont' know

Regards,

Ibr.

0 Kudos


Hi Ibr,

Thanks so much for the help, Due to the requirment I got stick to the code I used. And now its working fine.

Thanks

Former Member
0 Kudos

Hi Rufus,

I have noted some issues in your code and tried to rectify it.

You can check my code hoping it works as per your requirement and compare it.

REPORT  ZR_DOCKING_CONTAINER3.

TYPE-POOLS slis.

TABLES: /sapdmc/lsoatt.

*SELECT-OPTIONS: p_projt FOR /sapdmc/lsoatt-project.

DATA: BEGIN OF ty_tab,
         project TYPE /sapdmc/ls_project,
         subproj TYPE /sapdmc/ls_project,
         object TYPE /sapdmc/ls_project,
         objecttype TYPE char2,
         dxobj TYPE char4,
         subdx TYPE char4,
         busobj TYPE oj_name,
         method TYPE swc_elem,
         messtype TYPE edi_mestyp,
         idoctype TYPE edi_idoctp,
         owner TYPE uname,
         uname TYPE uname,
         datum TYPE datum,
       END OF ty_tab,
       BEGIN OF ty_tab2,
         project TYPE /sapdmc/ls_project,
         subproj TYPE /sapdmc/ls_project,
         object TYPE /sapdmc/ls_project,
         posnr TYPE /sapdmc/ls_posnr,
         trgstr TYPE /sapdmc/ls_trgstr,
         trgfld TYPE /sapdmc/ls_trgfld,
         counter TYPE /sapdmc/ls_counter,
         line TYPE /sapdmc/ls_line,
         uname TYPE uname,
         datum TYPE datum,
         END OF ty_tab2.

DATA: "wa_tab1 type ty_tab,
       lt_tab1 LIKE STANDARD TABLE OF ty_tab,
       lt_tab2 LIKE STANDARD TABLE OF ty_tab2,
       lt_fieldcat TYPE lvc_t_fcat,
       wa_fieldcat TYPE lvc_s_fcat,
       it_tab2 LIKE STANDARD TABLE OF ty_tab2.
DATA:
* * User Command

ok_code TYPE sy-ucomm,

* * Reference Variable for Docking Container

r_dock_container TYPE REF TO cl_gui_docking_container,

* * Reference Variable for alv grid

r_grid TYPE REF TO cl_gui_alv_grid.

data  gv_tab1 type c.

START-OF-SELECTION.

PERFORM INITIAL_BASE.
 
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_OUTPUT .
PERFORM fill_fieldcat USING :
         'PROJECT' 'LT_TAB1' 'Project Name',
         'SUBPROJ'   'LT_TAB1' 'Subproject Name',
         'OBJECT'  'LT_TAB1'   'Object Name',
         'OBJECTTYPE'  'LT_TAB1'  'Object Type',
         'DXOBJ'   'LT_TAB1'   'Standard Batch I/P',
         'SUBDX'   'LT_TAB1'   'Standard Batch',
         'BUSOBJ'   'LT_TAB1'   'Business Obj',
         'METHOD'   'LT_TAB1'   'Method Name',
         'MESSTYPE'   'LT_TAB1'   'Message type',
         'IDOCTYPE'   'LT_TAB1'   'Idoc Type',
         'OWNER'   'LT_TAB1'   'Owner',
         'UNAME'   'LT_TAB1'   'User Name',
         'DATUM'   'LT_TAB1'   'Last Changed on'.

*call screen 999.
ENDFORM.                    " DISPLAY_OUTPUT
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_OUTPUT2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_OUTPUT2 .
  PERFORM fill_fieldcat2 USING :
         'PROJECT' 'LT_TAB2'   'Project Name',
         'SUBPROJ' 'LT_TAB2'   'Subproject Name',
         'OBJECT'  'LT_TAB2'   'Object Name',
         'POSNR'   'LT_TAB2'   'Item',
         'TRGSTR'  'LT_TAB2'   'Target Strcuture',
         'TRGFLD'  'LT_TAB2'   'Target Field',
         'COUNTER' 'LT_TAB2'   'Counter',
         'LINE'    'LT_TAB2'   'Line',
         'UNAME'   'LT_TAB2'   'User Name',
         'DATUM'   'LT_TAB2'   'Last Changed on'.

*CALL SCREEN 999.
ENDFORM.                    " DISPLAY_OUTPUT2
*&---------------------------------------------------------------------*
*&      Form  FILL_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0180   text
*      -->P_0181   text
*      -->P_0182   text
*----------------------------------------------------------------------*
FORM fill_fieldcat USING  pv_field TYPE any
                           pv_tabname TYPE any
                           pv_coltext TYPE any .

   wa_fieldcat-fieldname = pv_field.
   wa_fieldcat-tabname = pv_tabname.
   wa_fieldcat-coltext = pv_coltext.
   APPEND wa_fieldcat TO lt_fieldcat.
   CLEAR wa_fieldcat.
   ENDFORM.      " FILL_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  FILL_FIELDCAT2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0264   text
*      -->P_0265   text
*      -->P_0266   text
*----------------------------------------------------------------------*
FORM fill_fieldcat2 USING  pv_field TYPE any
                           pv_tabname TYPE any
                           pv_coltext TYPE any .

   wa_fieldcat-fieldname = pv_field.
   wa_fieldcat-tabname = pv_tabname.
   wa_fieldcat-coltext = pv_coltext.

   APPEND wa_fieldcat TO lt_fieldcat.

   CLEAR wa_fieldcat.
ENDFORM.                    " FILL_FIELDCAT2
*&---------------------------------------------------------------------*
*&      Module  STATUS_0999  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0999 OUTPUT.
   SET PF-STATUS 'ZSTATUS'.
ENDMODULE.                 " STATUS_0999  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0999  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0999 INPUT.


CASE SY-UCOMM.


      WHEN 'BASE'.
       CLEAR lt_fieldcat[].
       PERFORM display_output.
       gv_tab1 = abap_true.
         SELECT  project
               subproj
               object
               objecttype
               dxobj
               subdx
               busobj
               method
               messtype
               idoctype
               owner
               uname
               datum FROM /sapdmc/lsoatt INTO TABLE lt_tab1
               WHERE project EQ /sapdmc/lsoatt-project OR
                     subproj EQ /sapdmc/lsoatt-subproj OR
                     object EQ /sapdmc/lsoatt-object.

           SORT lt_tab1 BY subproj.

           CALL METHOD r_grid->set_table_for_first_display
             CHANGING
               it_outtab                     = lt_tab1
               it_fieldcatalog               = lt_fieldcat
             EXCEPTIONS
               invalid_parameter_combination = 1
               program_error                 = 2
               too_many_lines                = 3
               OTHERS                        = 4.

             CALL METHOD r_grid->refresh_table_display.
             CALL METHOD cl_gui_cfw=>flush.


     WHEN 'BSBO'.
       CLEAR lt_fieldcat[].
       PERFORM display_output2.
       SELECT
         project
         subproj
         object
         posnr
         trgstr
         trgfld
         counter
         line
         uname
         datum FROM /sapdmc/lsocod INTO TABLE lt_tab2
         WHERE project EQ /sapdmc/lsoatt-project OR
               subproj EQ /sapdmc/lsoatt-subproj OR
               object EQ /sapdmc/lsoatt-object.

         SORT lt_tab1 BY subproj.

         CALL METHOD r_grid->set_table_for_first_display
           CHANGING
             it_outtab                     = lt_tab2
             it_fieldcatalog               = lt_fieldcat
           EXCEPTIONS
             invalid_parameter_combination = 1
             program_error                 = 2
             too_many_lines                = 3
             OTHERS                        = 4.
           CALL METHOD r_grid->refresh_table_display.
           CALL METHOD cl_gui_cfw=>flush.


     WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.
       LEAVE TO SCREEN 0.
   ENDCASE. " CASE ok_code.
ENDMODULE.                 " USER_COMMAND_0999  INPUT
*&---------------------------------------------------------------------*
*&      Module  CREATE_OBJECTS  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE CREATE_OBJECTS OUTPUT.

CHECK r_dock_container IS  INITIAL.

    CREATE OBJECT r_dock_container
     EXPORTING
       side                        = cl_gui_docking_container=>dock_at_right
       extension                   = 1250
       caption                     = 'Project Details'
     EXCEPTIONS
       cntl_error                  = 1
       cntl_system_error           = 2
       create_error                = 3
       lifetime_error              = 4
       lifetime_dynpro_dynpro_link = 5
       OTHERS                      = 6
       .

    CREATE OBJECT r_grid
     EXPORTING
       i_parent          = r_dock_container
     EXCEPTIONS
       error_cntl_create = 1
       error_cntl_init   = 2
       error_cntl_link   = 3
       error_dp_create   = 4
       OTHERS            = 5
       .

    gv_tab1 = abap_true.
         SELECT  project
               subproj
               object
               objecttype
               dxobj
               subdx
               busobj
               method
               messtype
               idoctype
               owner
               uname
               datum FROM /sapdmc/lsoatt INTO TABLE lt_tab1
               WHERE project EQ /sapdmc/lsoatt-project OR
                     subproj EQ /sapdmc/lsoatt-subproj OR
                     object EQ /sapdmc/lsoatt-object.

           SORT lt_tab1 BY subproj.

           CALL METHOD r_grid->set_table_for_first_display
             CHANGING
               it_outtab                     = lt_tab1
               it_fieldcatalog               = lt_fieldcat
             EXCEPTIONS
               invalid_parameter_combination = 1
               program_error                 = 2
               too_many_lines                = 3
               OTHERS                        = 4.

             CALL METHOD r_grid->refresh_table_display.
             CALL METHOD cl_gui_cfw=>flush.

ENDMODULE.                 " CREATE_OBJECTS  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  INITIAL_BASE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM INITIAL_BASE .
CLEAR lt_fieldcat[].

       PERFORM fill_fieldcat USING :
         'PROJECT' 'LT_TAB1' 'Project Name',
         'SUBPROJ'   'LT_TAB1' 'Subproject Name',
         'OBJECT'  'LT_TAB1'   'Object Name',
         'OBJECTTYPE'  'LT_TAB1'  'Object Type',
         'DXOBJ'   'LT_TAB1'   'Standard Batch I/P',
         'SUBDX'   'LT_TAB1'   'Standard Batch',
         'BUSOBJ'   'LT_TAB1'   'Business Obj',
         'METHOD'   'LT_TAB1'   'Method Name',
         'MESSTYPE'   'LT_TAB1'   'Message type',
         'IDOCTYPE'   'LT_TAB1'   'Idoc Type',
         'OWNER'   'LT_TAB1'   'Owner',
         'UNAME'   'LT_TAB1'   'User Name',
         'DATUM'   'LT_TAB1'   'Last Changed on'.

         call screen 999.

ENDFORM.                    " INITIAL_BASE

0 Kudos

Hi Abdul,

Thanks for spending time in correcting my code. I used your program and its working fine.

Will try creating few more buttons on the screen and will get back to you in case if i face any issues.

Regards,

Rufus Samuel

0 Kudos

Hi Abful/Ibr.

I have written a below select in my program. I could not see any issues with the select statement.

But still its fetching 0 records from database table. total no of records actually available is 565

       SELECT

         project

         subproj

         object

         posnr

         trgstr

         trgfld

         counter

         line

         uname

         datum FROM /sapdmc/lsocod INTO TABLE lt_tab2

         WHERE project EQ p_proj AND

               subproj EQ p_subp AND

               object EQ p_obj.