c# - 基于日期范围的 NReco 过滤立方体
问题描述
需要按日期范围切片立方体。将数据放入多维数据集后,如何传入开始/结束日期来限制切片?
//define full data set
var allRows = (from c in newContext.MCrmOpportunity
orderby c.CloseDate
select c)
.ToList();
//define cube pivot
var cubeData = new PivotData(
new[] { "CloseDate" },
new SumAggregatorFactory("Amount"),
true);
//process data into cube structure
cubeData.ProcessData(allRows.AsEnumerable(), new ObjectMember().GetValue);
var sq = new SliceQuery(cubeData).Where ???????????
var sc = sq.Execute();
return sc;
解决方案
为此目的使用此SliceQuery.Where(string dimension, Func predicate)重载:
DateTime startDt; // range start
DateTime endDt; // range end
var sq = new SliceQuery(cubeData).Where("CloseDate",
d => (DateTime)d >= startDt && (DateTime)d <= endDt );
(我假设“CloseDate”维度类型是 DateTime;如果没有相应地更改“d”的处理)
推荐阅读
- azure - Azure VMSS 缩减策略不允许我为缩减规则设置超过 60 分钟的冷却时间
- python - 在 python/javascript/shell 中打开带有 Windows 64 位附件的 Outlook
- powerbi - 使用免费试用帐户将 Power BI 发布到 Web
- java - 在java中将(n)的最后一个字符更改为另一个字符
- php - 是否有更好的方法来对包含各种语言字符串的数组进行排序
- audio - ffmpeg 从 .ts 文件中仅提取 1 个音频流的一部分
- php - 如何在 PHP 中集成 csv 文件中不同列的数据?
- symfony - Shopware 6:使用 sw_include 时未加载 Twig 文件
- flutter - 如何从未来返回一个字符串
在颤振中 - docker - Docker:无法访问正在运行的服务器 api