web-dev-qa-db-fra.com

Colonne SSRS tablix propriété CanGrow pour la largeur?

Je travaille sur un tablix dans SSRS 2008 et je souhaite que mes colonnes soient automatiquement réduites (largeur uniquement) à leur contenu. CanGrow n'affecte que la hauteur. Y-a-t-il une propriété qui me manque ou une autre façon de truquer les colonnes pour le faire?

24
John Straka

J'ai essayé de le faire moi-même (côté client), sans succès. Aucune propriété ne réduirait automatiquement la largeur de la colonne.

Découvrez cette solution de contournement: http://blog.sharepointalist.com/2009/05/ssrs-column-width-auto-size.html (je ne l'ai pas testé)

La meilleure solution de contournement que j'ai trouvée pour les rapports côté client serait de définir la largeur de la colonne dans le code ou d'utiliser plusieurs colonnes et de les afficher/les masquer en fonction de la condition de longueur de chaîne.

Par exemple, la colonne nommée AccNum2:

report.DetailSection1.ReportObjects.Item("AccNum2").width = 200

Voir ce fil pour plus de détails et d’autres idées: http://social.msdn.Microsoft.com/forums/en-US/sqlreportingservices/thread/9e6043f1-c458-4540-be59-d37b02feab8a/

6
surfen

Comme mentionné ici , une solution facile à ce problème consiste à ajouter une ligne dans votre tableau matriciel et à insérer un graphique dans la colonne correspondante.

Puis changez sa DynamicWidth en une expression semblable à la =iif(True, "4cm", "2cm") suivante et sa DynamicHeight à "0cm".

 Chart on tablix to adjust column width

2
johnecon

La solution de SHOWKATH VALLI me convenait le mieux. Une idée de génie absolu!

Voici comment je l'ai implémenté:

  1. Créez une colonne supplémentaire à droite de celle dont vous avez besoin d'élargissement
  2. Fusionner les cellules 
  3. Cliquez sur la visibilité de colonne de votre nouvelle colonne.
  4. Masquer/afficher en fonction d'un calcul ou, dans mon cas, d'une valeur dans mon instruction select indiquant qu'il s'agit d'une colonne large.

Voici l'expression que j'ai créée: = IIF (Fields! Static1Wide.Value = 0, True, False)

1
SQLBaggers

J'ai contourné cela avec une table contenant des adresses électroniques en utilisant une expression pour le champ 'EMAIL':

 =Replace(Fields!EMAIL.Value, "@", System.Environment.NewLine & "@")

Vous pourriez faire quelque chose de similaire si vous en aviez besoin après 15 caractères (insérez le code System.Environment.NewLine après 15 caractères).

0
Shell D

nous pouvons changer la largeur dynamiquement. Suivez les étapes ci-dessous

step1: ajouter une colonne supplémentaire

step2: fusionner les colonnes ajoutées avec l'original

étape 3: ajouter une expression de visibilité de colonne pour une colonne supplémentaire en fonction de vos besoins

toujours pas de voir la photo ci-jointe

0
SHOWKATH VALLI

Ce n'est peut-être pas la solution que vous cherchez, mais il n'est pas amusant de régler la largeur de plus d'une centaine de colonnes à la fois et cette petite astuce vous fait gagner du temps.

  1. Créez votre rapport via le rapport Wizard et ajoutez toutes les colonnes dont vous aurez besoin dans votre rapport. Cela a créé votre Tablix! Gain de temps puisque vous pouvez sélectionner toutes les colonnes en même temps.
  2. Ensuite, cliquez avec le bouton droit sur le fichier .rdl sous Explorateur de solutions> Section Rapports.
  3. Sélectionnez "<> Voir le code"
  4. Rechercher une balise XML 1in. 1 pouce de largeur est par défaut. Vous pouvez remplacer 1in par 2in pour toutes les colonnes!
  5. Enfin, exécutez votre rapport et voyez si vous devez ajuster les colonnes qui ne correspondent pas à votre concept de 2 pouces.

Essayez cette méthode. Si vous trouvez quelque chose de mieux ou d’améliorations, faites le moi savoir!

0
NonProgrammer