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

Re: Issues with ALV Custom container

$
0
0

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


Viewing all articles
Browse latest Browse all 8695

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>