Reporting services SSRS-表达式太多

Reporting services SSRS-表达式太多,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我不熟悉SSRS的整个业务。。。在创建第一份报告时,我遇到了两个主要问题 -我知道有更好的方法来完成我想要完成的事情 -跑步需要16分钟 问题:我需要获得在给定(用户选择的)会计月内激活/停用的“卡”数量(按天细分)-我的问题之一是(数据集1-其中包含我所需的信息)只包含会计月的开始和结束日期(我没有日历表) 因此(从屏幕截图)(第1列“ACM START DT Short”我手动添加表达式(29)以获取我需要的日期 因为我只有开始和结束日期,所以我在第一行和最后一行使用这些属性,其余的我使用

我不熟悉SSRS的整个业务。。。在创建第一份报告时,我遇到了两个主要问题

-我知道有更好的方法来完成我想要完成的事情 -跑步需要16分钟

问题:我需要获得在给定(用户选择的)会计月内激活/停用的“卡”数量(按天细分)-我的问题之一是(数据集1-其中包含我所需的信息)只包含会计月的开始和结束日期(我没有日历表)

因此(从屏幕截图)(第1列“ACM START DT Short”我手动添加表达式(29)以获取我需要的日期

因为我只有开始和结束日期,所以我在第一行和最后一行使用这些属性,其余的我使用以下表达式(将日期增加1)

我觉得这真的很愚蠢,我相信有更好的方法来做到这一点

是否有一种方法(例如)编写一些代码来执行类似(见下文)的操作,并将结果(日期)转储到我的第一列中

/我的意思是开始日期+1是将开始日期增加一天

i=1
If (start_date + i) < end_date
  i++
  then return start_date+1
          else return end_date
i=1
如果(开始日期+i)<结束日期
我++
然后返回开始日期+1
否则返回结束日期

有可能吗?如果有,怎么可能?有任何文章可能会有所帮助吗?

我会放弃这种设计(SSRS表达式),并在数据集中解决这个问题-我希望它是SQL的一种形式

如果您没有日历表,我会使用虚拟数字表

您可以交叉连接到virtual numbers表以生成所需的行范围

这种方法还应该解决您的性能问题

i=1
If (start_date + i) < end_date
  i++
  then return start_date+1
          else return end_date