Se puede hacer subtotales en un alv con minisap?¿

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • sirmapu
    Junior Member
    • jul
    • 6

    #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
  • Carlitros36
    Member
    • ago
    • 32

    #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...

    Comentario

    • sirmapu
      Junior Member
      • jul
      • 6

      #3
      No amigo

      De esa manera no funciona; esto lo tengo que hacer para minisap.

      Comentario

      • Hikari
        Member
        • oct
        • 50

        #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.

        Comentario

        • SAPING
          Senior Member
          • may
          • 199

          #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.
          Editado por última vez por SAPING; 24/08/2011, 16:47:14.

          Comentario

          Trabajando...