1

我想在我的报告中使用一个参数作为日期,另一个参数作为时间,如下所示。开始时间[16/01/2012][12.00 am]

任何人都可以帮助我吗?

4

2 回答 2

1

当然这是一个多步骤的过程:

  1. 设置一个TEXT的变量为'DATE'作为变量值并提示
  2. 将左窗格中的“默认值”设置为“2012 年 1 月 16 日”
  3. 设置一个TEXT的变量为'TIME'作为变量值并提示
  4. 将左窗格中的“默认值”设置为“00:00”
  5. 设置一个数据集“AvailableDateTime”,将两者组合成一个合法的日期时间字段:

    SELECT        CAST(@Date + ' ' + @Time AS DateTime) AS Datetime
    
  6. 设置DATETIME的第三个变量为'DATETIME'作为变量值和提示。

  7. 将此变量设置为使用属性左侧窗格中的“可用值”为“从查询中获取值”。使用步骤 5 中的数据集。

您现在已经为数据和时间设置了一个单独的字段。

进一步考虑避免用户输入错误。您可能希望将第一个变量绑定为只能从您在可用值中设置的值或从查询中选择。问题是,如果用户胖手指日期或时间,它将无法运行,因为系统只是试图组合两个字符串并从中生成日期时间。您可能希望直接从 getgo 的查询中列出值。

编辑更改前两个变量:

  1. 您可以将第一个变量设置为 datetime,从而为最终用户提供日历。
  2. 您可以设置第二个数据集以获取最终用户的可用时间:

    declare @time table ( tm int)
    
    declare @cursor int = 0
    
    while @cursor <= 23
    Begin
        insert into @time values (@cursor)
    
        set @cursor += 1
    End
    
    select cast(CAST(tm as varchar) + ':00' as time) as HourOfTheDay
    from @time
    
  3. 设置您的第二个变量以从直接在上面的步骤 2 中进行的查询中获取值。

您现在应该能够像上面那样将这些值放在一起。

于 2013-01-21T17:24:45.580 回答
1

正如我在评论中所说,SSRS不允许您为Dateand设置单独的参数Time。它只有一个参数Date/Time

如我所见,您有两个选择。

  1. 添加一个文本参数并将其视为时间。然后,您可以根据您使用的技术进行一些验证。
  2. 解决这个问题的另一种方法是创建一个可能值的列表。例如,您选择Integer类型,然后创建一个Available Values. (见图片)

在此处输入图像描述

在此处输入图像描述

于 2013-01-22T11:56:37.190 回答