3

我有一些工作报告必须部署在 SSRS 上。我要添加的另一项自定义是自动将 FromDate 选择为今天 - 1 个月,并将 ToDate 选择为今天。

具体来说,我想用满足上述要求的片段替换下面的片段:

 <ReportParameter Name="FromDate">
  <DataType>String</DataType>
  <DefaultValue>
    <Values>
      <Value>[Date].&amp;[2008-09-26T00:00:00]</Value>
    </Values>
  </DefaultValue>
  <Prompt>From Date</Prompt>
  <ValidValues>
    <DataSetReference>
      <DataSetName>FromDate2</DataSetName>
      <ValueField>ParameterValue</ValueField>
      <LabelField>ParameterCaption</LabelField>
    </DataSetReference>
  </ValidValues>
</ReportParameter>
<ReportParameter Name="ToDate">
  <DataType>String</DataType>
  <Prompt>To Date</Prompt>
  <ValidValues>
    <DataSetReference>
      <DataSetName>ToDate</DataSetName>
      <ValueField>ParameterValue</ValueField>
      <LabelField>ParameterCaption</LabelField>
    </DataSetReference>
  </ValidValues>
</ReportParameter>

提前致谢。

4

2 回答 2

8

替换硬编码

[Date].&amp;[2008-09-26T00:00:00]

公式化

=DateAdd("m", -1, Now)

对于“ToDate”,只需传递一个返回当前日期的公式

=Now

现在结果看起来像这样。

<ReportParameters>
    <ReportParameter Name="FromDate">
        <DataType>DateTime</DataType>
        <DefaultValue>
        <Values>
            <Value>=DateAdd("m", -1, Now)</Value>
        </Values>
        </DefaultValue>
        <AllowBlank>true</AllowBlank>
        <Prompt>FromDate</Prompt>
    </ReportParameter>
    <ReportParameter Name="ToDate">
        <DataType>DateTime</DataType>
        <DefaultValue>
        <Values>
            <Value>=Now</Value>
        </Values>
        </DefaultValue>
        <AllowBlank>true</AllowBlank>
        <Prompt>ToDate</Prompt>
    </ReportParameter>
</ReportParameters>

[更新]
看来我忘记<ReportParameters>正确粘贴ToDate了;它已更新。以上 R​​DL 是通过配置Report Parameter生成的。这就是我在 GUI 中配置日期的方式。

  • 从日期:
    替代文字

  • 迄今为止:
    替代文字

于 2009-03-10T16:59:27.193 回答
1

您实际上不能使用您必须使用的 TSQL 日期格式来使用 .net 方法:

=Now()

=DATEADD("m", -1, now())
于 2009-03-10T17:03:10.883 回答