English

Bug: ICalcRendererValues.GetFieldTotals not working properly

Description

When building a ChartRenderer programmatically, ICalcRendererValues.GetFieldTotals is commonly used to set up 'Percent of Total' normalization. This method returns a variant (an array of field totals), but the return value is always empty.

Cause

This occurs due to defective logic in the CalcRendererValues implementation of ICalcRendererValues.

Workaround

Avoid using ICalcRendererValues to calculate field totals. Instead, do one of the following:

  • Manually calculate field totals using the ArcMap graphical user interface, and hard code these values into the code:

    Dim pChtRend as IChartRenderer
    Dim pCalcValues as ICalcRendererValues
    Dim pField as IFields
    Dim i as Integer

    ...

    Dim Totals As Variant
    Totals = pCalcValues.GetFieldTotals ' empty, not usable
    ' use hardcoded field totals instead
    Dim dTotals(4) As Double
    dTotals(0) = 7518518
    dTotals(1) = 12094871
    dTotals(2) = 26716211
    dTotals(3) = 11447833
    ' FieldTotal used for normalization by percent of total
    For i = 0 To pFields.FieldCount - 1
    pChtRend.FieldTotal(i) = dTotals(i)
    Next i

  • Write your own logic to calculate field totals.