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: 

Totals and subtotals in alv grid

Former Member
0 Kudos


Hi,

I want to display total in alv output. Am using do_sum = X in my fieldcatalog, but the total does not appear untill i press the summation icon.

Can anyone help me in this.

I want the subtotals too.

my fieldcatalog :

   CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '20'.
  gs_field_catalog-fieldname      = 'INVOICE_AMOUNT'.
*  gs_field_catalog-ref_fieldname  = 'WRBTR'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
*  gs_field_catalog-cfieldname     = 'WAERS'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
  gs_field_catalog-seltext_m      = 'Invoice Amount'.
*  gs_field_catalog-datatype = 'CURR'.
*  gs_Field_catalog-inttype = 'P'.
*  gs_field_catalog-do_sum         = 'X'.
  APPEND gs_field_catalog TO gt_field_catalog.

  CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '21'.
  gs_field_catalog-fieldname      = 'OPEN_AMOUNT'.
*  gs_field_catalog-ref_fieldname  = 'WRBTR'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
*  gs_field_catalog-cfieldname     = 'WAERS'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
  gs_field_catalog-seltext_m      = 'Open Amount'.
*    gs_field_catalog-datatype = 'CURR'.
*  gs_Field_catalog-inttype = 'P'.
*  gs_field_catalog-do_sum         = 'X'.
  APPEND gs_field_catalog TO gt_field_catalog.

  CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '22'.
  gs_field_catalog-fieldname      = 'PAID_AMOUNT'.
*  gs_field_catalog-ref_fieldname  = 'WRBTR'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
*  gs_field_catalog-cfieldname  = 'WAERS'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
  gs_field_catalog-seltext_m      = 'Paid Amount'.
*    gs_field_catalog-datatype = 'CURR'.
*  gs_Field_catalog-inttype = 'P'.
*  gs_field_catalog-do_sum         = 'X'.
  APPEND gs_field_catalog TO gt_field_catalog.

  CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '23'.
  gs_field_catalog-fieldname      = 'RESERVED_AMOUNT'.
*  gs_field_catalog-ref_fieldname  = 'WRBTR'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
*  gs_field_catalog-cfieldname  = 'WAERS'.
  gs_field_catalog-seltext_m      = 'Reserved Amount'.
*    gs_field_catalog-datatype = 'CURR'.
*  gs_Field_catalog-inttype = 'P'.
*  gs_field_catalog-do_sum         = 'X'.
  APPEND gs_field_catalog TO gt_field_catalog.

  CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '24'.
  gs_field_catalog-fieldname      = 'CURRENCY'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
*  gs_field_catalog-ref_fieldname  = 'WAERS'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
*  gs_field_catalog-reptext_ddic   = 'Currency'.
  gs_field_catalog-seltext_m      = 'Currency'.
  APPEND gs_field_catalog TO gt_field_catalog.

my data declaration :

    TYPES : BEGIN OF ty_invoice,
            partner LIKE zoam_invoice-partner,
            alt_payee LIKE zoam_invoice-alt_payee,
            owner LIKE VIBPOBJREL-partner,
            sgenr  LIKE zoam_invoice-sgenr,
            swenr  LIKE zoam_invoice-swenr,
            zzfl_unit_no  LIKE zoam_invoice-zzfl_unit_no,
            RECNNR LIKE zoam_invoice-RECNNR,
            ALLOC_FACTOR LIKE ZOAM_INVOICE-ALLOC_FACTOR,
            ref_inv_no LIKE zoam_invoice-ref_inv_no,
            reversed LIKE zoam_invoice-reversed,
            cust_inv_num LIKE zoam_invoice-cust_inv_num,
            inv_type  LIKE zoam_invoice-inv_type,
            invt_Des  LIKE ZOAM_INV_TYPE_T-INV_TYPE_DESC,
            invoice_no  LIKE zoam_invoice-invoice_no,
            gjahr  LIKE zoam_invoice-gjahr,
            blart  LIKE zoam_invoice-blart,
            bldat  LIKE zoam_invoice-bldat,
            inv_due_date  LIKE zoam_invoice-inv_due_date,
            curr_due_date  LIKE zoam_invoice-curr_due_date,
            penalty_cal_date  LIKE zoam_invoice-penalty_cal_date,
            invoice_Amount LIKE zoam_invoice-invoice_amount ,
            open_amount  LIKE bsid-wrbtr,
            paid_amount  LIKE bsid-wrbtr,
            reserved_Amount  LIKE bsid-wrbtr,
            currency LIKE bsid-waers,
    waers TYPE waers,
         END OF ty_invoice,

Sort for subtotals

   wa_sort-spos      = 1.
  wa_sort-fieldname = 'SGENR'.
  wa_sort-tabname = 'LT_INVOICE'.
  wa_sort-up = 'X'.
  wa_sort-SUBTOT    = 'X'. "subtotals any totals column by this field
*  gd_sortcat-tabname
  APPEND wa_sort TO it_sortcat.

  wa_sort-spos      = 1.
  wa_sort-fieldname = 'ZZFL_UNIT_NO'.
  wa_sort-tabname = 'LT_INVOICE'.
  wa_sort-up = 'X'.
  wa_sort-SUBTOT    = 'X'. "subtotals any totals column by this field
*  gd_sortcat-tabname
  APPEND wa_sort TO it_sortcat.

7 REPLIES 7

Former Member
0 Kudos

Hi,

I see the DO_SUM as commented in your code....

Regards

0 Kudos

i commented it for some testing purpose, even if i uncomment still not getting the total

Former Member
0 Kudos

Hi,

Make sure 'no_totalline' field in your layout is not set as 'X'.

Regards,

Indira

VijayCR
Active Contributor
0 Kudos

Hi,

check that the data type of your field..is it summable?

Possibly the reference fields are incorrect in your table.

Can you please send screen shots of your table, ( the fields + reference) and in your coding , the lines where you declare your internal table?

Thanks,

Vijay

Former Member
0 Kudos

Hi,

declaration
    TYPES : BEGIN OF ty_invoice,
            partner LIKE zoam_invoice-partner,
            alt_payee LIKE zoam_invoice-alt_payee,
            owner LIKE VIBPOBJREL-partner,
            sgenr  LIKE zoam_invoice-sgenr,
            swenr  LIKE zoam_invoice-swenr,
            zzfl_unit_no  LIKE zoam_invoice-zzfl_unit_no,
            RECNNR LIKE zoam_invoice-RECNNR,
            ALLOC_FACTOR LIKE ZOAM_INVOICE-ALLOC_FACTOR,
            ref_inv_no LIKE zoam_invoice-ref_inv_no,
            reversed LIKE zoam_invoice-reversed,
            cust_inv_num LIKE zoam_invoice-cust_inv_num,
            inv_type  LIKE zoam_invoice-inv_type,
            invt_Des  LIKE ZOAM_INV_TYPE_T-INV_TYPE_DESC,
            invoice_no  LIKE zoam_invoice-invoice_no,
            gjahr  LIKE zoam_invoice-gjahr,
            blart  LIKE zoam_invoice-blart,
            bldat  LIKE zoam_invoice-bldat,
            inv_due_date  LIKE zoam_invoice-inv_due_date,
            curr_due_date  LIKE zoam_invoice-curr_due_date,
            penalty_cal_date  LIKE zoam_invoice-penalty_cal_date,
            invoice_Amount LIKE zoam_invoice-invoice_amount ,
            open_amount  LIKE bsid-wrbtr,
            paid_amount  LIKE bsid-wrbtr,
            reserved_Amount  LIKE bsid-wrbtr,
            currency LIKE bsid-waers,
*            waers TYPE waers,
         END OF ty_invoice,

    CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '20'.
  gs_field_catalog-fieldname      = 'INVOICE_AMOUNT'.
*  gs_field_catalog-ref_fieldname  = 'WRBTR'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
*  gs_field_catalog-cfieldname     = 'WAERS'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
  gs_field_catalog-seltext_m      = 'Invoice Amount'.
*  gs_field_catalog-datatype = 'CURR'.
*  gs_Field_catalog-inttype = 'P'.
  gs_field_catalog-do_sum         = 'X'.
  APPEND gs_field_catalog TO gt_field_catalog.

  CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '21'.
  gs_field_catalog-fieldname      = 'OPEN_AMOUNT'.
*  gs_field_catalog-ref_fieldname  = 'WRBTR'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
*  gs_field_catalog-cfieldname     = 'WAERS'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
  gs_field_catalog-seltext_m      = 'Open Amount'.
*    gs_field_catalog-datatype = 'CURR'.
*  gs_Field_catalog-inttype = 'P'.
  gs_field_catalog-do_sum         = 'X'.
  APPEND gs_field_catalog TO gt_field_catalog.

  CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '22'.
  gs_field_catalog-fieldname      = 'PAID_AMOUNT'.
*  gs_field_catalog-ref_fieldname  = 'WRBTR'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
*  gs_field_catalog-cfieldname  = 'WAERS'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
  gs_field_catalog-seltext_m      = 'Paid Amount'.
*    gs_field_catalog-datatype = 'CURR'.
*  gs_Field_catalog-inttype = 'P'.
  gs_field_catalog-do_sum         = 'X'.
  APPEND gs_field_catalog TO gt_field_catalog.

  CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '23'.
  gs_field_catalog-fieldname      = 'RESERVED_AMOUNT'.
*  gs_field_catalog-ref_fieldname  = 'WRBTR'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
*  gs_field_catalog-cfieldname  = 'WAERS'.
  gs_field_catalog-seltext_m      = 'Reserved Amount'.
*    gs_field_catalog-datatype = 'CURR'.
*  gs_Field_catalog-inttype = 'P'.
  gs_field_catalog-do_sum         = 'X'.
  APPEND gs_field_catalog TO gt_field_catalog.

  CLEAR: gs_field_catalog.
*  gs_field_catalog-col_pos = '24'.
  gs_field_catalog-fieldname      = 'CURRENCY'.
*  gs_field_catalog-ref_tabname    = 'BSID'.
*  gs_field_catalog-ref_fieldname  = 'WAERS'.
  gs_field_catalog-tabname        = 'LT_INVOICE'.
*  gs_field_catalog-reptext_ddic   = 'Currency'.
  gs_field_catalog-seltext_m      = 'Currency'.
  APPEND gs_field_catalog TO gt_field_catalog.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = sy-repid
      it_fieldcat        = gt_field_catalog
      is_layout          = p_g_alv_layout
      it_sort           = it_sortcat
*      i_save             = 'A'
    TABLES
      t_outtab           = lt_invoice
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.
  IF sy-subrc <> 0.
    WRITE: / 'Error when calling ALV List Display'.
  ENDIF.

    wa_sort-spos      = 1.
  wa_sort-fieldname = 'ZZFL_UNIT_NO'.
  wa_sort-tabname = 'LT_INVOICE'.
  wa_sort-up = 'X'.
  wa_sort-subtot    = 'X'. "subtotals any totals column by this field
*  gd_sortcat-tabname
  APPEND wa_sort TO it_sortcat.

  FORM alv_build_layout  CHANGING p_g_alv_layout TYPE slis_layout_alv.

  p_g_alv_layout-colwidth_optimize = 'X'.
*  p_g_alv_layout-f2code            = 'DISP'.
*  p_g_alv_layout-group_change_edit = 'X'.
  p_g_alv_layout-zebra             = 'X'.

ENDFORM.                    " ALV_BUILD_LAYOUT

Former Member
0 Kudos

Hi,

Please uncomment the field catalog parameter datatype ( gs_field_catalog-datatype = 'CURR' ) and try.


It should work.

Regards,

Indira.

raymond_giuseppi
Active Contributor
0 Kudos

Every SORT item is number 1 (wa_sort-spos      = 1), DO_SUM is commented, etc.

So, could you execute The Consistency Check, before any other action at initial display of the grid ?


Regards,

Raymond