我正在使用NReco庫構建數據透視表。我遵循這些例子,我能夠從DataSet中構建一個簡單的PvT。現在我想要構建一個PvT,它接收在運行時選擇的多個度量,但是我使用一系列度量的過程的動態特性遇到問題,每個度量都有其自己的聚合公式。該公式在運行時是已知的,它只不過是一個總和或一個平均值,而是特定於該度量。我有以下代碼:NReco在運行時採取多重措施
private string CreatePivotTable(DataTable dt, string[] lines, string[] columns, string[] dimensions, string measure)
{
var pivotData = new PivotData(dimensions, new SumAggregatorFactory(measure), new DataTableReader(dt));
var pivotTable = new PivotTable(lines, columns, pivotData);
var htmlResult = new StringWriter();
var pvtHtmlWr = new PivotTableHtmlWriter(htmlResult);
pvtHtmlWr.Write(pivotTable);
return htmlResult.ToString();
}
我想做一些類似下面的代碼添加的措施,並在運行時動態的聚合:
private string CreatePivotTable(DataTable dt, string[] lines, string[] columns, string[] dimensions, Measure[] measures)
{
var pivotData = new PivotData(dimensions, null, new DataTableReader(dt));
foreach(var m in measures)
{
if (m.Formula.equals("sum"))
pivotData.AggregatorFactory.Create(new SumAggregator(m.ColName));
else if(m.Formula.equals("avg")){
pivotData.AggregatorFactory.Create(new AvgAggregator(m.ColName));
}
}
}
如何能夠做到這樣呢?有沒有辦法做到這一點?
謝謝你的詳細解答。我無法通過NReco文檔將這些部分連接在一起,但我知道這是可能的。保持良好的工作Vitaliy,NReco是驚人的,併爲我節省了很多時間! – zriv