Je viens de créer un rapport SSRS SQL Server 2005 et les données ne sont pas affichées dans le volet Aperçu.
L'ensemble de données est correctement renseigné à partir d'une procédure stockée avec un paramètre String. Je peux l'exécuter dans le volet de données. Lors de l'exécution du rapport dans le volet Aperçu, le nombre correct de lignes est affiché, mais le contenu des cellules ne contient aucune donnée.
Le jeu de données source est basé sur une procédure stockée avec un paramètre passé dans String dans SQL Server 2005 qui renvoie le contenu d'une table temporaire. L'ensemble de données mappe ensuite les champs aux locaux. Je peux l'exécuter correctement dans la vue Données.
Procédure stockée
ALTER PROCEDURE spWebReportStage25BuildReview
@BuildNumber as nvarchar(50)
Schéma de la table temporaire
CREATE TABLE #tmpModelZones
(
BuildID bigint NOT NULL,
BuildNo nvarchar(50) NOT NULL,
ModelID int NOT NULL,
ModelName nvarchar(50) NOT NULL,
ZoneID int NOT NULL,
ZoneName nvarchar(50) NOT NULL,
SortOrder int NOT NULL,
Created bit DEFAULT 0 NOT NULL,
Closed bit DEFAULT 0 NOT NULL,
PRIMARY KEY (BuildID, ZoneID)
)
SSRS Dataset
Cartographie du jeu de données SSRS
Paramètre de jeu de données SSRS
Exécution du jeu de données avec le paramètre
Aucun groupe, filtre ou agrégation supplémentaire ne figure sur la table affichée. C'est simplement une table plate
Lors de l'utilisation de tables temporaires, SSRS ne parvient pas à obtenir les métadonnées. Donc, il y a fondamentalement 2 façons de laisser SSRS connaître les noms de colonnes:
Ajoutez SET FMTONLY ON
. Cela récupérera les métadonnées mais ne les affichera pas.
Accédez à l'onglet DONNÉES, cliquez sur le concepteur de requêtes générique, puis cliquez sur les champs d'actualisation. Cela invitera une boîte de dialogue pour spécifier la valeur du paramètre. Lorsque nous exécutons la requête dans le concepteur de requêtes, SSRS obtient le schéma et les données de la procédure stockée. Maintenant, les données seront disponibles dans le volet de visualisation.
Jamais vu ça avant. Cependant, SSRS peut parfois être un peu "éteint", alors voici une liste de choses à essayer. J'ai bien peur que la plupart d'entre eux soient du type "Avez-vous essayé de l'éteindre et de le rallumer?".
.data
associés au rapport.En outre, il serait utile de mettre à jour/modifier votre question avec quelques informations supplémentaires:
J'ai aussi eu un problème similaire. Dans mon cas, il s’est même produit sans aucun paramètre ni rien, juste le rapport le plus simple que vous puissiez imaginer. Il comprenait une table avec un seul champ, aucun filtre n’était utilisé. J'ai réussi à afficher certaines données, mais seules les lignes affichées ne correspondaient pas à la cellule et ont donc forcé la hauteur de la ligne à augmenter.
Mon correctif pour ce problème: changer la police ou la taille de la police par rapport à la taille standard (taille 10, Segoe UI). Ensuite, toutes les données étaient affichées. En revenant à Segoe UI, les données ont à nouveau disparu.
J'ai eu un cas où un rapport de travail a cessé d'afficher des données. J'ai ajouté une autre table sans mise en forme, liée au même ensemble de données - vérifiant que la requête ne renvoyait plus de données lorsqu'elle était passée aux paramètres par SSRS. Après avoir enquêté, j'ai remarqué que mon paramètre de test pour une valeur de "date d'ancrage" était au format AAAA-MM-JJ. Dans ma requête mise à jour, je formulais des hypothèses sur l'ordre des caractères dans le paramètre de date -MM pour une jointure).
Je soupçonnais que SSRS pouvait passer la date dans un format différent (MM/JJ/AA étant mon paramètre culturel actuel pour les valeurs par défaut). Donc, fonctionnant avec ce pressentiment, j'ai modifié ma logique SQL pour fonctionner avec n'importe quel format de date passé. - par exemple. left (convert (date, @anchorDate, 20), 7)
Cela corrigeait mon problème - les hypothèses de format que j'avais testées (valeurs codées en dur pour tester la requête en cours de développement) étaient de mauvaises hypothèses. SSRS peut également transmettre des données dans des formats locaux. Veillez donc à prendre en compte ce type d'hypothèse.
J'ai eu le même problème. Voici ce que j'ai trouvé. Voici mon code:
DECLARE @tblPigProblems TABLE (
Id INT IDENTITY,
PPId INT,
GaugeColor VARCHAR(25),
FullStartTime VARCHAR(25),
PigSystem VARCHAR(25)
)
IF (1 = 0)
BEGIN
SELECT * FROM @tblPigProblems
END
...
SELECT '@tblPigProblems' [PigProblems],
@p_vchLine [Line],
GaugeColor [Product],
FullStartTime [Start Time],
PigSystem [Pig System]
FROM @tblPigProblems
Ce que j'ai fait est d'utiliser le "SELECT * FROM @tblPigProblems" initial pour m'assurer que si des messages d'erreur étaient spécifiés dans le code avant l'instruction select finale renvoyant l'ensemble de données, SSRS était en mesure de déterminer les champs à partir de la procédure stockée. Ensuite, lorsque les résultats ont été déterminés, j'ai attribué un alias aux champs. Le problème était que les alias des champs ne correspondaient pas aux noms de champs déclarés (c.-à-d. Que le champ déclaré "GaugeColor" ne correspondait pas à l'alias "[Product]" que j'avais fourni dans la sélection pour créer le jeu de résultats. Je me suis rendu compte que lorsque j'ai actualisé les champs de la section Données du rapport SSRS, puis affiché les champs du jeu de données, il a répertorié les noms de champs à partir de la déclaration de la table ("GaugeColor"). (cliquez sur!), le jeu de résultats répertorié dans SSRS montrait les alias de champs ("Produit"). Comme ils ne correspondaient pas, rien ne s'affichait dans la zone de texte à laquelle j'avais attribué le champ (c'est-à-dire: "= Champs ! ColorGauge.Value "). SSRS n'a pas relevé cette anomalie et a autorisé la création du rapport, mais aucune valeur à afficher. Le correctif était simple. Remplacez:
IF (1 = 0)
BEGIN
SELECT * FROM @tblPigProblems
END
avec:
IF (1 = 0)
BEGIN
SELECT '@tblPigProblems' [PigProblems],
@p_vchLine [Line],
GaugeColor [Product],
FullStartTime [Start Time],
PigSystem [Pig System]
FROM @tblPigProblems
END
Dan