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));
}
}
}
どのように私はこのような何かを達成することができますか?それを行う方法はありますか?
あなたは次のようにいくつかの措置を収集するためにPivotData
クラスを設定することができます
詳細な回答ありがとうございます。私は、NRecoのドキュメントを使って作品を一緒に結びつけるのに苦労していましたが、何とか可能でした。良い仕事を続けてくださいVitaliy、NRecoは素晴らしいですし、私に多くの時間を節約しています! – zriv