SSRS 2008: message d'erreur disant que mon paramètre n'existe pas, mais il est clair que cela?
J'ai un rapport qui a environ 10 paramètres et environ 10 ensembles de données et une source de données. J'ai tapé beaucoup, mais j'ai vraiment besoin d'aide alors j'ai pensé que je voudrais essayer de fournir le plus d'info sur le problème que j'ai pu dès le départ.
Nous allons simplifier tout cela, et prétendre que ces sont les noms de tout et que le rapport de base de l'employé de l'information:
- Paramètres
- facilityID: texte dans le format d'un guid ou de type uniqueidentifier, ce qui est caché et passé en sorte que l'utilisateur final du rapport peut uniquement afficher des informations pour leurs propres installations; une Seule valeur de paramètre, n'est pas vide non nulle, caché, texte
- date de début: date de début de gamme, disons que je veux que mon rapport contienne des données à partir du 1er janvier de cette année; une Seule valeur de paramètre, n'est pas vide non nulle, visible, datetime
- date de fin: fin de la plage de date, disons que c'est aujourd'hui/maintenant; une Seule valeur de paramètre, n'est pas vide non nulle, visible, datetime
- viewOption: trois valeurs codées en dur (nom, valeur) ("les Employés Actuels",1) et ("par le Passé, les Employés",2) et ("les Employés qui se sont déplacés installations",3); à plusieurs valeurs de Paramètre (donc sélectionner tout est une option), pas de vide, pas null, visible, texte
- personID: basé sur le jeu de getListOfNames où l'étiquette est le nom de l'employé et la valeur de leur personID (guid/uniqueidentifier); select Unique, non nulle, n'est pas vide, texte et visible
- Mes Ensembles De Données
- getListOfNames: cela permet d'obtenir une liste de personnes qui ont été à l'entreprise dans la plage de dates à l'installation donnée et où leur statut de salarié est dans l'viewOption valeur de paramètre (de sorte qu'il peut être juste un numéro ou jusqu'à trois). C'est une procédure stockée, mais j'ai mis en place pour gérer le multi-paramètre à valeur par le passant à joindre(paramètre"~"), puis séparation dans la procédure stockée. Cela fonctionne sur les 5 autres rapports.
- getReportInfoOnSelectedPerson: corps principal de la requête; une fois que l'utilisateur sélectionne l'employé qu'ils veulent des données sur, il faut que personID et la plage de dates et remplit la table principale.
Le problème:
SSRS dit viewOption n'existe pas. Mais je le vois, là, dans le dossier Paramètres sur le côté gauche. Je le vois quand je vais saisir une expression sous Paramètres. Il n'y a pas de ligne rouge ondulée sous Paramètres!viewOption.de la valeur. Mais, quand je l'ai essayer et de le mettre comme valeur pour un paramètre utilisé par la getListOfNames dataset, il erreurs. Si je l'ai mis dans le getReportInfoOnSelectedPerson jeu de données et l'utiliser exactement de la même manière, SSRS est d'accord avec ça. Wtf? Alors... j'ai vérifié la rdl et tout va bien (où le paramètre est déclaré, lorsqu'il est utilisé dans le jeu de données de référence, de tout). C'est juste un jeu de données. Et j'ai un rapport similaire qui utilise le même ensemble de données, les mêmes paramètres de base et que le rapport est très bien. J'ai essayer le réglage de la valeur de l'ensemble de données de paramètre à 1 ou quelque chose et c'est très bien mais quand j'essaye de mettre ce Paramètre à!viewOption.valeur des erreurs..... Maintenant, je l'ai dit ci-dessus j'ai l'habitude de passer la procédure stockée d'une Jointure sur la paramater avec un tilde ~ mais j'essaie de garder les choses simples et soit le faire simplement en général (que ce soit en le passant à la première valeur de la valeurmulti viewOption paramètre ou en tournant le paramètre en une sélection unique et juste de passage de la .de la valeur), mais la jointure ne marche pas non plus. Toutes ces choses pour l'autre jeu de données, qui est également une procédure stockée.
C'est mon erreur:
Une erreur s'est produite lors du traitement du rapport. (rsProcessingAborted) L'expression de Valeur pour le paramètre de requête ‘@viewOption " contient une erreur: L'expression fait référence à un paramètre inexistant dans la collection de paramètres du rapport. (rsRuntimeErrorInExpression)
Qui est dit clairement mon paramètre n'existe pas, mais je peux le VOIR... partout. Et si je attribuer à l'un des autres jeux de données' les valeurs de paramètre à la viewOption paramètre, il fonctionne sans erreur. J'ai vérifié la rdl.
J'ai eu ce problème avant et il a été résolu en supprimant à la fois le paramètre et l'ensemble de données et de les créer à nouveau (pour la sécurité j'ai renommé tous les deux). Qui n'a pas fonctionné cette fois.
Je suis tellement frustré. S'il vous plaît aider....
Code?
<DataSet Name="getListOfNames">
<Fields>
<Field Name="personID">
<DataField>PersonId</DataField>
<rd:TypeName>System.Guid</rd:TypeName>
</Field>
<Field Name="name">
<DataField>name</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>myDataSource</DataSourceName>
<CommandType>StoredProcedure</CommandType>
<CommandText>getListOfNames</CommandText>
<QueryParameters>
<QueryParameter Name="@fac">
<Value>=join(Parameters!fac.Value,"~")</Value>
</QueryParameter>
<QueryParameter Name="@bldg">
<Value>=join(Parameters!bldg.Value,"~")</Value>
</QueryParameter>
<QueryParameter Name="@unit">
<Value>=join(Parameters!unit.Value,"~")</Value>
</QueryParameter>
<QueryParameter Name="@station">
<Value>=join(Parameters!station.Value,"~")</Value>
</QueryParameter>
<QueryParameter Name="@startDate">
<Value>=Parameters!startDate.Value</Value>
</QueryParameter>
<QueryParameter Name="@endDate">
<Value>=Parameters!endDate.Value</Value>
</QueryParameter>
<QueryParameter Name="@viewOption">
<Value>=Join(Parameters!viewOption.Value, "~")</Value>
</QueryParameter>
</QueryParameters>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
</Query>
</DataSet>
<ReportParameter Name="viewOption">
<DataType>String</DataType>
<DefaultValue>
<Values>
<Value>1</Value>
</Values>
</DefaultValue>
<Prompt>View</Prompt>
<ValidValues>
<DataSetReference>
<DataSetName>viewOptionQuery</DataSetName>
<ValueField>value</ValueField>
<LabelField>label</LabelField>
</DataSetReference>
</ValidValues>
<MultiValue>true</MultiValue>
</ReportParameter>
<DataSet Name="viewOptionQuery">
<Fields>
<Field Name="label">
<DataField>label</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="value">
<DataField>value</DataField>
<rd:TypeName>System.Int32</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>flamingo</DataSourceName>
<CommandText>select 'Other Facility' as label, 3 as value union select 'Past' as label, 2 as value union select 'Current' as label, 1 as value order by value</CommandText>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
</Query>
</DataSet>
C'est la façon dont il est mis en place et getListOfNames est pourquoi l'erreur est de les jeter, si je change
<QueryParameter Name="@viewOption">
<Value>=Join(Parameters!viewOption.Value, "~")</Value>
</QueryParameter>
à
<QueryParameter Name="@viewOption">
<Value>="1~2"</Value>
</QueryParameter>
alors il fonctionne.... ou la valeur peut être 1 ou 1~2~3
Cependant... quand j'essaie de le mettre join(Paramètres!viewOption.valeur,"~") comme la valeur d'un autre ensemble de données du paramètre de requête, il fonctionne et il n'y a pas d'erreur.
<DataSet Name="getReportInfoOnSelectedPerson">
<Fields>
<Field Name="name">
<DataField>name</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Building">
<DataField>Building</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Unit">
<DataField>Unit</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="desc">
<DataField>desc</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>myDataSource</DataSourceName>
<CommandType>StoredProcedure</CommandType>
<CommandText>Reports_BasicInfo</CommandText>
<QueryParameters>
<QueryParameter Name="@personID">
<Value>=Parameters!personID.Value</Value>
</QueryParameter>
<QueryParameter Name="@numberINeedToAggregateData">
<Value>=Join(Parameters!viewOption.Value,"~")</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
</QueryParameters>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
</Query>
</DataSet>
Et je l'ai déjà dit, mais la stockées proc/dataset qui génère l'erreur utilise un paramètre du même mis en place dans environ 5 autres rapports (j'ai essayé de copier et de coller le code des sections de rapports de travail, mais je reçois toujours le message d'erreur). Alors, quel est le problème avec celui-ci?
- Je sais que vous avez dit que vous avez essayé cela avant, mais j'ai eu de semblables questions dans reporting services. J'ai dû essayer à partir de zéro et il semblait fonctionner, semble être buggy à la fois. Également toujours exécuter votre procédure stockée à partir de SQL Server pour voir si elles fonctionnent avant de les amener à RS. Enfin, lorsque vous ajoutez des paramètres supplémentaires à une date ultérieure, pour une raison quelconque, le derrière le code du rapport n'est pas mis à jour et vous devez taper manuellement dans le code..très bogué. +1 mais pour en détails.
- Je viens de poster quelque chose comme une "réponse" à cette... Le rapport était trop détaillé et trop complexe pour tout effacer et recommencer donc j'ai juste copié le code et qui semblait fonctionner. Je voudrais vraiment savoir pourquoi c'est arrivé, cependant. J'ai toujours assurez-vous que la procédure stockée du travail et je re-utiliser certains d'entre eux... j'ai aussi appris à toujours vérifier le code derrière SSRS, trop.
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé dans ma situation, que c'était en fait le nom des paramètres boîtier a été légèrement modifié et il jetait ce même message d'erreur.
J'ai dû changer le nom de la bonne enveloppe, puis rechercher dans le code derrière à tout ce qui se réfère au paramètre en question et de corriger son boîtier. Déployé beaux-après.
Essayez de changer l'ordre des paramètres en utilisant les flèches haut/bas.
Ils doivent apparaître dans l'ordre de la dépendance.
Re-commander les paramètres de rapport en fonction de leur dépendance résolu le problème pour moi. J'ai eu le paramètre de rapport au bas de la liste, mais le dessus, il était à la charge sur ce fond. Ainsi, lorsque vous créez /re-création du rapport paramètre assurez-vous que la commande est à droite.
Eu le même problème. Vérifiez les Paramètres de l'onglet Propriétés du jeu de données et cliquez sur le bouton expression (fx). Les paramètres ne semblent pas à l'actualiser automatiquement ici, un de mes paramètres avaient encore des majuscules au lieu de minuscules orthographe
Cela pourrait être la plupart du temps en raison du nom du paramètre de ne pas être mis à jour dans le jeu de données.
Ce l'article m'a aidé à le résoudre
Le problème se produit également si vous faites référence à un paramètre "trop tôt", par exemple, à partir d'une surchargée OnInit.
Dans ce cas, il n'est plus possible d'utiliser un ensemble de données pour les valeurs disponibles ni pour les valeurs par défaut de tous les paramètres, même si le jeu de données elle-même est sans rapport avec le paramètre en question.
J'ai fait un nouveau rapport et copié le code sur le nouveau rapport et l'a sauvé. Cela fonctionne parfaitement maintenant dans ce nouveau rapport... j'ai supprimé l'ancien et renommé le nouveau, déployé sur le serveur et tout est bon. J'aurais pensé à cela beaucoup plus tôt. SSRS est tellement drôle, je ne sais même pas ce qui a été fait à l'origine du problème maintenant, mais...
toutes les idées sur qui?
(Je l'avais redémarré SSRS quelques fois, redémarré mon ordinateur quelques fois, supprimé le .les fichiers de données, supprimer la copie du serveur, même si ce qui se passait sur mon ordinateur, juste pour être sûr... pendant tout ce temps, btw)
J'ai eu des problèmes similaires avec SSRS. Le code est correct, les paramètres SQL correct mais le rapport jetait des erreurs de paramètre. J'ai été à l'aide d'un Dataset Partagé. J'ai copié le SQL Intégré à la série de Données et le rapport a parfaitement fonctionné. Donc, je suis d'accord que la SSR logiciel a des bugs qui causent un comportement étrange.
J'ai aussi eu ce problème, à la suite de la toutes les réponses ci-dessus deinetely aidé.
La question délicate de la mienne, c'est que le jeu de données a été SSAS dataset par conséquent, il a été caché. J'ai dû chercher le code pour le paramètre de voir où il a été utilisé et c'est là que je l'ai trouvé.
À voir cachée ensembles de données cliquez-droit sur le dossier Datasets dans le Rapport de l'onglet Données et de cocher l'option Afficher les ensembles de données à cocher.
Est arrivé à moi aussi
Il a été l'un des Paramètres selon un autre
Mais l'ordre de la fonction un est sur le dessus
Utilisé les flèches pour déplacer le paramètre calculé à la fin de tous les paramètres.
Pour moi, j'ai dû ouvrir fichier rdl et ajouter mon nouveau paramètre pour la commande de position/xml(nœuds) je veux.