2013-04-04 4 views
2

J'ai besoin d'une table dans la visionneuse de rapports pour afficher une liste d'éléments extraits de la source de données dans une table horizontale.Table horizontale dans Report Viewer

La source de données contient simplement une liste de chaînes contenues dans une colonne SQL.

Horizontal report table example

Les tableaux que je l'ai essayé si bien afficher seulement dans une colonne.

Merci beaucoup!

+1

Voir ma réponse dans cette question en double [Rapport SSRS formatant un tableau pour afficher les données côte à côte] (http://stackoverflow.com/questions/13721709/ssrs-report- formatage-a-table-a-display-data-side-by-side) –

Répondre

0

Voici ce que j'ai compris des exigences. Sélectionnez une liste d'éléments dans une table et faites-en un rapport dans un tableau horizontal. Les valeurs de la table peuvent être connues ou non.

Dans mon exemple, je construis une chaîne unique à partir d'un select produisant une chaîne contiguë horizontale à partir d'une liste d'éléments dans une variable.

Ensuite, je construis une instruction SQL dynamique en utilisant la nouvelle variable et en incluant une sélection de ma table désirée. Dans le SQL dynamique, je fais un simple remplacement pour que le PIVOT soit correctement formaté. Cela résout le problème de ne pas savoir quelles données existent dans la table avant la main. Pivot vous oblige à étiqueter vos colonnes en utilisant les valeurs de champ dans lequel peut être un défi si les valeurs dans la table sont inconnues ou changent constamment.

DECLARE @FieldValueString VARCHAR(MAX) 
     SELECT @FieldValueString = Coalesce(@FieldValueString + ',', '') + cast(ssctab as   varchar) from RA_sysScreen 

    PRINT @FieldValueString 
    DECLARE @sql VARCHAR(MAX) 
    SET @sql = 'SELECT * FROM 
       (SELECT ssctab FROM [RA_sysScreen])qry 
       PIVOT (MAX(ssctab) FOR ssctab in (['+REPLACE(@FieldValueString,',','],[')+']))   as pvt' 
    print @sql 
    EXEC(@sql) 

Espérons que cela aide. J'ai hâte de voir d'autres réponses sur celui-ci