Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 报表生成器3创建当前、30、60、日期范围参数以生成报表_Reporting Services_Parameters_Report_Range_Builder - Fatal编程技术网

Reporting services 报表生成器3创建当前、30、60、日期范围参数以生成报表

Reporting services 报表生成器3创建当前、30、60、日期范围参数以生成报表,reporting-services,parameters,report,range,builder,Reporting Services,Parameters,Report,Range,Builder,我是报表生成器的新手,我的任务是创建日期范围搜索参数。他们正在寻找当前值、30天值和60天值。整个报告正在运行,我只对它做了一些修改。所以在parameters中,我创建了一个dateRange参数,并将数据类型设置为Date/Time,下面没有复选框。在可用值属性中,我指定了3个值: 当前:=DateAdd(“d”,-1,Today()) 30天范围:=DateAdd(“d”、-30,Today()) 60天范围:=DateAdd(“d”、-60,Today()) 默认值和高级属性保持不变 我

我是报表生成器的新手,我的任务是创建日期范围搜索参数。他们正在寻找当前值、30天值和60天值。整个报告正在运行,我只对它做了一些修改。所以在parameters中,我创建了一个dateRange参数,并将数据类型设置为Date/Time,下面没有复选框。在可用值属性中,我指定了3个值:

  • 当前:
    =DateAdd(“d”,-1,Today())
  • 30天范围:
    =DateAdd(“d”、-30,Today())
  • 60天范围:
    =DateAdd(“d”、-60,Today())
  • 默认值和高级属性保持不变

    我为什么要用这些表达?我在查看StartDate和EndDate值,EndDate值有
    =DateAdd(“d”,-1,Today())
    ,所以我的逻辑是,回到30天和60天之前,我需要在前面添加一个neg。我认为这是错误的想法。客户正在寻找参数,以返回从每月第一天开始的值,因此我需要确保使用month.minValue使报告始终从每月第一天开始。我希望所有这些都有意义。再一次,我是个新手,所以请原谅我的无知


    Jim

    根据您的问题和反馈意见,这就是我得到的

    定义
    DateRange
    参数如下:

    可用值:

    =DateAdd("d", -1, Today())
    =DateAdd("d", -30, Today())
    =DateAdd("d", -60, Today())
    
    要使用当前
    =DateAdd(“d”,-1,Today())
    作为默认值,必须将其置于
    DateRange
    参数的默认值选项卡中

    现在,对于handle结束日期,我已经创建了另一个名为
    EndDate
    的参数,将其默认值设置为current:

    =DateAdd("d", -1, Today())
    
    现在,在数据集查询中,您必须使用参数
    DateRange
    获取月份的第一个日期。检查这个例子

    select *
    from mytable a
    where a.DocDate between DATEADD(month, DATEDIFF(month, 0, @DateRange), 0)
    and @EndDate
    
    DATEADD(month,DATEDIFF(month,0,@DateRange),0)
    将根据日期范围选择示例使用 今日日期:

    当前日期:
    01/10/2015
    (dd/MM/yyy格式)

    30天范围:
    2015年9月1日

    60天范围:
    2015年8月1日

    EndDate
    参数将产生
    26/10/2015


    让我知道这是否有用。

    =DateSerial(Year(Today())、Month(Today())、1)
    此表达式将为您提供当前月份的第一个日期。详细解释您希望如何通过参数筛选数据以获得进一步支持。谢谢Alejandro,我的任务是对报表进行更改,它正在SharePoint中使用。目前,我们将参数设置为“开始日期”和“结束日期”,我想添加一个新参数,给出一个日期范围,并将下拉框设置为:好的,您希望默认情况下从每月的第一个日期到当天的昨天运行报告,对吗?您的30天范围将生成startdate为:昨天当前日期-30天,60天范围将生成startdate为:昨天当前日期-60天在这两种情况下enddate都将是昨天当前日期。如果是这样,请确认它以帮助您回答问题。当前、30天和60天。假设我想从数据源获取数据,我想获得过去3个月的信息结果将从第一个月的第一天开始,并在报告运行的当前日期结束。是的,你是对的:假设我想要一份6月至9月的报告,我需要在该月的第一天开始报告,因此,6月1日,它将在报告运行的前一天结束。谢谢@Alejandro,我相信这是我需要的,我会检查一下,以确保在一段时间内。对于我的日期范围,是我列出的值:=DateAdd(“d”)、-1,Today()=DateAdd(“d”)、-30,Today())=DateAdd(“d”、-60,Today())努力获得正确的日期范围,或者是否有更好的方法写入此参数?它将生成1天前、30天前或60天前的日期。然后,使用这些值来获取示例中各个月份的第一个日期:如果您选择
    30天
    今天,它将生成2015年9月26日,因此该月的第一个日期将是2015年9月1日,作为起始日期,
    结束日期将是2015年10月26日。很好,这就是我所寻找的@Alejandro。我只是想确定日期范围的初始值是否有效。这有帮助。