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's

Former Member
0 Likes
707

Hi experts,

i need blocked and hierarchical ALV reports with function modules.previously i got some links,but i am not satisfied.plz give me exact details of blocked and hirarchical alv's by using function modules.

6 REPLIES 6
Read only

former_member386202
Active Contributor
0 Likes
666

Hi,

Refer this report

BCALV_TREE_SIMPLE_DEMO

Regards,

prashant

Read only

Former Member
0 Likes
666

Hi Chandu,

Check This .

The following code allows the easy creation of the example ALVtree report. Simply copy and past it into

the appropriate includes(PBO and FORM).

----


***INCLUDE ZDEMO_ALVTREEO01 .

----


&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'STATUS1'.

  • SET TITLEBAR 'xxx'.

  • If ALVtree already exists then it mush not be re-created as this

  • will cause a runtime error.

IF gd_tree IS INITIAL.

  • Create ALVtree (must be performed within screen PBO module)

PERFORM create_alvtree_container.

PERFORM create_object_in_container.

PERFORM create_empty_alvtree_control.

PERFORM create_alvtree_hierarchy.

ENDIF.

CALL METHOD cl_gui_cfw=>flush.

ENDMODULE. " STATUS_0100 OUTPUT

----


  • INCLUDE ZDEMO_ALVTREEF01 *

----


&----


*& Form CREATE_ALVTREE_CONTAINER

&----


  • Create container for ALVtree report

----


form create_alvtree_container.

  • Create container for alv-tree

gd_tree_container_name = 'SCREEN_CONTAINER'.

create object gd_custom_container

exporting

container_name = gd_tree_container_name

exceptions

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5.

if sy-subrc <> 0.

message x208(00) with 'ERROR'.

endif.

endform. " CREATE_ALVTREE_CONTAINER

&----


*& Form CREATE_OBJECT_IN_CONTAINER

&----


  • Create ALVtree object in container

----


form create_object_in_container.

  • Create tree control

create object gd_tree

exporting

parent = gd_custom_container

node_selection_mode = cl_gui_column_tree=>node_sel_mode_single

item_selection = 'X'

no_html_header = ''

no_toolbar = ''

exceptions

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

illegal_node_selection_mode = 5

failed = 6

illegal_column_name = 7.

if sy-subrc <> 0.

message x208(00) with 'ERROR'.

endif.

endform. " CREATE_OBJECT_IN_CONTAINER

&----


*& Form BUILD_REPORT_TITLE

&----


  • Build table for ALVtree header

----


  • <-> p1 Header details

  • <-> p2 Logo value

----


FORM build_report_title CHANGING

pt_report_title TYPE slis_t_listheader

pa_logo TYPE sdydo_value.

DATA: ls_line TYPE slis_listheader,

ld_date(10) TYPE c.

  • List Heading Line(TYPE H)

CLEAR ls_line.

ls_line-typ = 'H'.

  • ls_line-key "Not Used For This Type(H)

ls_line-info = 'PO ALVTree Display'.

APPEND ls_line TO pt_report_title.

  • Status Line(TYPE S)

ld_date(2) = sy-datum+6(2).

ld_date+2(1) = '/'.

ld_date3(2) = sy-datum4(2).

ld_date+5(1) = '/'.

ld_date+6(4) = sy-datum(4).

ls_line-typ = 'S'.

ls_line-key = 'Date'.

ls_line-info = ld_date.

APPEND ls_line TO pt_report_title.

  • Action Line(TYPE A)

CLEAR ls_line.

ls_line-typ = 'A'.

CONCATENATE 'Report: ' sy-repid INTO ls_line-info SEPARATED BY space.

APPEND ls_line TO pt_report_title.

ENDFORM. " BUILD_REPORT_TITLE

&----


*& Form CREATE_EMPTY_ALVTREE_CONTROL

&----


  • Create empty tree control

----


FORM create_empty_alvtree_control.

  • Create emty tree-control

CLEAR: it_emptytab.

REFRESH: it_emptytab.

CALL METHOD gd_tree->set_table_for_first_display

EXPORTING

is_hierarchy_header = gd_hierarchy_header

it_list_commentary = gd_report_title

i_logo = gd_logo

  • i_background_id = 'ALV_BACKGROUND'

i_save = 'A'

is_variant = gd_variant

CHANGING

it_outtab = it_emptytab "Must be empty

it_fieldcatalog = gd_fieldcat.

ENDFORM. " CREATE_EMPTY_ALVTREE_CONTROL

&----


*& Form CREATE_ALVTREE_HIERARCHY

&----


  • text

----


  • Builds ALV tree display, (inserts nodes, subnodes etc)

----


form create_alvtree_hierarchy.

data: ls_sflight type sflight,

lt_sflight type sflight occurs 0.

data: ld_ebeln_key type lvc_nkey,

ld_ebelp_key type lvc_nkey.

loop at it_ekko into wa_ekko.

perform add_ekko_node using wa_ekko

''

changing ld_ebeln_key.

loop at it_ekpo into wa_ekpo where ebeln eq wa_ekko-ebeln.

perform add_ekpo_line using wa_ekpo

ld_ebeln_key

changing ld_ebelp_key.

endloop.

endloop.

  • calculate totals

call method gd_tree->update_calculations.

  • this method must be called to send the data to the frontend

call method gd_tree->frontend_update.

endform. " CREATE_ALVTREE_HIERARCHY

&----


*& Form ADD_EKKO_NODE

&----


  • text

----


  • -->P_WA_EKPO text

  • -->P_0553 text

  • <--P_EBELN_KEY text

----


form add_ekko_node using ps_ekko like wa_ekko

value(p_relate_key)

changing p_node_key.

data: ld_node_text type lvc_value,

ls_sflight type sflight.

  • Set item-layout

data: lt_item_layout type lvc_t_layi,

ls_item_layout type lvc_s_layi.

ls_item_layout-t_image = '@3P@'.

ls_item_layout-fieldname = gd_tree->c_hierarchy_column_name.

ls_item_layout-style = cl_gui_column_tree=>style_default.

ld_node_text = ps_ekko-ebeln.

append ls_item_layout to lt_item_layout.

  • Add node

call method gd_tree->add_node

exporting

i_relat_node_key = p_relate_key

i_relationship = cl_gui_column_tree=>relat_last_child

i_node_text = ld_node_text

is_outtab_line = ps_ekko

it_item_layout = lt_item_layout

importing

e_new_node_key = p_node_key.

endform. " ADD_EKKO_NODE

&----


*& Form ADD_EKPO_LINE

&----


  • text

----


  • -->P_WA_EKPO text

  • -->P_LD_EBELN_KEY text

  • <--P_LD_EBELP_KEY text

----


form add_ekpo_line using ps_ekpo like wa_ekpo

value(p_relate_key)

changing p_node_key.

data: ld_node_text type lvc_value,

ls_sflight type sflight.

  • Set item-layout

data: lt_item_layout type lvc_t_layi,

ls_item_layout type lvc_s_layi.

ls_item_layout-t_image = '@3P@'.

ls_item_layout-fieldname = gd_tree->c_hierarchy_column_name.

ls_item_layout-style = cl_gui_column_tree=>style_default.

ld_node_text = ps_ekpo-ebelp.

append ls_item_layout to lt_item_layout.

  • Add node

call method gd_tree->add_node

exporting

i_relat_node_key = p_relate_key

i_relationship = cl_gui_column_tree=>relat_last_child

i_node_text = ld_node_text

is_outtab_line = ps_ekpo

it_item_layout = lt_item_layout

importing

e_new_node_key = p_node_key.

endform. " ADD_EKPO_LINE

Reward if useful.

Regards,

Chitra

Read only

0 Likes
666

Hi

thank you for your help,but i want the reports by using function modules,not ussing dialog programming.i hope u understood.

regards,

chandu

Read only

0 Likes
666
Read only

Former Member
0 Likes
666

for sample prog of block alv


TYPE-POOLS : SLIS.
TABLES : EKKO,EKPO.

DATA : BEGIN OF IEKKO OCCURS 0,
       EBELN LIKE EKKO-EBELN,
       AEDAT LIKE EKKO-AEDAT,
       END OF IEKKO.

DATA : BEGIN OF IEKPO OCCURS 0,
       EBELN LIKE EKPO-EBELN,
       EBELP LIKE EKPO-EBELP,
       MATNR LIKE EKPO-MATNR,
       MENGE LIKE EKPO-MENGE,
       MEINS LIKE EKPO-MEINS,
       END OF IEKPO.

DATA : IFIELDCATEKKO TYPE SLIS_T_FIELDCAT_ALV,
       IFIELDCATEKPO TYPE SLIS_T_FIELDCAT_ALV,
       WFIELDCAT     TYPE SLIS_FIELDCAT_ALV,
       ILAYOUT       TYPE SLIS_LAYOUT_ALV,
       IEVENTHEAD    TYPE SLIS_T_EVENT,
       IEVENTITEM    TYPE SLIS_T_EVENT,
       WEVENT        TYPE SLIS_ALV_EVENT.

PARAMETERS : P_NUM(3) TYPE N DEFAULT 10.


PERFORM GET_DATA_EKKO.
PERFORM GET_DATA_EKPO.

PERFORM BUILD_FCAT_HEAD.
PERFORM BUILD_FCAT_ITEM.
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EVENT_TAB.


PERFORM DISPLAY_BLOCK.
*&---------------------------------------------------------------------*
*&      Form  GET_DATA_EKKO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_DATA_EKKO .

SELECT EBELN AEDAT INTO TABLE IEKKO FROM EKKO UP TO P_NUM ROWS WHERE EBELN LIKE '45000057%'.

ENDFORM.                    " GET_DATA_EKKO
*&---------------------------------------------------------------------*
*&      Form  GET_DATA_EKPO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_DATA_EKPO .

IF NOT IEKKO[] IS INITIAL.
  SELECT EBELN EBELP MATNR MENGE MEINS INTO TABLE IEKPO FROM EKPO FOR ALL ENTRIES IN IEKKO
                                                  WHERE EBELN = IEKKO-EBELN.
ENDIF.

ENDFORM.                    " GET_DATA_EKPO
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_BLOCK
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_BLOCK .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
  EXPORTING
    I_CALLBACK_PROGRAM             = SY-REPID
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   IT_EXCLUDING                   =
          .



          CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
            EXPORTING
              IS_LAYOUT                        = ILAYOUT
              IT_FIELDCAT                      = IFIELDCATEKKO
              I_TABNAME                        = 'IEKKO'
              IT_EVENTS                        = IEVENTHEAD[]
*             IT_SORT                          =
*             I_TEXT                           = ' '
            TABLES
              T_OUTTAB                         = IEKKO
           EXCEPTIONS
             PROGRAM_ERROR                    = 1
             MAXIMUM_OF_APPENDS_REACHED       = 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.


CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  EXPORTING
    IS_LAYOUT                        = ILAYOUT
    IT_FIELDCAT                      = IFIELDCATEKPO
    I_TABNAME                        = 'IEKPO'
    IT_EVENTS                        = IEVENTITEM
*   IT_SORT                          =
*   I_TEXT                           = ' '
  TABLES
    T_OUTTAB                         = IEKPO
* EXCEPTIONS
*   PROGRAM_ERROR                    = 1
*   MAXIMUM_OF_APPENDS_REACHED       = 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.


CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
* EXPORTING
*   I_INTERFACE_CHECK             = ' '
*   IS_PRINT                      =
*   I_SCREEN_START_COLUMN         = 0
*   I_SCREEN_START_LINE           = 0
*   I_SCREEN_END_COLUMN           = 0
*   I_SCREEN_END_LINE             = 0
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER       =
*   ES_EXIT_CAUSED_BY_USER        =
 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_BLOCK
*&---------------------------------------------------------------------*
*&      Form  BUILD_FCAT_HEAD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_FCAT_HEAD .
WFIELDCAT-FIELDNAME = 'EBELN'.
WFIELDCAT-TABNAME   = 'IEKKO'.
WFIELDCAT-SELTEXT_L = 'Pur. Doc no'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCATEKKO.
CLEAR WFIELDCAT.


WFIELDCAT-FIELDNAME = 'AEDAT'.
WFIELDCAT-TABNAME   = 'IEKKO'.
WFIELDCAT-SELTEXT_L = 'Pur. doc date'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCATEKKO.
CLEAR WFIELDCAT.

ENDFORM.                    " BUILD_FCAT_HEAD
*&---------------------------------------------------------------------*
*&      Form  BUILD_FCAT_ITEM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_FCAT_ITEM .
WFIELDCAT-FIELDNAME = 'EBELN'.
WFIELDCAT-TABNAME   = 'IEKPO'.
WFIELDCAT-SELTEXT_L = 'Pur. Doc no'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCATEKPO.
CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'EBELP'.
WFIELDCAT-TABNAME   = 'IEKPO'.
WFIELDCAT-SELTEXT_L = 'Pur. Doc item'.
*wfieldcat-do_sum = 'X'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCATEKPO.
CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'MATNR'.
WFIELDCAT-TABNAME   = 'IEKPO'.
WFIELDCAT-SELTEXT_L = 'Material no'.
WFIELDCAT-OUTPUTLEN = 18.
APPEND WFIELDCAT TO IFIELDCATEKPO.
CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'MENGE'.
WFIELDCAT-TABNAME   = 'IEKPO'.
WFIELDCAT-SELTEXT_L = 'P.O. Qty'.
wfieldcat-do_sum = 'X'.
*WFIELDCAT-DATATYPE = 'QUAN'.
WFIELDCAT-OUTPUTLEN = 15.
APPEND WFIELDCAT TO IFIELDCATEKPO.
CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'MEINS'.
WFIELDCAT-TABNAME   = 'IEKPO'.
WFIELDCAT-SELTEXT_L = 'UOM'.
WFIELDCAT-OUTPUTLEN = 3.
APPEND WFIELDCAT TO IFIELDCATEKPO.
CLEAR WFIELDCAT.

ENDFORM.                    " BUILD_FCAT_ITEM
*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT .
ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM.                    " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*&      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             = IEVENTHEAD
* 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.

IEVENTITEM = IEVENTHEAD.

READ TABLE IEVENTHEAD INTO WEVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
WEVENT-FORM = 'TOPOFPAGEHEAD'.
MODIFY IEVENTHEAD FROM WEVENT INDEX SY-TABIX.
ENDIF.

READ TABLE IEVENTHEAD INTO WEVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC = 0.
WEVENT-FORM = 'USERCOMMAND'.
MODIFY IEVENTHEAD FROM WEVENT INDEX SY-TABIX.
ENDIF.

READ TABLE IEVENTITEM INTO WEVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
WEVENT-FORM = 'TOPOFPAGEITEM'.
MODIFY IEVENTITEM FROM WEVENT INDEX SY-TABIX.
ENDIF.


ENDFORM.                    " BUILD_EVENT_TAB

FORM USERCOMMAND USING PUCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
WRITE : / 'HI'.
CASE PUCOMM.
WHEN '&IC1'.
WHEN 'OTHERS'.
ENDCASE.

ENDFORM.

FORM TOPOFPAGEHEAD.
DATA : ILIST TYPE SLIS_T_LISTHEADER,
       WLIST TYPE SLIS_LISTHEADER.

WLIST-INFO = 'Header data with P.O. no and creating date'.
WLIST-TYP  = 'H'.
APPEND WLIST TO ILIST.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
  EXPORTING
    IT_LIST_COMMENTARY       = ILIST
*   I_LOGO                   =
*   I_END_OF_LIST_GRID       =
          .


ENDFORM.

FORM TOPOFPAGEITEM.
DATA : ILIST TYPE SLIS_T_LISTHEADER,
       WLIST TYPE SLIS_LISTHEADER.

WLIST-INFO = 'Item data with P.O.item material no and qty'.
WLIST-TYP  = 'H'.
APPEND WLIST TO ILIST.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
  EXPORTING
    IT_LIST_COMMENTARY       = ILIST
*   I_LOGO                   =
*   I_END_OF_LIST_GRID       =
          .


ENDFORM.

for sample prog of hierarchical


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,
       ISORT     TYPE SLIS_T_SORTINFO_ALV,
       WSORT     TYPE SLIS_SORTINFO_ALV.

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_SORT_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 = 'STLNR'.
  WFIELDCAT-SELTEXT_L = 'BOM no'.
  WFIELDCAT-NO_OUT     = 'X'.
*WFIELDCAT-HOTSPOT   = 'X'.
  WFIELDCAT-OUTPUTLEN = 10.
  APPEND WFIELDCAT TO IFIELDCAT.
  CLEAR WFIELDCAT.

  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-INPUT     = 'X'.
*  WFIELDCAT-EDIT      = 'X'.
  WFIELDCAT-SELTEXT_L = 'Item qty'.
  WFIELDCAT-OUTPUTLEN = 15.
  WFIELDCAT-DO_SUM = 'X'.
  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                        = ISORT
*   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'.
  ilayout-totals_text = 'Grand'.

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
*&---------------------------------------------------------------------*
*&      Form  BUILD_SORT_TAB
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_SORT_TAB .
WSORT-FIELDNAME = 'STLNR'.
WSORT-TABNAME   = 'ISTPO'.
WSORT-UP        = 'X'.
WSORT-SUBTOT    = 'X'.
*WSORT-GROUP     = 'UL'.
APPEND WSORT TO ISORT.
ENDFORM.                    " BUILD_SORT_TAB

regards

shiba dutta

Read only

Former Member
0 Likes
666

hi chandu,