2010-12-01 5 views
1

table SSRS/de tablix Dans ma demande j'ai un rapport avec un sous-état contenu dans une cellule de tableau. Dans le gestionnaire d'événements SubreportProcessing, je fournis un ensemble de données différent pour chaque instance du sous-rapport. Dans VS 2008, cela a bien fonctionné. Cependant, lorsque je suis passé à VS2010 et mis à jour le format de fichier de rapport, le comportement a changé. Toutes les instances de sous-rapport dans la table principale contiennent maintenant les données que j'ai fournies pour la première ligne de table. Mon code ressemble à ceciEn utilisant une cellule à l'intérieur de sous-état

void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) 
{ 
    // _index is a global variable that is reset to zero in the DataBind procedure. 
    Trip currentTrip = _trips[_index]; 

    e.DataSources.Add(new ReportDataSource("DataSourceName", currentTrip.Items)); 

    _index++; 
} 

Est-ce le comportement attendu? Comment puis-je fournir différents jeux de données pour plusieurs instances du même sous-rapport dans une table?

Merci d'avance.

Vladislav

+0

Pourriez-vous partager le code auquel vous attachez l'événement SubreportProcessing? Est-ce que vous faites cela juste après la création du rapport, ou à un stade ultérieur? – Marcel

+1

Je le fais manuellement dans le constructeur du formulaire après l'appel de la fonction InitializeComponent(). – Exulted

Répondre

2

Après quelques farfouillé et bricoler avec mon code, je l'ai trouvé une solution de contournement. La solution consiste à créer un paramètre fictif dans le sous-rapport, que vous devez ensuite lier à un champ dans l'ensemble de données de la table. N'importe quel champ le fera tant que le paramètre du sous-rapport et le champ de l'ensemble de données du tablier sont compatibles. Vous ne devez pas faire quoi que ce soit avec le paramètre dans le sous-état, mais maintenant SSRS affiche plusieurs instances du même sous-état, un pour chaque ligne du tableau matriciel.

Espérons que cela sera utile pour quelqu'un d'autre, aussi.

Vladislav

Questions connexes