2009-12-14 10 views
1

J'ai un rapport local SQL Server Reporting Services (c'est-à-dire RDLC) affiché dans un ReportViewer, avec deux sous-rapports. J'utilise des objets métier pour remplir les jeux de données. Quel est le meilleur moyen de renseigner des données à instance unique dans mon rapport, par ex. un titre dynamique ou une zone de texte répertoriant une valeur calculée, non basée sur les données du rapport?Affichage de données d'objet métier à instance unique sur SSRS

J'affiche les données en utilisant le style suivant:

public class MyRecordList 
{ 
    string Name { get; set; } 
    List<MyRecord> Records { get; set;} 
} 

public MyRecord 
{ 
    string Description { get; set;} 
    string Value { get; set;} 
} 

Je mis la source de données aux enregistrements dans une instance de MyRecordsList, et leur impression trouver dans une table. Mais l'ajout d'une zone de texte et et se référant à Nom n'affiche rien. J'ai aussi essayé tourner nom dans une liste, et en se référant à la première dans la liste, en utilisant:

=First(Fields!Name.Value, "Report1_MyRecordList") 

mais toujours rien est imprimé sur le rapport.

Répondre

1

Cela serait plus facile à faire avec un paramètre du rapport. Chargez le rapport dans le concepteur de rapport et sélectionnez le menu Rapport et accédez à Paramètres. Ajoutez un paramètre de chaîne et donnez-lui un bon nom. Vous pouvez ensuite référence au paramètre dans le corps du rapport avec =Parameters.nameOfParameter.Value

Ensuite, ajoutez ce code avant de charger le rapport:

myReportViewer.LocalReport.SetParameters(new ReportParameter[] { new ReportParameter("nameOfParameter", "parameter's value") });