2009-05-28 8 views
35

Próbuję znaleźć ciąg styl dla funkcji Format (wyrażenie jako obiekt, styl jako ciąg) w wyrażenie Reporting Services.Jakie są poprawne łańcuchy formatu stylu dla wyrażenia usług Reporting Services [SSRS]?

Nie mogę znaleźć miejsca, w których udokumentowane są ciągi w formacie stylu!

W szczególności próbuję sformatować pole Cena, aby zawsze były 2 miejsca dziesiętne.

czyli 1,5 formatów $ 1,50

+9

Odpowiedzi są dobre dla konkretnej kwestii, ale w ogóle, należy unikać używania '= Format()' funkcja, a zamiast tego ustaw format w polu tekstowym lub symbolu zastępczym. Te będą miały takie same ciągi formatów jak 'Format()', ale eksport zachowa wartość liczby, a nie przekonwertuje ją na ciąg znaków. Zobacz http://stackoverflow.com/questions/13180160/ssrs-2005-number-formating-int-and-double-within-one-field –

+0

Tak, prawdopodobnie nie potrzebowalibyśmy funkcji 'Format()' jeśli SSRS obsługiwane wyrażenia warunkowe dla formatów numerów pól. – Baodad

Odpowiedz

34

format z Walutowy formacie ciąg

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

To daje 2 miejsca dziesiętne z "$" prefiksem.

Można znaleźć inne ciągi formatu na MSDN: Adding Style and Formatting to a ReportViewer Report

+0

To jest poprawna odpowiedź na moje konkretne pytanie ... Próbowałem już wcześniej, ale miałem również błąd w moim kodzie, umieściłem CStr() wewnątrz funkcji Format. Musiałem zmienić format (CStr (Fields! Price.Value), "C") na CStr (Format (Fields! Price.Value, "C")) –

+0

@ Jon: Czy używasz "Cstr()" do dołączenia wartość sformatowanej ceny do innego ciągu? – Sung

+0

UWAGA: jeśli chcesz mieć lokalną walutę, upewnij się, że odpowiednio ustawiono właściwość Język raportu, np. jeśli masz ustawiony Język raportu na "en-GB", łańcuch formatowania waluty "C" da Ci £ zamiast $. –

1

Można sprawdzić schemat na http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition/ReportDefinition.xsd

Szukaj xsd: complexType name = "StyleType"

To pokaże wszystkie możliwe style można użyć .

Specyficzne dla Twojego pytania możesz jednak użyć stylu Format.

Format

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

Prawidłowe wartości to Domyślne, numer, Data, Czas, procenty i waluty.

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

+1

+1 za dobre linki. Nie używam funkcji Format(), ale umieszczam kody w polu tekstowym "Numer -> Format" w czasie projektowania i nie mogę znaleźć listy kodów w dowolnym miejscu! –

33

Jak wspomniano, można użyć:

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

Cyfra po "C" będzie określać precyzja:

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

Możesz także użyć Excel-style masks w ten sposób:

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

Nie testowałem ostatniego, ale jest pomysł. Działa również z datami:

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

niesamowita wskazówka. dzięki Peter. –

+2

Dzięki Peter! Musiałem wyświetlić do 4 miejsc po przecinku, więc mogłem użyć maski, którą zasugerowałeś. = Format (Fields! Rate.Value, "$ ###, ###, ## 0.00 ##") – msmucker0527

1

Podaj wartość ciągu formatującego C2 dla właściwości wartości, jak pokazano na rysunku poniżej.

enter image description here

1

Ten link ma odniesienie trzeba dostosować swój własny format https://msdn.microsoft.com/en-us/library/0c899ak8.aspx

+0

Należy pamiętać, że [odradzamy tylko odpowiedzi z linkami] (http://meta.stackoverflow.com/tags/link-only-answers/info), odpowiedzi SO powinny być punktem końcowym wyszukiwania rozwiązania (w porównaniu z innym punktem odniesienia, które z czasem stają się nieaktualne). Proszę rozważyć dodanie samodzielnego streszczenia tutaj, zachowując odnośnik jako odniesienie. – kleopatra

Powiązane problemy