数据区域中的摘要是根据数据字段的 PivotDataField.SummarizeValuesBy 属性计算的。默认情况下,它们按“原样”显示。但是,可以使用 PivotDataField.ShowValuesWithCalculation 方法重载将附加计算选项应用于原始汇总值,以更改它们在数据透视表中的显示方式。
可用的计算选项由 PivotShowValuesAsType 枚举的值定义,并在下表中列出。根据所选选项,您可能需要指定基字段或基字段及其基项,以用作自定义计算的基础。只有行或列区域中的字段可以用作基本字段,否则,所有结果将显示为 #N/A 错误。
计算选项 | PivotShow值作为类型成员 |
说明 | 描述 |
% of Grand Total | PivotShowValuesAsType.PercentOfTotal |
占总数的百分比 | 将值显示为数据透视表中所有值的总和的百分比。 |
% of Column Total | PivotShowValuesAsType.PercentOfColumn |
列的百分比 | 将每列中的值显示为该列总值的百分比。 |
% of Row Total | PivotShowValuesAsType.PercentOfRow |
行百分比 | 将每行中的值显示为该行总值的百分比。 |
% of Parent Column Total | PivotShowValuesAsType.PercentOfParentColumn |
父列的百分比 | 将每个内列中的值显示为外列中父项总和的百分比。 |
% of Parent Row Total | PivotShowValuesAsType.PercentOfParentRow |
父行的百分比 | 将每个内行中的值显示为外行中父项总数的百分比。 |
Index | PivotShowValuesAsType.Index |
指数 | 使用以下公式计算每个汇总值的相对重要性: ((单元格中的值)x (总计的总计)) / ((总行总计) x (总列总计)) |
% of Parent Total | PivotShowValuesAsType.PercentOfParent |
父级百分比 | 将数据字段中的值显示为指定基字段中父项值的百分比。 |
Rank Smallest to Largest | PivotShowValuesAsType.RankAscending |
排名升序 | 显示特定基字段的值的排名,将字段中的最小项列为 1,每个较大的值都具有较高的排名值。 |
Rank Largest to Smallest | PivotShowValuesAsType.RankDescending |
排名降序 | 显示特定基字段的值的排名,将字段中的最大项列为 1,每个较小的值都具有较高的排名值。 |
Running Total In | PivotShowValuesAsType.RunningTotal |
运行总计 | 将基本字段中连续项的值显示 为流动总计。 |
% Running Total In | PivotShowValuesAsType.PercentOfRunningTotal |
占运行总数的百分比 | 计算基域中连续项目的运行总计 占总计值的百分比。 |
% Of | PivotShowValuesAsType.Percent |
百分之 | 将值显示为基域中基项值的百分比。 |
Difference From | PivotShowValuesAsType.Difference |
差异 | 将值显示为与基字段中基项值的差值。 |
% Difference From | PivotShowValuesAsType.PercentDifference |
百分比差异 | 将值显示为基域中基项值的百分比差。 |
若要删除应用于数据字段的任何自定义计算,请将 PivotShowValuesAsType.NoCalculation 枚举成员作为参数传递给 PivotDataField.ShowValuesWithCalculation 方法,或调用 PivotDataField.ShowValuesWithoutCalculation 方法。
以下示例演示如何计算当前季度与上一季度之间的产品销售额差异。数据字段中的值使用“Sum”函数进行汇总。
Vb.Net |
Dim worksheet As DevExpress.Spreadsheet.Worksheet = workbook.Worksheets("Report1") workbook.Worksheets.ActiveWorksheet = worksheet '按数据透视表在集合中的名称访问数据透视表。 Dim pivotTable As DevExpress.Spreadsheet.PivotTable = worksheet.PivotTables("PivotTable1") '通过数据字段在集合中的索引访问该字段。 Dim dataField As DevExpress.Spreadsheet.PivotDataField = pivotTable.DataFields(0) '显示当前季度与上一季度之间的产品销售额差异。 dataField.ShowValuesWithCalculation(DevExpress.Spreadsheet.PivotShowValuesAsType.Difference, pivotTable.Fields("Quarter"), DevExpress.Spreadsheet.PivotBaseItemType.Previous) |
C# |
DevExpress.Spreadsheet.Worksheet worksheet = workbook.Worksheets["Report1"]; workbook.Worksheets.ActiveWorksheet = worksheet; // 按数据透视表在集合中的名称访问数据透视表。 DevExpress.Spreadsheet.PivotTable pivotTable = worksheet.PivotTables["PivotTable1"]; //通过数据字段在集合中的索引访问该字段。 DevExpress.Spreadsheet.PivotDataField dataField= pivotTable.DataFields[0]; //显示当前季度与上一季度之间的产品销售额差异。 dataField.ShowValuesWithCalculation(DevExpress.Spreadsheet.PivotShowValuesAsType.Difference, pivotTable.Fields["Quarter"], DevExpress.Spreadsheet.PivotBaseItemType.Previous); |
下图显示了结果。