0

我有一个带有单个参数日期/时间的报告。可用值来自查询

select cast(getdate() as date) c1 union all
select cast((getdate() - 1) as date)

但是 VS 预览版和 SSRS 2017 都显示下拉/组合框中的参数值,并且没有显示日期选择器。我需要一个日期选择器。

知道有什么问题吗?

在此处输入图像描述

我尝试将其转换为各种日期类型,但没有任何效果。它在 IE、Chrome 中不起作用,什么都没有。

在此处输入图像描述

这是 rdl 代码:

  <DataSets>
    <DataSet Name="ds">
      <Query>
        <DataSourceName>SSDB</DataSourceName>
        <CommandText>
          select cast(getdate() as date) c1 union all
          select cast((getdate() - 1) as date)
        </CommandText>
      </Query>
      <Fields>
        <Field Name="c1">
          <DataField>c1</DataField>
          <rd:TypeName>System.DateTime</rd:TypeName>
        </Field>
      </Fields>
    </DataSet>
  </DataSets>

  <ReportParameters>
    <ReportParameter Name="Date">
      <DataType>DateTime</DataType>
      <Prompt>Date</Prompt>
      <ValidValues>
        <DataSetReference>
          <DataSetName>ds</DataSetName>
          <ValueField>c1</ValueField>
          <LabelField>c1</LabelField>
        </DataSetReference>
      </ValidValues>
    </ReportParameter>
  </ReportParameters>

  <Language>en-US</Language>
4

1 回答 1

2

从我的测试和我个人在 SSRS 中所做的事情来看,问题在于您为可用日期指定了一个特定的集合。此链接上的答案描述了发生的事情。

您必须同意,使用数据集为过滤器分配值是单选和多选过滤器的典型做法。通过指定值,您是在告诉 SSRS 一些日期值是合法的,而另一些是非法的。它可以禁止用户输入非法值的唯一方法是取消任何你的心愿选择日期选择器。

基本上,关键是如果您向可用值添加任何内容,您将无法选择日期选择器。您可以毫无问题地设置默认值,但如果没有提供可用值,您将看到日期选择器。

于 2019-03-05T13:24:35.443 回答