Mostrando entradas con la etiqueta CL_SALV_TABLE. Mostrar todas las entradas
Mostrando entradas con la etiqueta CL_SALV_TABLE. Mostrar todas las entradas

sábado, 23 de abril de 2016

ALV Factory - Ordenamiento, Totales y Subtotales

******************************************************************************** * INFORMACIÓN GENERAL - GENERAL INFORMATION ******************************************************************************** *^ Autor - Author : José Manrique Valderrama *^ Objetivo - Objetive : TEST - ALV FACTORY *^ Website : abapejemplos.blogspot.com ******************************************************************************** REPORT zjm_demo_alv_factory. DATA: gtd_sflight TYPE STANDARD TABLE OF sflight. DATA: gwa_sflight TYPE sflight. DATA: go_alv TYPE REF TO cl_salv_table, go_sorts TYPE REF TO cl_salv_sorts, go_aggrs TYPE REF TO cl_salv_aggregations. * Párametros de selección PARAMETERS: p_carrid TYPE sflight-carrid OBLIGATORY. SELECT-OPTIONS: s_connid FOR gwa_sflight-connid, s_fldate FOR gwa_sflight-fldate. START-OF-SELECTION. SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gtd_sflight WHERE carrid EQ p_carrid AND connid IN s_connid AND fldate IN s_fldate. IF sy-subrc NE 0. "No se encontraron datos para esta ejecución MESSAGE s425(fr) DISPLAY LIKE 'E'. RETURN. ENDIF. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = go_alv CHANGING t_table = gtd_sflight ). CATCH cx_salv_msg. "Se ha producido un error en ALV MESSAGE s899(salv_exception) DISPLAY LIKE 'E'. RETURN. ENDTRY. go_sorts = go_alv->get_sorts( ). TRY. go_sorts->add_sort( columnname = 'FLDATE' "Columna a ordenar position = 1 "1er criterio de ordenamiento sequence = if_salv_c_sort=>sort_up "Orden Ascendente subtotal = abap_true ). "Se utiliza para Subtotales CATCH cx_salv_data_error cx_salv_not_found cx_salv_existing . "Se ha producido un error en ALV MESSAGE s899(salv_exception) DISPLAY LIKE 'E'. RETURN. ENDTRY. go_aggrs = go_alv->get_aggregations( ). TRY. go_aggrs->add_aggregation( columnname = 'PAYMENTSUM' "Columna aggregation = if_salv_c_aggregation=>total ). "Totalizar(suma) CATCH cx_salv_data_error cx_salv_not_found cx_salv_existing . "Se ha producido un error en ALV MESSAGE s899(salv_exception) DISPLAY LIKE 'E'. RETURN. ENDTRY. * Se activan todas las funciones(botones) estándar del ALV go_alv->get_functions( )->set_all( abap_true ). go_alv->display( ).
Salida del ALV

domingo, 6 de marzo de 2016

Fullscreen ALV GRID Factory - Creación de Reporte simple

******************************************************************************** * INFORMACIÓN GENERAL - GENERAL INFORMATION ******************************************************************************** *^ Autor - Author : José Manrique Valderrama *^ Objetivo - Objetive : TEST - ALV FACTORY *^ Website : abapejemplos.blogspot.com ******************************************************************************** REPORT zjm_demo_alv_factory. * Declaración de variables DATA: gtd_sflight TYPE STANDARD TABLE OF sflight. DATA: gwa_sflight TYPE sflight. DATA: go_alv TYPE REF TO cl_salv_table. * Párametros de selección PARAMETERS: p_carrid TYPE sflight-carrid OBLIGATORY. SELECT-OPTIONS: s_connid FOR gwa_sflight-connid, s_fldate FOR gwa_sflight-fldate. START-OF-SELECTION. SELECT * FROM sflight INTO TABLE gtd_sflight WHERE carrid EQ p_carrid AND connid IN s_connid AND fldate IN s_fldate. IF sy-subrc NE 0. "No se encontraron datos para esta ejecución MESSAGE s425(fr) DISPLAY LIKE 'E'. RETURN. ENDIF. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = go_alv CHANGING t_table = gtd_sflight ). CATCH cx_salv_msg. "Se ha producido un error en ALV MESSAGE s899(salv_exception) DISPLAY LIKE 'E'. RETURN. ENDTRY. go_alv->display( ).
Párametros de selección


Salida del ALV

Fullscreen ALV Grid Factory - Botones Estándar del ALV

******************************************************************************** * INFORMACIÓN GENERAL - GENERAL INFORMATION ******************************************************************************** *^ Autor - Author : José Manrique Valderrama *^ Objetivo - Objetive : TEST - ALV FACTORY - CL_SALV_FUNCTIONS_LIST *^ Website : abapejemplos.blogspot.com ******************************************************************************** REPORT zjm_demo_alv_factory. * Declaración de variables DATA: gtd_sflight TYPE STANDARD TABLE OF sflight. DATA: gwa_sflight TYPE sflight. DATA: go_alv TYPE REF TO cl_salv_table, go_functions TYPE REF TO cl_salv_functions_list. * Párametros de selección PARAMETERS: p_carrid TYPE sflight-carrid OBLIGATORY. SELECT-OPTIONS: s_connid FOR gwa_sflight-connid, s_fldate FOR gwa_sflight-fldate. START-OF-SELECTION. SELECT * FROM sflight INTO TABLE gtd_sflight WHERE carrid EQ p_carrid AND connid IN s_connid AND fldate IN s_fldate. IF sy-subrc NE 0. "No se encontraron datos para esta ejecución MESSAGE s425(fr) DISPLAY LIKE 'E'. RETURN. ENDIF. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = go_alv CHANGING t_table = gtd_sflight ). CATCH cx_salv_msg. "Se ha producido un error en ALV MESSAGE s899(salv_exception) DISPLAY LIKE 'E'. RETURN. ENDTRY. go_functions = go_alv->get_functions( ). go_functions->set_sort_asc( abap_true ). "Ordenar ascendentemente go_functions->set_sort_desc( abap_true ). "Ordenar descendentemente ** Se activan todas las funciones * go_functions->set_all( abap_true ). go_alv->display( ).
Salida del ALV



Los métodos para activar las funciones se encuentran en la clase CL_SALV_FUNCTIONS_LIST, algunas funciones solo están disponibles de acuerdo al modo de ejecución( ALV List, ALV Tree, Fullscreen Grid, Dynpro Grid ).

ALV Factory - Color en Celda, Fila o Columna

******************************************************************************** * INFORMACIÓN GENERAL - GENERAL INFORMATION ******************************************************************************** *^ Autor - Author : José Manrique Valderrama *^ Objetivo - Objetive : TEST - ALV FACTORY *^ Website : abapejemplos.blogspot.com ******************************************************************************** REPORT zjm_demo_alv_factory. TYPES: BEGIN OF gty_sflight. INCLUDE STRUCTURE sflight. * Columna para controlar el color por celda o fila TYPES: color TYPE lvc_t_scol, END OF gty_sflight. * Declaración de variables DATA: gtd_sflight TYPE STANDARD TABLE OF gty_sflight. DATA: gwa_sflight TYPE sflight, gwa_color TYPE lvc_s_colo. DATA: go_alv TYPE REF TO cl_salv_table, go_columns TYPE REF TO cl_salv_columns_table, go_column TYPE REF TO cl_salv_column_table. * Párametros de selección PARAMETERS: p_carrid TYPE sflight-carrid OBLIGATORY. FIELD-SYMBOLS: <fs_sflight> TYPE gty_sflight, <fs_color> TYPE lvc_s_scol. SELECT-OPTIONS: s_connid FOR gwa_sflight-connid, s_fldate FOR gwa_sflight-fldate. START-OF-SELECTION. SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gtd_sflight WHERE carrid EQ p_carrid AND connid IN s_connid AND fldate IN s_fldate. IF sy-subrc NE 0. "No se encontraron datos para esta ejecución MESSAGE s425(fr) DISPLAY LIKE 'E'. RETURN. ENDIF. LOOP AT gtd_sflight ASSIGNING <fs_sflight>. * Si el campo SEATSOCC es cero, la fila es amarilla IF <fs_sflight>-seatsocc EQ 0. APPEND INITIAL LINE TO <fs_sflight>-color ASSIGNING <fs_color>. * Color de fila: dejar en blanco <fs_color>-fname = space. <fs_color>-color-col = 3. "Amarillo <fs_color>-color-int = 1. <fs_color>-color-inv = 0. ENDIF. * Campo PAYMENTSUM: si es mayor que 100000, verde, sino rojo IF <fs_sflight>-paymentsum GT 100000. APPEND INITIAL LINE TO <fs_sflight>-color ASSIGNING <fs_color>. * Color de celda: llenar columna <fs_color>-fname = 'PAYMENTSUM'. <fs_color>-color-col = 5. "Verde <fs_color>-color-int = 0. <fs_color>-color-inv = 0. ELSE. APPEND INITIAL LINE TO <fs_sflight>-color ASSIGNING <fs_color>. * Color de celda: llenar columna <fs_color>-fname = 'PAYMENTSUM'. <fs_color>-color-col = 6. "Rojo <fs_color>-color-int = 0. <fs_color>-color-inv = 0. ENDIF. ENDLOOP. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = go_alv CHANGING t_table = gtd_sflight ). CATCH cx_salv_msg. "Se ha producido un error en ALV MESSAGE s899(salv_exception) DISPLAY LIKE 'E'. RETURN. ENDTRY. * Se activan todas las funciones go_alv->get_functions( )->set_all( abap_true ). go_columns = go_alv->get_columns( ). * La columna COLOR contiene el color por celda o fila go_columns->set_color_column( 'COLOR' ). * Setea color para una columnar gwa_color-col = 5. "Verde gwa_color-int = 1. gwa_color-inv = 0. * Columna CURRENCY verde go_column ?= go_columns->get_column( 'CURRENCY' ). go_column->set_color( gwa_color ). go_alv->display( ).
Salida del ALV