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