web-dev-qa-db-fra.com

Actualisation du champ de jeu de données SSRS non mise à jour pour Tablix

J'ai mis à jour le SP pour l'ensemble de données attaché utilisé par le tableau matriciel. L'actualisation a bien fonctionné et je peux voir mes nouveaux champs dans l'ensemble de données partagées lorsque je regarde dans l'onglet Champs. Mon problème est que le tablix lui-même ne me donne pas accès aux nouveaux champs. Il y a une déconnexion quelque part et je ne peux pas comprendre comment obtenir le tableau matriciel pour voir les champs mis à jour disponibles dans le jeu de données. Je rencontre fréquemment ce problème et espère pouvoir obtenir une bonne réponse ici pour pouvoir y revenir ultérieurement, car je suis sûr que je devrai le faire. J'ai googlé et parcouru les questions suggérées ici et je ne peux pas en trouver une qui est directement liée à cette question. 

Je saurai également noter que le projet de rapport est dans le contrôle de source de TFS comme je l'ai lu qui a quelques effets secondaires défavorables. J'ai marqué l'ensemble du projet pour le montage et je suis également allé dans la structure de dossiers et je me suis assuré que tout était en lecture seule. 

J'utilise SSRS 2008 dans VS 2010.

15
Tony

Je viens de le trouver ... Je ne comprends pas la nécessité de menus cachés comme celui-ci ..

Cliquez sur le rapport lui-même, puis sélectionnez Affichage dans le menu et tout en bas se trouve "Données du rapport". À partir de là, vous pouvez sélectionner votre ensemble de données et accéder à ses propriétés, puis actualiser les champs des ensembles de données attachés aux rapports. Quelle douleur dans les fesses.

Voici un lien qui aide à mieux l'expliquer . http://blog.dontpaniclabs.com/post/2012/01/26/Developings-Reports-for-SQL-Server-Reporting-Services

15
Tony

Vous pouvez également supprimer le fichier .data si vous ne parvenez toujours pas à l'actualiser.

  1. Allez dans le dossier de fichiers où le fichier .rdl existe
  2. À côté de lui, il devrait y avoir un fichier du même nom avec les extensions .rdl.data. Supprimer ce fichier.

Cela semble forcer l'actualisation probablement parce qu'il doit recréer le fichier.

Voici une méthode moins invasive mais qui ne fonctionne pas toujours:

  1. Dans la fenêtre Données du rapport, cliquez avec le bouton droit sur votre jeu de données et cliquez sur Propriétés du jeu de données comme suit:

 enter image description here

  1. Cliquez sur Actualiser les champs près du coin inférieur droit de la fenêtre Propriétés du jeu de données

 enter image description here

14
Tony L.

Accédez au dossier de votre solution, où sont stockés les rdl, puis supprimez le fichier .rdl.data de votre rapport. La prochaine fois que vous créerez le rapport, un nouveau fichier rdl.data sera créé et contiendra tous les nouveaux champs du SP mis à jour.

2
Nadya

ok, c'est peut-être un fil plus ancien, mais je rencontrais parfois le même problème. La façon la plus simple de résoudre ce problème consiste à ajouter la ligne de code suivante au début de la procédure stockée qui produit votre jeu de données pour le rapport:

SET FMTONLY OFF;

Bonne codage :)

2
Karin Brenig

Après avoir modifié le code de la procédure stockée, sans changer le nom et le nombre de champs renvoyés, je ne pouvais que le rapport appelle apparemment le nouveau format de la procédure stockée en cliquant sur le bouton Actualiser de l'onglet Aperçu du rapport.

 enter image description here

1
Matthew

Vieux fil, mais je me suis heurté à cela avec VS 2015 et SSMS 2016. J'étais certain que c'était un problème avec VS. Lorsque je suis retourné dans SSMS et que j'ai essayé d'exécuter ma procédure stockée, j'ai constaté que le fait de transmettre certaines valeurs de paramètre entraînerait l'échec de la requête. Fait intéressant, j'ai pu modifier la procédure stockée sans rencontrer d'erreur. (Peut-être parce que certaines combinaisons de paramètres ne donneraient pas lieu à un échec?)

Quoi qu'il en soit, à la fin de la journée, le codage défectueux de mon sproc empêchait l'actualisation des champs dans SSRS. Quand je suis retourné et corrigé les problèmes avec mon code, tout a fonctionné comme prévu dans VS. 

1
DrewCranmer

Je travaille dans Visual Studio 2015 et aucune des réponses ci-dessus n'a fonctionné pour moi. Si vous obtenez les données d'une procédure stockée, vous devez ouvrir le fichier .xsd et faire un clic droit sur le modèle de données. Sélectionnez Configurer. Les valeurs correctes de la procédure doivent apparaître à droite de la fenêtre ..__ puis actualisez votre jeu de données à partir de l'onglet Données du rapport.

1
Sora

J'ai rencontré un problème très similaire:

  • Ajout d'un nouveau champ à une fonction de table SQL existante
  • (Avec quelques difficultés) a ajouté le nouveau champ à l'ensemble de données existant dans SSRS
  • Nous avons passé du temps à essayer en vain d’ajouter les nouveaux champs à la table (tablix?) En mode Création.

Cela ne fonctionnait pas pour moi, alors j'ai finalement ouvert le fichier de rapport particulier [nom de fichier] .rdl dans un éditeur de texte et, surprise, il s'agissait de XML. Il était assez facile d'ajouter manuellement le champ manquant. Visual Studio m'a ensuite invité à actualiser le rapport.

 <DataSets>
  <DataSet Name="DataSet1">
   ...
   <Fields>
    <!-- add new field at this level -->
    <Field Name="[newfield]">
      <DataField>Email</DataField>
      <rd:TypeName>System.String</rd:TypeName>
    </Field>
   </Fields>
  </DataSet>
 </DataSets>
1
trevorgk

Je rencontre exactement le même problème dans VS 2012. La procédure stockée utilisée en tant que requête ne permet pas d'actualiser les champs. Lorsque le bouton est enfoncé, rien ne se passe.

La seule solution que j'ai trouvée consiste à convertir le type de requête en texte et à fournir les valeurs de paramètre de l'appel exec au SP.

Pourquoi devons-nous supporter ces bugs évidents?

1
ajeh

J'avais le même problème et j'ai pu le résoudre en renommant mon jeu de données dans les propriétés, en créant un nouveau jeu de données avec le nom d'origine, puis en appuyant sur le bouton d'actualisation.

0
user2001292

J'ai eu le même problème. J'ai installé le SP1 pour que le fichier .rdl.data soit généré, ce qui a également corrigé le problème d'actualisation des données.

Référence: http://social.msdn.Microsoft.com/Forums/sqlserver/en-US/e2b199df-bc1b-4211-9110-85a0c63454b8/why-does-ssrs-not-create-a-rdldata-file- when-previewing-a-report? forum = sqlreportingservices

0
anonymous2009

Effacer les sources de données de reportviewer fonctionne pour moi.

this.(reportviewername).LocalReport.DataSources.Clear();
0
Leojay Rull

Supprimer .data pas de travail pour moi. Supprimer le jeu de données et ajouter à nouveau a fonctionné. Et j'avais précédemment configuré VS/SSRS pour NE PAS mettre en cache.

0
Rob

J'avais le même problème, mais la cause était différente des autres réponses au moment de la rédaction de cet article.

Dans mon cas, la procédure stockée utilisée comme source de données renvoyait plusieurs ensembles de données (en raison du code de débogage que j'avais laissé là).

SSRS "voyait" les champs du premier jeu de données, alors que je m'attendais à voir les champs du deuxième jeu de données.

La suppression des jeux de données superflus a résolu le problème et SSRS a pu afficher les champs que je souhaitais.

0
Vince Horst

J'essayais d'utiliser un pilote ODBC pour la source de données qui s'est connectée correctement, mais n'affichait pas les champs dans le rapport VSRS SS 2015. Je suis retourné et ai utilisé une source de données basée sur le pilote SQL Server (c'est dans les choix lors de la conception d'une source de données) et cela a fonctionné parfaitement.

0
JustJohn
  1. Ouvrez la solution de rapports Visual Studio 2008
  2. Ouvrez (double-cliquez) votre rapport (fichier .rpt) dans le volet gauche.
  3. Appuyez sur Ctrl + Alt + D pour ouvrir le panneau Données de rapport.
  4. Développez le dossier DataSets
  5. Recherchez le jeu de données principal du rapport et cliquez avec le bouton droit sur le menu "Propriétés du DataSet"
  6. Cliquez sur le bouton "Actualiser les champs" dans la fenêtre contextuelle.

enter image description here

0