【问题标题】:rdlc tablix include missing datesrdlc tablix 包括缺少的日期
【发布时间】:2010-12-06 12:01:21
【问题描述】:

我有一个 rdlc 报告,其中的数据源提供如下内容:

1/1/01    User1   5
1/1/01    User2   3
2/1/01    User1   4
2/1/01    User2   8
3/1/01    User1   5
4/1/01    User2   3
6/1/01    User1   9
6/1/01    User2   2

然后我使用矩阵(又名 tablix)在左侧显示 Date 并在顶部显示 User。计数在十字路口。这一切正常。

我可以将其配置为缺失的单元格有一个0 - 例如对于 3 号的User2

问题是 5 日没有条目(例如,没有用户有任何活动的日期)。这也会弄乱图表

我想要它做的是填充最低日期和最高日期之间的每个日期。

我怎样才能做到这一点?

【问题讨论】:

    标签: data-binding reporting-services reporting


    【解决方案1】:

    对于 Crystal 报表解决方案,this 似乎是一个不错的方法 (CR 8)

    要在数据源中解决,就看数据源是什么了... 例如。 MySQL的解决方案:MySQL how to fill missing dates in range?

    【讨论】:

    • 我不想在数据源中解决它。在将IQueryable 转换为anonymous typeIEnumerable 之前,我使用EF4 代码优先并针对我的存储库运行任意查询,这恰好符合报告所期望的格式——这允许报告使用相同的格式BL 和 App 其他部分的限制(例如用户 A 根本看不到用户 B 的记录)
    • 而且[un?]幸运的是,我们使用的是微软报告而不是水晶 - VS2010/.Net 4 的水晶组件还没有工作
    • 是的,我没有想法...我多次遇到这个问题,幸运的是我可以在数据库视图中解决它...但是我喜欢你在这里提到的抽象实践。我想说解决它的唯一方法是通过代码(将源数据放在自定义数据结构中,并在可能的情况下将其提供给报告之前填补空白,但我想我说的是显而易见的)
    【解决方案2】:

    我最终解决了这个问题,方法是使用指定的第一个和最后一个日期之间的日期列表,并获取每个用户在指定日期的计数。

    我不相信这是最好的解决方案,但我没有找到更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多