SQL Reporting Services 2005 - Как получить текущую дату в виде ReportParameter - PullRequest
3 голосов
/ 10 марта 2009

У меня есть несколько рабочих отчетов, которые должны быть развернуты на 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>

Спасибо заранее.

Ответы [ 2 ]

8 голосов
/ 10 марта 2009

Заменить жестко

[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 ; это обновлено. Выше RDL был сгенерирован путем настройки Параметр отчета . Вот как я настроил дату в графическом интерфейсе.

  • FromDate:
    alt text

  • ToDate:
    alt text

1 голос
/ 10 марта 2009

Вы фактически не можете использовать форматы даты TSQL, которые у вас есть, чтобы использовать методы .net:

=Now()

=DATEADD("m", -1, now())
...