‎2007 May 08 6:17 AM
Hi all!
How to make ALV grid which has structure like,
header line 1...............
Item Lines of 1
header line 2...............
Item Lines of 2
header line 3...............
Item Lines of 3
Thanks in advance
‎2007 May 08 6:21 AM
Hi Prasad,
Use class <b>CL_GUI_COLUMN_TREE</b>
Refer this code :
data : TREE TYPE REF TO CL_GUI_COLUMN_TREE.
*FOR COLUMN HEADING OF COLUMN TREE
hhdr-heading = 'Object Name'.
hhdr-width = 40.
*&-----CREATING OBJECT FOR TREE STRUCTURE FOR TOP LEFT SPLITTER
*&-----CONTAINER
CREATE OBJECT tree
EXPORTING
LIFETIME =
parent = split_cntr->top_left_container
SHELLSTYLE =
node_selection_mode =
cl_gui_column_tree=>node_sel_mode_single
HIDE_SELECTION =
item_selection = 'X'
hierarchy_column_name = 'COLUMN1'
hierarchy_header = hhdr
NO_HIERARCHY_COLUMN =
NAME =
EXCEPTIONS
LIFETIME_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
ILLEGAL_NODE_SELECTION_MODE = 4
FAILED = 5
ILLEGAL_COLUMN_NAME = 6
others = 7
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*&----CALLING METHOD FOR ADDING COLUMN IN TREE
CALL METHOD tree->add_column
EXPORTING
name = 'COLUMN2'
HIDDEN =
DISABLED =
ALIGNMENT =
width = 40
WIDTH_PIX =
HEADER_IMAGE =
header_text = 'Description'
HEADER_TOOLTIP =
EXCEPTIONS
COLUMN_EXISTS = 1
ILLEGAL_COLUMN_NAME = 2
TOO_MANY_COLUMNS = 3
ILLEGAL_ALIGNMENT = 4
DIFFERENT_COLUMN_TYPES = 5
CNTL_SYSTEM_ERROR = 6
FAILED = 7
PREDECESSOR_COLUMN_NOT_FOUND = 8
others = 9
.
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.
.
***&---ASSIGNING TEXT AND OTHER ATTRIBUTES TO THE NODES OF TREE
DATA : node TYPE mtreesnode,
item TYPE mtreeitm.
REFRESH : item_table , node_table.
prog_name = trdir-name.
CLEAR i_objlist.
*ROOT NODE
CLEAR node.
node-node_key = '001'.
node-isfolder = 'X'.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '001'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text = prog_name.
APPEND item TO item_table.
CLEAR item.
item-node_key = '001'.
item-item_name = 'COLUMN2'.
item-class = cl_gui_column_tree=>item_class_text.
item-text = p_text.
APPEND item TO item_table.
*Dict.Structures
READ TABLE i_objlist WITH KEY type = 'T'.
IF sy-subrc = 0.
CLEAR node.
node-node_key = '111'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-isfolder = 'X'.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '111'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Dict.Structures'.
APPEND item TO item_table.
ENDIF.
*Types
READ TABLE i_objlist WITH KEY type = 'Y'.
IF sy-subrc = 0.
CLEAR node.
node-node_key = '112'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-isfolder = 'X'.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '112'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Types'.
APPEND item TO item_table.
ENDIF.
*Fields
READ TABLE i_objlist WITH KEY type = 'D'.
IF sy-subrc = 0.
CLEAR node.
node-node_key = '113'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-isfolder = 'X'.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '113'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Fields'.
APPEND item TO item_table.
ENDIF.
*Screens
READ TABLE i_objlist WITH KEY type = 'S'.
IF sy-subrc = 0.
CLEAR node.
node-node_key = '115'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '115'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Screens'.
APPEND item TO item_table.
ENDIF.
*Transactions
IF i_tcode IS NOT INITIAL.
CLEAR node.
node-node_key = '116'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '116'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Transactions'.
APPEND item TO item_table.
ENDIF.
*Includes
IF i_incl IS NOT INITIAL.
CLEAR node.
node-node_key = '117'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '117'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Includes'.
APPEND item TO item_table.
ENDIF.
CALL METHOD tree->add_nodes_and_items
EXPORTING
node_table = node_table
item_table = item_table
item_table_structure_name = 'MTREEITM'
EXCEPTIONS
failed = 1
cntl_system_error = 2
error_in_tables = 3
dp_error = 4
table_structure_name_not_found = 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.
Reward points if helpful.
‎2007 May 08 6:20 AM
better to use ALV Hirarchy reporting.
check this sample call.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_interface_check = g_repid
i_callback_program = g_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
is_layout = ls_layout
it_fieldcat = xt_fieldcat[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_DEFAULT = 'X'
i_save = g_save
is_variant = gx_variant
IT_EVENTS =
IT_EVENT_EXIT =
i_tabname_header = g_tabname_header
i_tabname_item = g_tabname_item
*I_STRUCTURE_NAME_HEADER =
*I_STRUCTURE_NAME_ITEM =
is_keyinfo = gs_keyinfo
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
<b>t_outtab_header = t_ekko
t_outtab_item = t_ekpo</b>* EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF
Regards
Prabhu
‎2007 May 08 6:21 AM
Hi Prasad,
Use class <b>CL_GUI_COLUMN_TREE</b>
Refer this code :
data : TREE TYPE REF TO CL_GUI_COLUMN_TREE.
*FOR COLUMN HEADING OF COLUMN TREE
hhdr-heading = 'Object Name'.
hhdr-width = 40.
*&-----CREATING OBJECT FOR TREE STRUCTURE FOR TOP LEFT SPLITTER
*&-----CONTAINER
CREATE OBJECT tree
EXPORTING
LIFETIME =
parent = split_cntr->top_left_container
SHELLSTYLE =
node_selection_mode =
cl_gui_column_tree=>node_sel_mode_single
HIDE_SELECTION =
item_selection = 'X'
hierarchy_column_name = 'COLUMN1'
hierarchy_header = hhdr
NO_HIERARCHY_COLUMN =
NAME =
EXCEPTIONS
LIFETIME_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
ILLEGAL_NODE_SELECTION_MODE = 4
FAILED = 5
ILLEGAL_COLUMN_NAME = 6
others = 7
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*&----CALLING METHOD FOR ADDING COLUMN IN TREE
CALL METHOD tree->add_column
EXPORTING
name = 'COLUMN2'
HIDDEN =
DISABLED =
ALIGNMENT =
width = 40
WIDTH_PIX =
HEADER_IMAGE =
header_text = 'Description'
HEADER_TOOLTIP =
EXCEPTIONS
COLUMN_EXISTS = 1
ILLEGAL_COLUMN_NAME = 2
TOO_MANY_COLUMNS = 3
ILLEGAL_ALIGNMENT = 4
DIFFERENT_COLUMN_TYPES = 5
CNTL_SYSTEM_ERROR = 6
FAILED = 7
PREDECESSOR_COLUMN_NOT_FOUND = 8
others = 9
.
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.
.
***&---ASSIGNING TEXT AND OTHER ATTRIBUTES TO THE NODES OF TREE
DATA : node TYPE mtreesnode,
item TYPE mtreeitm.
REFRESH : item_table , node_table.
prog_name = trdir-name.
CLEAR i_objlist.
*ROOT NODE
CLEAR node.
node-node_key = '001'.
node-isfolder = 'X'.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '001'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text = prog_name.
APPEND item TO item_table.
CLEAR item.
item-node_key = '001'.
item-item_name = 'COLUMN2'.
item-class = cl_gui_column_tree=>item_class_text.
item-text = p_text.
APPEND item TO item_table.
*Dict.Structures
READ TABLE i_objlist WITH KEY type = 'T'.
IF sy-subrc = 0.
CLEAR node.
node-node_key = '111'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-isfolder = 'X'.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '111'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Dict.Structures'.
APPEND item TO item_table.
ENDIF.
*Types
READ TABLE i_objlist WITH KEY type = 'Y'.
IF sy-subrc = 0.
CLEAR node.
node-node_key = '112'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-isfolder = 'X'.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '112'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Types'.
APPEND item TO item_table.
ENDIF.
*Fields
READ TABLE i_objlist WITH KEY type = 'D'.
IF sy-subrc = 0.
CLEAR node.
node-node_key = '113'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-isfolder = 'X'.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '113'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Fields'.
APPEND item TO item_table.
ENDIF.
*Screens
READ TABLE i_objlist WITH KEY type = 'S'.
IF sy-subrc = 0.
CLEAR node.
node-node_key = '115'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '115'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Screens'.
APPEND item TO item_table.
ENDIF.
*Transactions
IF i_tcode IS NOT INITIAL.
CLEAR node.
node-node_key = '116'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '116'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Transactions'.
APPEND item TO item_table.
ENDIF.
*Includes
IF i_incl IS NOT INITIAL.
CLEAR node.
node-node_key = '117'.
node-relatkey = '001'.
node-relatship = cl_gui_column_tree=>relat_first_child.
node-expander = 'X'.
APPEND node TO node_table.
CLEAR item.
item-node_key = '117'.
item-item_name = 'COLUMN1'.
item-class = cl_gui_column_tree=>item_class_text.
item-text ='Includes'.
APPEND item TO item_table.
ENDIF.
CALL METHOD tree->add_nodes_and_items
EXPORTING
node_table = node_table
item_table = item_table
item_table_structure_name = 'MTREEITM'
EXCEPTIONS
failed = 1
cntl_system_error = 2
error_in_tables = 3
dp_error = 4
table_structure_name_not_found = 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.
Reward points if helpful.
‎2007 May 08 6:32 AM
you have to use Hierarchical sequential list output pls go through this code
TABLES : STKO,STPO,MAKT,MAST.
TYPE-POOLS : SLIS.
DATA : BEGIN OF ISTKO OCCURS 0,
STLNR LIKE STKO-STLNR,
DATUV LIKE STKO-DATUV,
MATNR LIKE MAST-MATNR,
BMENG LIKE STKO-BMENG,
BMEIN LIKE STKO-BMEIN,
END OF ISTKO.
DATA : BEGIN OF ISTPO OCCURS 0,
STLNR LIKE STPO-STLNR,
IDNRK LIKE STPO-IDNRK,
MENGE LIKE STPO-MENGE,
MEINS LIKE STPO-MEINS,
MAKTX LIKE MAKT-MAKTX,
END OF ISTPO.
DATA : BEGIN OF IMAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF IMAKT.
DATA : BEGIN OF IMAST OCCURS 0,
MATNR LIKE MAST-MATNR,
STLNR LIKE MAST-STLNR,
END OF IMAST.
DATA : IFIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WFIELDCAT TYPE SLIS_FIELDCAT_ALV,
ILAYOUT TYPE SLIS_LAYOUT_ALV,
IKEYINFO TYPE SLIS_KEYINFO_ALV,
IEVENT TYPE SLIS_T_EVENT,
WEVENT TYPE SLIS_ALV_EVENT.
PARAMETERS : P_NUM TYPE I DEFAULT 10.
START-OF-SELECTION.
PERFORM GETDATA.
PERFORM GETHEADERMAT.
PERFORM GET_MAT_DESC.
PERFORM BUILD_FCAT_HEAD.
PERFORM BUILD_FCAT_ITEM.
PERFORM BUILD_KEYINFO.
PERFORM BUILD_EVENT_TAB.
PERFORM BUILD_LAYOUT.
PERFORM DISPLAY_DATA.
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GETDATA .
SELECT STLNR DATUV BMENG BMEIN INTO CORRESPONDING FIELDS OF TABLE ISTKO
FROM STKO UP TO P_NUM ROWS.
IF NOT ISTKO[] IS INITIAL.
SELECT STLNR IDNRK MENGE MEINS INTO TABLE ISTPO FROM STPO FOR ALL ENTRIES IN ISTKO
WHERE STLNR = ISTKO-STLNR AND POSTP = 'L'.
ENDIF.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form BUILD_FCAT_HEAD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_FCAT_HEAD .
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'STLNR'.
WFIELDCAT-SELTEXT_L = 'BOM no'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'DATUV'.
WFIELDCAT-SELTEXT_L = 'BOM date'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'MATNR'.
WFIELDCAT-SELTEXT_L = 'Header mat no'.
WFIELDCAT-OUTPUTLEN = 18.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'BMENG'.
WFIELDCAT-SELTEXT_L = 'Base qty'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTKO'.
WFIELDCAT-FIELDNAME = 'BMEIN'.
WFIELDCAT-SELTEXT_L = 'UOM'.
WFIELDCAT-OUTPUTLEN = 3.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
ENDFORM. " BUILD_FCAT_HEAD
*&---------------------------------------------------------------------*
*& Form BUILD_FCAT_ITEM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_FCAT_ITEM .
WFIELDCAT-TABNAME = 'ISTPO'.
WFIELDCAT-FIELDNAME = 'IDNRK'.
WFIELDCAT-SELTEXT_L = 'Material no'.
*WFIELDCAT-HOTSPOT = 'X'.
WFIELDCAT-OUTPUTLEN = 18.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTPO'.
WFIELDCAT-FIELDNAME = 'MAKTX'.
WFIELDCAT-SELTEXT_L = 'Material desc'.
WFIELDCAT-JUST = 'C'.
WFIELDCAT-OUTPUTLEN = 30.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTPO'.
WFIELDCAT-FIELDNAME = 'MENGE'.
WFIELDCAT-SELTEXT_L = 'Item qty'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
WFIELDCAT-TABNAME = 'ISTPO'.
WFIELDCAT-FIELDNAME = 'MEINS'.
WFIELDCAT-SELTEXT_L = 'UOM'.
WFIELDCAT-OUTPUTLEN = 3.
APPEND WFIELDCAT TO IFIELDCAT.
CLEAR WFIELDCAT.
ENDFORM. " BUILD_FCAT_ITEM
*&---------------------------------------------------------------------*
*& Form BUILD_KEYINFO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_KEYINFO .
IKEYINFO-HEADER01 = 'STLNR'.
IKEYINFO-ITEM01 = 'STLNR'.
ENDFORM. " BUILD_KEYINFO
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = SY-REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = 'USER_COM'
IS_LAYOUT = ILAYOUT
IT_FIELDCAT = IFIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = IEVENT[]
* IT_EVENT_EXIT =
I_TABNAME_HEADER = 'ISTKO'
I_TABNAME_ITEM = 'ISTPO'
* I_STRUCTURE_NAME_HEADER =
* I_STRUCTURE_NAME_ITEM =
IS_KEYINFO = IKEYINFO
* IS_PRINT =
* IS_REPREP_ID =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB_HEADER = ISTKO
T_OUTTAB_ITEM = ISTPO
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form GET_MAT_DESC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_MAT_DESC .
IF NOT ISTPO[] IS INITIAL.
SELECT MATNR MAKTX INTO TABLE IMAKT FROM MAKT FOR ALL ENTRIES IN ISTPO
WHERE MATNR = ISTPO-IDNRK.
ENDIF.
LOOP AT ISTPO.
READ TABLE IMAKT WITH KEY MATNR = ISTPO-IDNRK.
IF SY-SUBRC = 0.
ISTPO-MAKTX = IMAKT-MAKTX.
ENDIF.
MODIFY ISTPO.
ENDLOOP.
ENDFORM. " GET_MAT_DESC
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .
ILAYOUT-ZEBRA = 'X'.
ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " BUILD_LAYOUT
*FORM USER_COM USING PUCOM LIKE SY-UCOMM PSELFIELD TYPE SLIS_SELFIELD.
*
*CASE PUCOM.
*WHEN '&IC1'.
* SET PARAMETER ID 'MAT' FIELD PSELFIELD-VALUE.
* CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
*ENDCASE.
*
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form BUILD_EVENT_TAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_EVENT_TAB .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = IEVENT
* EXCEPTIONS
* LIST_TYPE_WRONG = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE IEVENT INTO WEVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
WEVENT-FORM = 'TOPOFPAGE'.
MODIFY IEVENT FROM WEVENT INDEX SY-TABIX.
ENDIF.
ENDFORM. " BUILD_EVENT_TAB
*&---------------------------------------------------------------------*
*& Form TOPOFPAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM TOPOFPAGE.
DATA : ILISTHEAD TYPE SLIS_T_LISTHEADER,
WLISTHEAD TYPE SLIS_LISTHEADER.
WLISTHEAD-INFO = 'Its a test hierarchical sequential alv dispaly'.
WLISTHEAD-TYP = 'H'.
APPEND WLISTHEAD TO ILISTHEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = ILISTHEAD
* I_LOGO = ''
* I_END_OF_LIST_GRID =
.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GETHEADERMAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GETHEADERMAT .
IF NOT ISTKO[] IS INITIAL.
SELECT MATNR STLNR INTO TABLE IMAST FROM MAST FOR ALL ENTRIES IN ISTKO
WHERE STLNR = ISTKO-STLNR.
ENDIF.
LOOP AT ISTKO.
READ TABLE IMAST WITH KEY STLNR = ISTKO-STLNR.
IF SY-SUBRC = 0.
ISTKO-MATNR = IMAST-MATNR.
ENDIF.
MODIFY ISTKO.
ENDLOOP.
ENDFORM. " GETHEADERMAT
regards
shiba dutta
‎2007 May 08 6:34 AM
Hi,
My Header and Item structures are different only one key is common.
So how can i pass ALV - structure to the Function?
Thanks in advance