2009-05-28 5 views
35

J'essaie de comprendre la chaîne de style pour la fonction Format (Expression en tant qu'objet, style en tant que chaîne) dans une expression Reporting Services.Quelles sont les chaînes de format de style valides pour une expression Reporting Services [SSRS]?

Je ne trouve pas où ces chaînes de format de style sont documentées! En particulier, j'essaie de formater un champ Prix pour qu'il y ait toujours 2 décimales.

soit 1,5 formats à 1,50 $

+9

Les réponses sont bonnes pour votre question, mais en général, vous devriez éviter d'utiliser le '= Format()' fonction, et au lieu de définir le format sur la zone de texte ou l'espace réservé. Ceux-ci prendront les mêmes chaînes de format que 'Format()' mais les exportations conserveront la valeur du nombre, pas le convertir en chaîne. Voir http://stackoverflow.com/questions/13180160/ssrs-2005-number-formating-int-and-double-within-one-field –

+0

Oui, nous n'aurions probablement pas besoin de la fonction 'Format()' si SSRS expressions conditionnelles prises en charge pour les formats de numéro de champ. – Baodad

Répondre

34

Format avec Devise chaîne de format

=Format(Fields!Price.Value, "C") 

Il vous donnera 2 décimales avec "$" préfixé.

Vous pouvez trouver d'autres chaînes de format sur MSDN: Adding Style and Formatting to a ReportViewer Report

+0

Ceci est la réponse correcte à ma question spécifique ... Je l'avais essayé précédemment mais j'ai aussi eu une erreur dans mon code, j'ai mis un CStr() dans la fonction Format. J'ai dû changer le format (CStr (Fields! Price.Value), "C") en CStr (Format (Fields! Price.Value, "C")) –

+0

@Jon: Utilisez-vous "Cstr()" pour ajouter le valeur du prix formaté à une autre chaîne? – Sung

+0

NB: Si vous voulez votre devise locale, assurez-vous de définir correctement la propriété Langue du rapport lui-même, par ex. Si la langue du rapport est définie sur "en-GB", la chaîne de mise en forme monétaire "C" vous donnera £ plutôt que $. –

1

Vous pouvez vérifier le schéma à http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition/ReportDefinition.xsd

Rechercher xsd: complexType name = "StyleType"

Cela liste tous les styles possibles que vous pouvez utiliser .

Spécifique à votre question cependant, vous pouvez utiliser le style Format.

Format

Specify the data format to use for values that appear in the textbox. 

Les valeurs valides sont: Par défaut, Nombre, Date, heure, pourcentage, et de monnaie.

Lien vers MSDN: http://msdn.microsoft.com/en-us/library/ms251684(VS.80).aspx

+1

+1 pour de bons liens. Je n'utilise pas la fonction Format(), mais place les codes dans la zone de texte "Number -> Format" au moment du design et ne trouve pas la liste des codes n'importe où! –

33

Comme mentionné précédemment, vous pouvez utiliser:

=Format(Fields!Price.Value, "C") 

Un chiffre après la "C" précisera la précision:

=Format(Fields!Price.Value, "C0") 
=Format(Fields!Price.Value, "C1") 

Vous pouvez également utiliser Excel-style masks comme ceci:

=Format(Fields!Price.Value, "#,##0.00") 

N'a pas testé le dernier, mais il y a l'idée. Fonctionne également avec les dates:

=Format(Fields!Date.Value, "yyyy-MM-dd") 
+0

Astuce génial. merci Peter. –

+2

Merci Peter! J'avais besoin d'afficher jusqu'à 4 places après la virgule, donc j'ai pu utiliser le masque que vous avez suggéré. = Format (Fields! Rate.Value, "$ ###, ###, ## 0.00 ##") – msmucker0527

1

Donnez une valeur String Format de C2 pour les propriétés de la valeur comme le montre la figure ci-dessous.

enter image description here

1

Ce lien a la référence dont vous avez besoin pour personnaliser votre propre format https://msdn.microsoft.com/en-us/library/0c899ak8.aspx

+0

Veuillez noter que [les réponses sur les liens uniquement sont déconseillées] (http://meta.stackoverflow.com/tags/link-only-answers/info), les réponses SO devraient être l'aboutissement d'une recherche de solution (par opposition à une autre escale de références, qui ont tendance à se figer avec le temps). S'il vous plaît envisager d'ajouter un synopsis autonome ici, en gardant le lien comme référence. – kleopatra

Questions connexes