2016-10-27 1 views
0

J'ai un programme VB 2008 qui a un processus qui construit une liste de numéros de transaction dans une chaîne séparée par une virgule. Il serait alors passer cette variable à un rapport de SSRS en utilisant les services d'information 2005. Ma question est maintenant un client a mis à jour leur base de données et de rapports à 2014.Le rapport SSRS 2005 ne fonctionnait pas dans SSRS 2014

Lorsque le rapport est appelé à partir du programme maintenant, quand le rapport commence à charge je peux voir tous les numéros de transactions est la boîte de paramètres les bombes de rapport.

Je peux ouvrir le rapport à partir du Web et saisir manuellement un numéro de transaction, puis choisir afficher le rapport et afficher les données correctes. Cependant, une fois que je tape 2 numéros de transaction, je reçois un affichage d'erreur de syntaxe montrant l'erreur de syntaxe survenue lors de la première transaction.

Je crois que le correctif doit être quelque part dans la conception du rapport et la configuration des paramètres. J'ai vérifié permettre multi valeur sur les propriétés du paramètre.

Il ne s'agit pas d'un cas d'utilisation où l'utilisateur peut simplement exécuter le rapport avec un ID de transaction à la fois, car il ne connaîtra même pas les ID de transaction au moment du traitement.

L'application VB rassemble les ID en fonction de la clôture des exigences de transaction.

Le rapport est une requête basée texte en utilisant une clause where de

where TransID in (@Trans) 

avec @Trans étant la liste des identifiants de transaction. Cela n'appelle pas une procédure stockée.

Répondre

0

Accédez à l'onglet Paramètres de votre ensemble de données et vérifiez comment le paramètre @Trans est défini. Il devrait être quelque chose comme ceci:

=JOIN(Parameters!YourTransactionsParameterName.Value,",") 
+0

je l'avais en tant que paramètres = yourtransactionsParameter.value et quand je l'ai changé que pour joindre (paramètres YourTransActionParameterName.Value, « »!) – Tom

+0

pendant le traitement du rapport. (rsProcessingAborted) L'expression Value du paramètre de requête 'Trans' contient une erreur: La résolution de surcharge a échoué car aucune 'jointure' publique ne peut être appelée avec ces arguments: 'Jointure de fonction partagée publique (SourceArray As String(), [Delimiter As String =]) As String ': Le paramètre de correspondance d'argument' SourceArray 'ne peut pas convertir de' String 'à' String() '. 'Jointure de fonction partagée publique (SourceArray en tant que System.Object(), [Délimiteur As String =]) As String': Le paramètre de correspondance d'argument 'SourceArray' ne peut pas convertir de 'String' en 'Object()'. (rsRuntimeErrorInExpression) – Tom

+0

Ce message d'erreur indique que votre paramètre n'est pas un paramètre multivaleur. Le paramètre multivalue doit être un tableau de chaînes. – grafgenerator