ALV With IDA
**Check DB Capabilities
CHECK cl_salv_gui_table_ida=>db_capabilities( )->is_table_supported( iv_ddic_table_name = 'ZTable_name').
"Create IDA
DATA(o_ida) = cl_salv_gui_table_ida=>create( iv_table_name = 'ZTABLE_NAME' ).
o_ida->field_catalog( )->set_available_fields( its_field_names = VALUE if_salv_gui_types_ida=>yts_field_name(
( CONV fieldname( 'LAUFI') )
( CONV fieldname( 'LAUFD') )
( CONV fieldname( 'PRODUCT_CODE') )
( CONV fieldname( 'COUNTRY_CODE') )
( CONV fieldname( 'ACCOUNT_NUMBER') )
( CONV fieldname( 'TRANS_REF_NUM') )
( CONV fieldname( 'PAYMENT_CURR') )
( CONV fieldname( 'PAYMENT_AMOUNT') )
( CONV fieldname( 'STATUS') )
( CONV fieldname( 'REMARKS') )
( CONV fieldname( 'BENEF_NAME') )
( CONV fieldname( 'BENEF_ACCOUNT') )
( CONV fieldname( 'BENEF_BRC') )
( CONV fieldattributes( 'PAYMENT_AMOUNT') )
) ).
"Set Maximum Rows Recommended
IF cl_salv_gui_table_ida=>db_capabilities( )->is_max_rows_recommended( ).
o_ida->set_maximum_number_of_rows( iv_number_of_rows = 2000 ).
ENDIF.
"Handling Select options
DATA(lo_range_collector) = NEW cl_salv_range_tab_collector( ).
lo_range_collector->add_ranges_for_name( iv_name = 'LAUFI' it_ranges = s_laufi[] ).
lo_range_collector->add_ranges_for_name( iv_name = 'LAUFD' it_ranges = s_laufd[] ).
lo_range_collector->add_ranges_for_name( iv_name = 'TRANS_REF_NUM' it_ranges = s_ref[] ).
lo_range_collector->add_ranges_for_name( iv_name = 'STATUS' it_ranges = s_stat[] ).
lo_range_collector->get_collected_ranges(
IMPORTING
et_named_ranges = DATA(lt_select_options) ).
DATA: ls_aggr_rule TYPE if_salv_gui_types_ida=>ys_aggregation_rule,
lt_aggr_rules TYPE if_salv_gui_types_ida=>yt_aggregation_rule.
*ls_aggr_rule-field_name = 'PAYMENT_AMOUNT'.
*ls_aggr_rule-function = if_salv_service_types=>cs_function_code-sum.
*APPEND ls_aggr_rule TO lt_aggr_rules.
o_ida->set_select_options( it_ranges = lt_select_options ).
*o_ida->default_layout( )->set_aggregations( lt_aggr_rules ).
"Display
o_ida->fullscreen( )->display( ).
No comments:
Post a Comment