1

在使用不同的聚合器工厂时,是否有一种方法或覆盖允许为返回标签定义自定义名称。例如,调用 SumAggregatoryFactory 对“Amount”字段求和将返回“Sum of Amount”的行标签。如果我们希望它是“总金额”、“总计”或其他自定义值怎么办?

4

2 回答 2

0

创建一个ResultAmount类。这将返回结果的描述,而不是字符串。像这样的东西:

        class ResultAmount
        {
            public string Label { get; set; }
            public decimal SumAmount { get; set; }

            public override string ToString()
            {
                return $"{Label}: {SumAmount}";
            }
        }

对于不同的工厂,Label值可能不同。然后你有一个工厂:

        class TotalCalculations
        {
            public ResultAmount SumAggregatoryFactory()
            {
                return new ResultAmount
                {
                    Label = "Total",
                    SumAmount = 100
                };
            }
        }

以及调用工厂的要点:

    class BillingService
    {
        public void Print(TotalCalculations calc)
        {
            //when calling the method, you can use the standard Label                
            string original = calc.SumAggregatoryFactory().ToString();

             //or take only the sum and configure the result string yourself
            string custom = $"My message: {calc.SumAggregatoryFactory().SumAmount}";
        }
    }
于 2019-10-30T21:13:44.460 回答
0

如果您使用 PivotData Toolkit 编写器(如PivotTableHtmlWriter),您可以像使用 FormatMeasureHeader 属性一样自定义度量标签:

pvtHtmlWr.FormatMeasureHeader = (aggrFactory, measureIndex) => {
  // customize header by factory type or measure index
  return aggrFactory.ToString();
};

(另见:https ://www.nrecosite.com/pivotdata/format-pivot-table.aspx )。

在自定义呈现的情况下,您可以定义自己的度量名称格式,并考虑聚合器类型。

于 2019-10-31T11:10:11.983 回答