2011-03-22 16 views
7

argh!numero di formato nel rapporto ssrs

non lo sopporto che non riesco a capire me stesso ....

Ho usato questo nella formattazione di un numero nel mio rapporto:

'€' #,0.00;('€' #,0.00) 

e che formati a € 1,212,89

che non è esattamente quello che voglio, perché voglio € 1.212,89 indipendentemente dalle impostazioni regionali del server.

Così ho provato questo

'€' #.0,00;('€' #.0,00) 

ma che mi dà questo: 1.212.890

Digitando questo mi rendo conto che io non so quale sia la # e. e il, medio nella stringa di formato .....

risposta

7

È possibile trovare la definizione del comportamento dinamico virgola e il punto qui: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

Penso che il modo migliore per ottenere in modo affidabile ciò che si vuole è quello di codificare un locale nell'espressione per questo campo .

= (new Decimal(11123.55)).ToString("€#,0.00;(€#,0.00)", 
     new System.Globalization.CultureInfo("es-ES")) 

Questo sarà sempre usare la virgola come decimali, e il periodo di milioni di persone, migliaia & c.

Ci sono modi per essere più dinamici e ritornare sempre nel formato locale del client, che di solito sarebbe preferibile.

+0

funziona anche in ssrs? – Michel

+0

Sì. Ho copiato e incollato quel codice da una casella di testo SSRS (sviluppata in BIDS, non in un generatore di report). Se utilizzi questo numero di posizioni dovresti usare un pezzo di codice incorporato. –

+0

Tu, signore, sei un eroe. Grazie a @JamieF – Eon

3

Provalo. Formatterà il tuo valore al numero corretto di posizioni decimali.

=format(1212.89,"€#,#.00") 
+1

questo funziona (mi dà 1,212.89). Ma voglio che il decimale e il separatore delle migliaia siano commutati. Così ho provato questo: = formato (1212.89, "# # # #, 00"), che mi dà .... 1212.890 – Michel

+0

Il periodo nella stringa di formato diventerà il separatore decimale per qualsiasi luogo in cui viene generato il rapporto con (questo può essere locale locale o locale del server, a seconda delle impostazioni.) La virgola nel formato diventerà il separatore delle migliaia per le stesse impostazioni internazionali. puoi forzare l'uso di una virgola letterale con una virgola sfuggita ("\,") ma questo sarà comunque un problema per entrare nei posti giusti, soprattutto perché potresti averne bisogno in milioni e migliaia di posti. –

1

Per la valuta indiana, nel campo valore utilizzare come = Formato (Campi! ServiceTaxAmt.Value, "##, ##, ##, ###. 00") e modificare il valore della lingua in hi-in per segnalare proprietà.

0

È possibile utilizzare il formato € #, 0,00 e impostare la lingua del report su DE-DE facendo clic all'esterno dell'area del report e nel riquadro delle proprietà destro su Localizzazione -> Lingua.

0

Questo funziona correttamente con [imposta lingua come hi-IN e formato come "##, ##, ##, ###.00" ]

incalcolabili

anche lo stesso può essere raggiunto seguendo i punti

  1. Vai alla Proprietà casella di testo
  2. categoria
  3. Selezionare Numero di scheda Numero
  4. Selezionare la casella di controllo accanto [Usa separatore 1000 (,)]
  5. Fare clic su Ok
3

So che questo è un vecchio thread, ma nel caso in cui qualcuno ha bisogno, c'è un modo più semplice e più corretto di farlo:

  1. Fare clic destro sulla casella di testo della vostra espressione
  2. Selezionare "Numero" nel pop-up "Proprietà casella di testo"
  3. nella categoria "", selezionare "Numero"
  4. seleziona la casella "Usa 1000 separatore
  5. Fare clic su OK

per "vestire" la tua 'separatore 1000':

  1. Selezionare la casella di testo della vostra espressione
  2. Nelle proprietà sulla destra, applicare la giusta cultura nella proprietà "Lingua". E.g. Seleziona "fr-CH" per avere 123'456 altrimenti il ​​valore predefinito è 123.456 come separatore inglese.
Problemi correlati