Comment puis-je mieux d'afficher des Cases à cocher dans SQL Server Reporting Services?
L'une des nombreuses bizarreries de Reporting Services, nous avons rencontré de est la complète et totale absence d'un contrôle de Case à cocher ou même quelque chose de similaire à distance.
Nous avons un formulaire qui doit apparaître automatiquement rempli basé sur des informations extraites d'une base de données. Nous avons plusieurs bits type de données des champs. L'impression de "Vrai" ou "Faux" semble tout simplement ridicule, que c'est censé ressembler à un formulaire qui a été auto-rempli, si nous voulons avoir une série de cases à cocher et les étiquettes qui sont soit cochée ou décochée.
Nous sommes en cours d'exécution SSRS 2005 mais je ne suis pas au courant de SSRS 2008 après avoir ajouté un contrôle de Case à cocher. Même si elle l'était, nous aurions besoin d'avoir une alternative pour le moment. Le meilleur que nous avons trouvé pour l'instant est:
- utilisation Wingdings
- utiliser des images
- utiliser des zones de texte avec des frontières et de l'impression d'un vide/espace ou d'un capital X
Tous les trois approches nécessitent IIF
expression manigances.
La Wingdings approche semble fonctionner de façon acceptable, et a été le plus esthétique sauf que, pour quelque raison que ce soit, il n'a pas toujours imprimer correctement. Plus important encore, l'exportation de PDF, également pour quelque raison que ce soit, converti toutes les polices de caractères (en général) Arial et donc nous avons funky des lettres au lieu de les Enroulements dingbats.
Images, étant un pixel raster, ne le faites pas bien lors de l'impression le long de côté vecteur des trucs comme texte. À moins manipulés avec soin, ils ont tendance à s'étirer, pixeliser, et d'autres non professionnel à la recherche de choses.
Bien que ces méthodes de travail (certains avec des limitations comme mentionné ci-dessus), aucun d'entre eux sont particulièrement élégant.
Nous manque quelque chose d'évident? Pas si évident? Quelqu'un de chez Microsoft ont une bonne raison pourquoi un tel contrôle n'a pas été fourni dans SSRS 2000, a fortiori, les 2 versions et 8 ans plus tard? Cela ne peut pas être la première fois que cette question a venir...
- SSRS 2000 a été publié en 2004. Donc, ils ont eu seulement 5 ans pour faire un tri.
- SQL Server 2012 est sorti et toujours pas de case à cocher seulement 12 ans, afin de ne pas ajouter une simple fonctionnalité.
- Je vous suggère de commencer ou de l'ajout d'une réelle discussion de Microsoft ou de la fonctionnalité de la zone de réponse - ils ont beaucoup - plutôt que de vous plaindre ici. Le raisonnement peut être ce que j'ai vu trop de déjà: les gens à l'aide de SSRS comme un processus de travail de l'outil, au lieu d'un outil de reporting. Il ajoute une quantité énorme pour le coût total de possession et peut entraîner d'autres problèmes... et vraiment, ce rapport doit une case à cocher?!
- tout rapport qu'il doit faire rapport sur des valeurs booléennes...
Vous devez vous connecter pour publier un commentaire.
J'ai, avec d'autres dans ma boutique, ont utilisé des images, le basculement de l'attribut caché basée sur le champ de valeur (true ou false). Nous n'avons pas eu de problème de flou ou de mise à l'échelle, à moins que nous avons essayé d'augmenter la taille de l'image au-delà de 100%, évidemment.
Une autre option que j'ai utilisé est similaire à la wingdings idée, mais je viens d'utiliser un bon vieux "X". Sur l'un de nos formulaires au moins, il n'est pas rare pour quelqu'un d'utiliser un X dans une case au lieu d'une coche, de sorte qu'il semble tout à fait acceptable. De Plus, vous n'avez pas à vous soucier de personnages étranges lors de l'impression.
Comme pour pourquoi Microsoft n'inclut pas un contrôle de case à cocher, je ne peux pas répondre que, comme je me demandais la même chose moi-même pour un long moment maintenant.
Ce que j'ai utilisé pour afficher une case à cocher (ou urne):
1 - créer une zone de texte (qui deviendra votre case à cocher)
2 - modifier la police Arial Unicode MS
3 - dans la fenêtre d'expression d'utilisation:
ChrW(&H2611) pour un rempli case
ChrW(&H2610) pour une case vide située
Arial Unicode MS
était la clé de ce travail. Ne fonctionne pas avec la normeArial
Outre les différentes méthodes déjà présentées, comme de SQL Server 2008 R2, il y a un contrôle intégré qui peut être utilisé pour la case présentation des fonctionnalités: le Indicateur!
Jetez un oeil ici pour plus de détails sur la façon de l'utiliser: http://blog.hoegaerden.be/2012/08/04/displaying-checkboxes-in-an-ssrs-report/
Pour être en mesure d'utiliser un champ de type peu, vous aurez à le jeter aux int premier. Cela peut être fait soit à la requête de dataset ou par l'ajout d'un champ calculé à l'ensemble de données.
Si vous voulez que les valeurs Null à venir comme le jaune, alors vous aurez besoin pour construire l'expression de cette façon, alors il faut que l'exigence en compte.
Voici une expression possible d'un champ calculé:
Selon le sens de vos champs - est Fausse bonne ou mauvaise - vous peut-être besoin de swap zéro et 100.
Je veux juste partager l'idée sur ce blog. SSRS: Comment faire pour Afficher la Case à cocher sur le Rapport de
Insérer une expression dans la zone de texte et d'écrire ces expressions.
Champs!Active.La valeur peut être n'importe quoi à partir de votre requête qui doit renvoyer une valeur booléenne 1 ou 0.
Puis cliquez sur Aperçu et voir la case 😉
Plus de styles peuvent être sélectionnés sur le blog que je partage ci-dessus.
Voici un exemple de ma sortie
Vous pouvez également utiliser une chaîne de champ calculé comme "[X]" ou "[ ]". C'est moins joli que la zone de texte avec la frontière, mais que vous n'avez pas à mettre un contrôle spécifique de la valeur et que vous pouvez compléter le tableau ou d'une matrice avec cette.
Il ya au moins une solution pour la case à cocher. Je suis toujours à la recherche de la pleine justification de mon texte (En fait, je suis à la recherche d'une autre solution que SSRS sais).
ACCESS 97 pouvaient faire ce genre de chose, mais pas de SQL SERVER 2012.
Je pense qu'il y a un bug avec SSRS et intégration des polices de caractères au-dessus de 128 (quelque chose lié à l'encodage ANSI). Fondamentalement, vous pouvez utiliser 1-128 fine, le reste se montrer à la hauteur des blocs rectangulaires.
J'aime NY idée de la zone de texte avec une bordure et une option de X - cela semble simple et efficace.
Une autre façon de faire thisd est d'aller dans "propriétés de l'espace Réservé" de la zone de texte et vérifiez
Html - Interpret HTML tag as styles
Puis dans le
Value
-Expression
mettre cette ligne de code pour vérifier:Ou cet exemple de code pour décochée:
De cette façon, vous pouvez avoir la case de texte et dans la même zone de texte.
Later edit:
Si vous rencontrez des problème d'affichage de
Wingdings 2
sur Azure, puis utilisezWingdings
.Apparemment il fonctionne.
Ou cet exemple de code pour décochée: