web-dev-qa-db-fra.com

Erreur 'le sous-rapport n'a pas été trouvé à l'emplacement spécifié. Veuillez vérifier que le sous-rapport a été publié et que le nom est correct. '

Je reçois l'erreur ci-dessus lors de la création d'un rapport dans SSRS. J'essaie d'obtenir 2 ensembles de données à partir de 2 bases de données. Je l'ai fait en créant un rapport principal avec les données de Dataset1 et un sous-rapport avec un autre ensemble de données. 

L'erreur disparaît lorsque je crée un sous-rapport du même jeu de données. Des idées sur ce que j'ai pu mal faire?

Voir les captures d'écran ci-dessous:

Same dataset

same dataset

L'erreur se produit lorsque je fais ce qui suit:

enter image description here

enter image description here

17
ShaunK

D'une manière générale, d'après ce que j'ai vu, SSRS a connu les pires erreurs pour vous dire ce qui ne va pas. De manière générale, j'ai vu celui-ci et le principal coupable est l'une des trois choses suivantes:

  1. Le projet doit être reconstruit à mesure que vous apportez des modifications à un sous-rapport et les données du rapport ne sont pas à jour.
  2. Les données du rapport sont corrompues et doivent être effacées (regardez dans votre emplacement FILE et supprimez le fichier * .rdl.data.)
  3. Votre paramètre que vous transmettez est mauvais ou dans un format incorrect. Tous les sous-rapports ayant des paramètres NE doivent PAS ÊTRE PASSÉS DANS, sinon ils ne s'exécuteront pas et donneront à l'erreur l'équivalent de 'objet défini à une instance de null'. 

Lorsque vous insérez un "Sous-rapport", vous pouvez cliquer avec le bouton droit de la souris et sélectionner "Propriétés". Il a un panneau latéral "Paramètres" que vous devez sélectionner et vous devez "Ajouter" (pour chacun dans le bon ordre), un "Nom" (le nom du paramètre du rapport) et la "Valeur" correspondante dans la liste. le rapport actuel y est passé.

EG: Donc, si j'avais un sous-rapport qui voulait qu'un client affiche des informations démographiques sur lui et que j'avais un rapport principal qui contenait des lignes de données de gestion avec un identifiant client par ligne. Si mon sous-rapport prenait un paramètre "CustomerID", je l’aurais pour le nom et choisir "[Customer_ID]" dans le jeu de données actuel pour le lui transmettre.

Vous devez garder à l'esprit que vous devez "ajouter" chaque paramètre distinct requis par le sous-rapport. 

65
djangojazz

Supprimez tous les * .rdl.data du dossier de votre solution de projet.

14
Jaydeep Shil

Si vous avez modifié le nom du sous-rapport et obtenez cette erreur dans l'aperçu, cliquez simplement sur l'icône "Actualiser" en mode Aperçu.

Les données sont mises en cache pour un aperçu plus rapide. Les sous-rapports sont traités de la même manière. 

J'espère que cela t'aides.

8
Tom H.

Je viens d'avoir cette erreur et j'ai constaté que ça a disparu quand j'ai coupé le sous-rapport du rapport principal et que je l'ai ensuite collé dans - Allez comprendre 

0
AndyReilly

Dans mon cas, une erreur de script VB s'était produite dans mon sous-rapport . J'ai essayé d'accéder à une variable accessible uniquement à partir de l'en-tête du rapport (numéro de page actuel et total).

Après avoir corrigé cette erreur, l'erreur avait disparu.

Peut-être que cette information aide quelqu'un.

0
WoIIe

J'ai également traité de cette question. Mon problème était que j'ai renommé le jeu de données dans le sous-rapport mais que je n'ai pas modifié les champs du jeu de données dans les expressions.

Par exemple: Nom du jeu de données d'origine: dsOriginalNew nom du jeu de données: dsNew

Expression d'origine: = First (Fields! Field1.Value, "dsOriginal") La nouvelle expression doit être: = First (Fields! Field1.Value, "dsNew")

Je pense que la raison pour laquelle il dit ne pas pouvoir trouver le sous-rapport est parce que la définition du sous-rapport est invalide, donc elle ne la compile pas. Cela ne vous laisse aucune indication sur le problème.

J'espère que cela aidera les autres à venir.

0
Nathan

@djangojazz: Merci beaucoup pour ces astuces. La réponse pour moi était # 2 ET # 3 . Je l'ai détaillé au cas où quelqu'un aurait le même problème:

Différents messages ont la même erreur: 

  1. Liste d'erreurs Visual Studio: "[rsErrorExecutingSubreport] Une erreur s'est produite lors de l'exécution du sous-rapport 'SubOverview' (Instance: 55iS1): La référence à l'objet n'a pas été définie sur une instance d'objet."
  2. Rapport: "Erreur: le sous-rapport n'a pas pu être affiché." OR "Erreur: le sous-rapport est introuvable à l'emplacement spécifié"

La solution: 

  1. Il s'agissait du paramètre (solution n ° 3 de djangojazz) de mon sous-rapport que j'avais mal défini comme étant interne. Interne signifie interne du sous-rapport et non le projet. Donc, ce n'est pas accessible depuis le rapport principal, mais le SSRS dit quelque chose de complètement indépendant qui pointe dans la mauvaise direction. (honte à Microsoft pour ça)
  2. Une fois que je suis revenu à "masqué" (je ne veux pas laisser l'utilisateur modifier ces paramètres), le problème était le même. Allons au point 3
  3. Appliquez la solution n ° 2 de djangojazz: supprimez le fichier SubOverview.rdl.data (celui qui correspond à mon rapport secondaire). 
  4. Sur mon reportServer sur le cloud, j'ai supprimé le rapport SubOverview et relancé le déploiement des rapports pour le mettre à jour. Ainsi, le fichier .rdl.data est également supprimé.

J'espère que ça aide quelqu'un.

0
pti_jul

Ce problème venait étrangement - bizarrement, cela était dû aux dimensions du sous-rapport - il était trop large pour tenir dans l'espace réservé du rapport principal.

0
Rich