|
#1
|
|||
|
|||
Se puede hacer subtotales en un alv con minisap?¿
Si se pueden que es lo que me esta faltando?
necesito que me agrupe por carrid y me sume y me saque el subtotal del ultimo del catalo la columna total. TYPE-POOLS: slis. data: layout_alv TYPE slis_layout_alv, ti_fieldcat_alv TYPE slis_t_fieldcat_alv, wa_fieldcat_alv TYPE slis_fieldcat_alv, d_sortcat TYPE slis_t_sortinfo_alv, d_sortcat_ln LIKE LINE OF d_sortcat, g_repid LIKE sy-repid. PERFORM obten_datos. PERFORM inicializa_layout. PERFORM arma_fieldcatalog. PERFORM f_field_sort. PERFORM muestra_alv. *---------------------------------------------------------------------* * FORM inicializa_layout * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* FORM inicializa_layout. layout_alv-colwidth_optimize = 'X'. layout_alv-zebra = 'X'. layout_alv-window_titlebar = 'Reporte en formato ALV'. *Título de la ventana ENDFORM. *---------------------------------------------------------------------* * FORM arma_fieldcatalog * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* FORM arma_fieldcatalog. wa_fieldcat_alv-col_pos = '1'. wa_fieldcat_alv-fieldname = 'CARRID'. wa_fieldcat_alv-reptext_ddic = 'Numero de cliente'. * wa_fieldcat_alv-no_out = 'X'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '2'. wa_fieldcat_alv-fieldname = 'CUSTOMID'. wa_fieldcat_alv-reptext_ddic = 'Numero de cliente'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '3'. wa_fieldcat_alv-fieldname = 'NAME'. wa_fieldcat_alv-reptext_ddic = 'Nombre del cliente'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '4'. wa_fieldcat_alv-fieldname = 'CITY'. wa_fieldcat_alv-reptext_ddic = 'CIUDAD'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '5'. wa_fieldcat_alv-fieldname = 'COUNTRY'. wa_fieldcat_alv-reptext_ddic = 'Pais'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '6'. wa_fieldcat_alv-fieldname = 'CUSTTYPE'. wa_fieldcat_alv-reptext_ddic = 'Tipo de cliente'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. * wa_fieldcat_alv-col_pos = '4'. * wa_fieldcat_alv-fieldname = 'PLANETYPE'. * wa_fieldcat_alv-reptext_ddic = 'Tipo de avion'. * APPEND wa_fieldcat_alv TO ti_fieldcat_alv. * * wa_fieldcat_alv-col_pos = '5'. * wa_fieldcat_alv-fieldname = 'BOOKID'. * wa_fieldcat_alv-reptext_ddic = 'Libro de vuelo'. * APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '7'. wa_fieldcat_alv-fieldname = 'PRICE'. wa_fieldcat_alv-reptext_ddic = 'Precio'. wa_fieldcat_alv-sp_group = 'CARRID'. wa_fieldcat_alv-do_sum = 'X'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '8'. wa_fieldcat_alv-fieldname = 'CURRENCY'. wa_fieldcat_alv-reptext_ddic = 'Moneda'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '9'. wa_fieldcat_alv-fieldname = 'LATITUDE'. wa_fieldcat_alv-reptext_ddic = 'Latitud'. wa_fieldcat_alv-no_sign = 'X'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '10'. wa_fieldcat_alv-fieldname = 'LONGITUDE'. wa_fieldcat_alv-reptext_ddic = 'Longitud'. wa_fieldcat_alv-no_sign = 'X'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '11'. wa_fieldcat_alv-fieldname = 'DESC'. wa_fieldcat_alv-reptext_ddic = 'Descuento'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. wa_fieldcat_alv-col_pos = '12'. wa_fieldcat_alv-fieldname = 'TOTAL'. wa_fieldcat_alv-reptext_ddic = 'Total'. wa_fieldcat_alv-do_sum = 'X'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. ENDFORM. *---------------------------------------------------------------------* * FORM muestra_alv * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* FORM muestra_alv. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = g_repid i_background_id = 'ALV_BACKGROUND' i_callback_user_command = 'USER_COMMAND' i_callback_top_of_page = 'ARMA_TOPOFPAGE' is_layout = layout_alv * “ Variable de Layout it_fieldcat = ti_fieldcat_alv it_sort = d_sortcat i_save = 'A' *“ Variable de Field Catalog TABLES t_outtab = t_vuelos 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. *&---------------------------------------------------------------------* *& Form f_field_sort *&---------------------------------------------------------------------* FORM f_field_sort. DATA: ls_sort TYPE slis_sortinfo_alv. ls_sort-fieldname = 'CUSTOMID'. ls_sort-spos = 2. ls_sort-up = 'X'. ls_sort-subtot = 'X'. ls_sort-expa = 'X'. APPEND ls_sort TO d_sortcat. ENDFORM. " f_field_sort |
#2
|
|||
|
|||
Hola
En FORM arma_fieldcatalog.
wa_fieldcat_alv-col_pos = '1'. wa_fieldcat_alv-fieldname = 'CARRID'. wa_fieldcat_alv-reptext_ddic = 'Numero de cliente'. * wa_fieldcat_alv-no_out = 'X'. APPEND wa_fieldcat_alv TO ti_fieldcat_alv. Antes del APPEND agregas wa_fieldcat_alv-do_sum = 'X'. En la ultima columna lo esta haciendo porque tiene esta misma sentencia, al ultimo: en : FORM f_field_sort. DATA: ls_sort TYPE slis_sortinfo_alv. ls_sort-fieldname = 'CUSTOMID'. ls_sort-spos = 2. ls_sort-up = 'X'. ls_sort-subtot = 'X'. ls_sort-expa = 'X'. APPEND ls_sort TO d_sortcat. ENDFORM. " f_field_sort Antes de que termine el FORM colocas: ls_sort-fieldname = 'CARRID'. ls_sort-spos = 2. ls_sort-up = 'X'. ls_sort-subtot = 'X'. ls_sort-expa = 'X'. APPEND ls_sort TO d_sortcat. Espero haberte ayudado igual soy JUNIOR, Saludos... |
#3
|
|||
|
|||
No amigo
De esa manera no funciona; esto lo tengo que hacer para minisap.
|
#4
|
|||
|
|||
Checa buscando con todos los reportes BCALV* en la SE38, son reportes de ejemplo que implementan ALVs, de ahí alguno te tiene que servir...
Saludos. |
#5
|
|||
|
|||
Con cosas de ese estilo debes recorrer las estructuras del fieldcat para ver si te sirven las opciones que tienen ahi...
Entre todas las opciones estan estas: * wa_fieldcat-do_sum = 'X'. "Se calculará la suma de este campo. * wa_fieldcat-decimals_out = '0'. "Cantidad de decimales a mostrar. Sino ojea este form: FORM seteo_orden . CLEAR wa_sort. wa_sort-fieldname = 'CARRID'. "Campo a ordenar wa_sort-up = 'X'. "Tipo de orden ascendente wa_sort-spos = 1. "Posición del campo a ordenar wa_sort-subtot = 'X'. "calcular subtotales con el campo por el que * se ordena wa_sort-expa = 'X'. "mostrar el subtotal con la posibilidad de * expandirlo *Si queremos el muestre el campo subtot ya expandido, seteamos con SPACE APPEND wa_sort TO it_sort. ENDFORM. " seteo_orden (Y esta estructura la pasas a la funcion obviamente) Espero te sirva. Saludos. Úlima edición por SAPING fecha: 24/08/11 a las 16:47:14. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|