0

J'ai donc un rapport dans Reporting Services 2005. Il s'agit d'un paramètre (ConnectionString) qui détermine la source de données que le rapport utilisera. Il a également plusieurs autres paramètres qui sont des listes déroulantes dérivées de la source de données choisie dans le paramètre ConnectionString.Contrôles Web ReportViewer et chaînes de connexion dynamiques

Dans le Gestionnaire de rapports, cela fonctionne très bien. Toutes les listes déroulantes sont grisées au début. Lorsque vous choisissez votre source de données, la page requeries/repaint et toutes les valeurs de paramètres disponibles pour les autres paramètres sont remplies en fonction des requêtes pour ces champs.

Mais ...

Dans le contrôle Web ReportViewer, lorsque le rapport est d'abord chargé, au lieu de boîtes de liste déroulante tous les autres champs de paramètres sont vides de champs de saisie. Le choix d'une source de données différente pour le paramètre ConnectionString ne requery/repaint pas les autres paramètres. J'ai parcouru la référence de programmation ReportViewer pour voir s'il existe un moyen de répliquer la façon dont le Gestionnaire de rapports recharge la page Web avec la visionneuse de rapports lors de certains changements de paramètres, mais je n'y trouve rien qui ne soit disponible. t sur ma pauvre petite tête .NET.

Des idées?

Répondre

2

Je ne sais pas si c'est une aide, mais j'ai une suggestion. Je voudrais essayer de tirer la logique pour les boîtes déroulantes hors du rapport et les mettre dans une page ASP.net. Puis passez les paramètres au rapport et contrôlez le rendu/rafraîchissement.

HTH

+0

C'est ce que nous avons finalement fait - nous avons utilisé certains événements ASP.NET intégrés pour recharger les listes déroulantes le cas échéant. Une sorte de lourdeur mais finalement le chemin à parcourir, je pense. –

0

MISE À JOUR: Il s'avère que vous devez fournir une valeur par défaut pour tous les paramètres qui affectent à leur tour d'autres paramètres dans votre rapport afin d'obtenir la liste déroulante pour charger correctement lors de l'initialisation. Notez également que ceci est récursif - donc si vous avez un paramètre qui affecte un autre paramètre qui affecte un autre paramètre, le premier et le deuxième paramètre doivent avoir des valeurs par défaut.