2009-03-10 7 views
3

J'ai des rapports de travail qui doivent être déployés sur SSRS. Une autre personnalisation que je veux ajouter est de sélectionner automatiquement le FromDate comme aujourd'hui - 1 mois, et ToDate comme aujourd'hui.SQL Reporting Services 2005 - Comment obtenir la date actuelle en tant que ReportParameter

Plus précisément, je veux remplacer le soufflet de fragment avec une pièce qui les exigences ci-dessus accomplir:

<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> 

Merci à l'avance.

Répondre

8

Remplacer le disque codé

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

formule

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

Pour "ToDate", juste passer une formule qui renvoie la date actuelle

=Now 

Maintenant, le résultat ressemble à quelque chose comme ça.

<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> 

[UPDATE]
On dirait que je l'ai oublié de coller <ReportParameters> correctement pour ToDate; c'est mis à jour. Au-dessus de RDL a été généré en configurant Paramètre de rapport. Voici comment j'ai configuré la date dans l'interface graphique.

  • FromDate:
    alt text

  • ToDate:
    alt text

+0

@Sung, Cela ne fonctionne pas. Autres éléments: J'essaie de déployer les rapports dans une instance TFS (en utilisant les services de génération de rapports pour cette instance) et le champ de valeur réelle ressemble à ceci: [Date]. [Date]. & [2008-09-26T00: 00: 00] MariusCC

+0

@MariusCC: La réponse est mise à jour. – Sung

1

En fait, vous ne pouvez pas utiliser les formats de date TSQL vous ahve utiliser les méthodes .net:

=Now() 

=DATEADD("m", -1, now()) 
Questions connexes