Application Development and Automation 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: 
Read only

ALV Grid

Former Member
0 Likes
480

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
444

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.

4 REPLIES 4
Read only

Former Member
0 Likes
444

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

Read only

Former Member
0 Likes
445

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.

Read only

Former Member
0 Likes
444

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

Read only

Former Member
0 Likes
444

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