0

我正在使用下面的代码块传递数据透视表以及一些设置以循环测量并在需要时添加差异。输出正在下降总数。总计、列总计和行总计都返回 null。是否有我缺少的配置设置?

private static IPivotTable getDiffPivotTable(IPivotTable pvtTbl, List<bool> showDifference, List<bool> isPercent, List<string> direction)
        {
            DifferencePivotTable diffPvt;
            IPivotTable output = pvtTbl;

            for (int i = 0; i < showDifference.Count; i++)
            {
                if (showDifference[i])
                {
                    switch (direction[i])
                    {
                        case "previousRow":
                            {
                                diffPvt = new DifferencePivotTable(
                                  pvtTbl,
                                  DifferencePivotTable.DifferenceMode.PreviousRow,
                                  i);
                                diffPvt.Percentage = isPercent[i];
                                output = diffPvt;
                                break;
                            }
                        case "nextRow":
                            {
                                diffPvt = new DifferencePivotTable(
                                  pvtTbl,
                                  DifferencePivotTable.DifferenceMode.NextRow,
                                  i);
                                diffPvt.Percentage = isPercent[i];
                                output = diffPvt;
                                break;
                            }
                        case "previousColumn":
                            {
                                diffPvt = new DifferencePivotTable(
                                  pvtTbl,
                                  DifferencePivotTable.DifferenceMode.PreviousColumn,
                                  i);
                                diffPvt.Percentage = isPercent[i];
                                output = diffPvt;
                                break;
                            }
                        case "nextColumn":
                            {
                                diffPvt = new DifferencePivotTable(
                                  pvtTbl,
                                  DifferencePivotTable.DifferenceMode.NextColumn,
                                  i);
                                diffPvt.Percentage = isPercent[i];
                                output = diffPvt;
                                break;
                            }
                        default:
                            {
                                Console.WriteLine("Difference type not supported");
                                return output;
                            }
                    }
                }
            }
            return output;
        }
4

1 回答 1

0

总计为空,因为无法计算其差值(总计的“先前”值是多少?...)。

在当前的实现中,DifferencePivotTable不计算小计(包括行/列总计)的差异。从技术上讲,根据差异类型,可能会计算一些小计:例如,如果有DifferenceMode.PreviousColumnDifferenceMode.NextColumn可以计算具有列总计的行的差异(但这未实现)。

于 2019-11-28T07:04:32.937 回答