Application Development 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: 

Hierarchical ALV Display with many fields

Former Member
0 Kudos

Hi ,

I need to create oen hierarchical ALV report with many fields which are common to lower levels also.Ex.Fields Total Currency and Amount of header level and subsequent levels down are all needs to be displayed in the report.

Please let me know how this can be achieved..

Regards.

Anand

2 REPLIES 2

Former Member
0 Kudos

Do It in OOPS alv

Try below code

DATA lx_bind TYPE salv_s_hierseq_binding.

DATA lv_message TYPE string.

DATA : lr_data_error TYPE REF TO cx_salv_data_error,

lr_not_found TYPE REF TO cx_salv_not_found,

lr_aggregations TYPE REF TO cl_salv_aggregations,

lr_aggregation TYPE REF TO cl_salv_aggregation,

lr_content TYPE REF TO cl_salv_form_element,

lr_existing TYPE REF TO cx_salv_existing.

lx_bind-master = 'PA'.

lx_bind-slave = 'PA'.

APPEND lx_bind TO t_bind.

*Call factory method to generate the output

TRY.

CALL METHOD cl_salv_hierseq_table=>factory

EXPORTING

t_binding_level1_level2 = t_bind

IMPORTING

r_hierseq = r_table

CHANGING

t_table_level1 = t_header

t_table_level2 = t_item.

r_functions = r_table->get_functions( ).

r_functions->set_all( abap_true ).

r_level = r_table->get_level( 1 ).

r_level->set_items_expanded( ).

r_columns = r_table->get_columns( 1 ).

r_columns->set_expand_column( text-012 ).

**PA

r_column = r_columns->get_column( text-013 ).

r_column->set_long_text( text-001 ).

r_column->set_medium_text( text-001 ).

r_column->set_output_length( 15 ).

*VSP division code

r_column = r_columns->get_column( text-014 ).

r_column->set_long_text( text-002 ).

r_column->set_medium_text( text-002 ).

r_column->set_output_length( 20 ).

*Family

r_column = r_columns->get_column( text-016 ).

r_column->set_long_text( text-004 ).

r_column->set_medium_text( text-004 ).

r_column->set_output_length( 10 ).

*Single

r_column = r_columns->get_column( text-017 ).

r_column->set_long_text( text-005 ).

r_column->set_medium_text( text-005 ).

r_column->set_output_length( 10 ).

*Employee + 1

r_column = r_columns->get_column( text-018 ).

r_column->set_long_text( text-006 ).

r_column->set_medium_text( text-006 ).

r_column->set_output_length( 15 ).

*Unknown

r_column = r_columns->get_column( text-019 ).

r_column->set_long_text( text-007 ).

r_column->set_medium_text( text-007 ).

r_column->set_output_length( 10 ).

*Amount

r_column = r_columns->get_column( text-020 ).

r_column->set_long_text( text-008 ).

r_column->set_medium_text( text-008 ).

r_column->set_output_length( 10 ).

r_columns = r_table->get_columns( level = 2 ).

*PA

r_column = r_columns->get_column( text-013 ).

r_column->set_long_text( text-001 ).

r_column->set_medium_text( text-001 ).

r_column->set_output_length( 15 ).

*VSP division code

r_column = r_columns->get_column( text-014 ).

r_column->set_long_text( text-002 ).

r_column->set_medium_text( text-002 ).

r_column->set_output_length( 20 ).

*Employee Number

r_column = r_columns->get_column( text-022 ).

r_column->set_long_text( text-011 ).

r_column->set_medium_text( text-011 ).

r_column->set_output_length( 20 ).

*Employee Name

r_column = r_columns->get_column( text-015 ).

r_column->set_long_text( text-003 ).

r_column->set_medium_text( text-003 ).

r_column->set_output_length( 20 ).

*User Id

r_column = r_columns->get_column( text-023 ).

r_column->set_long_text( text-010 ).

r_column->set_medium_text( text-010 ).

r_column->set_output_length( 15 ).

*Family

r_column = r_columns->get_column( text-016 ).

r_column->set_long_text( text-004 ).

r_column->set_medium_text( text-004 ).

r_column->set_output_length( 10 ).

*Single

r_column = r_columns->get_column( text-017 ).

r_column->set_long_text( text-005 ).

r_column->set_medium_text( text-005 ).

r_column->set_output_length( 10 ).

*Employee + 1

r_column = r_columns->get_column( text-018 ).

r_column->set_long_text( text-006 ).

r_column->set_medium_text( text-006 ).

r_column->set_output_length( 15 ).

*Unknown

r_column = r_columns->get_column( text-019 ).

r_column->set_long_text( text-007 ).

r_column->set_medium_text( text-007 ).

r_column->set_output_length( 10 ).

*Amount

r_column = r_columns->get_column( text-020 ).

r_column->set_long_text( text-008 ).

r_column->set_medium_text( text-008 ).

r_column->set_output_length( 10 ).

*Adding arregation colunms

lr_aggregations = r_table->get_aggregations( 1 ).

lr_aggregation = lr_aggregations->add_aggregation( text-016 ).

lr_aggregation = lr_aggregations->add_aggregation( text-017 ).

lr_aggregation = lr_aggregations->add_aggregation( text-018 ).

lr_aggregation = lr_aggregations->add_aggregation( text-019 ).

lr_aggregation = lr_aggregations->add_aggregation( text-020 ).

r_table->display( ).

CATCH cx_salv_data_error INTO lr_data_error.

lv_message = lr_data_error->get_text( ).

CATCH cx_salv_not_found INTO lr_not_found.

lv_message = lr_not_found->get_text( ).

CATCH cx_salv_existing INTO lr_existing.

lv_message = lr_existing->get_text( ).

ENDTRY.

Former Member
0 Kudos

Hi,

Refer the following link.

http://goo.gl/Derhl

Regards,

Renuka S.