De esta forma podremos hacer que nuestros desarrollos sean totalmente "multiformato" y que este se recoja dinámicamente desde el CRM.
Para esto existe una función de SQL Server que provee el CRM que se llama de la siguiente forma:
SELECT * FROM dbo.fn_GetFormatStrings()Esta función esta documentada en la SDK y se puede llamar de forma soportada. Para mas información acerca de esta función ir a: http://msdn.microsoft.com/en-us/library/bb955087.aspx
Esto devuelve una serie de datos relacionados con el usuario que realiza la consulta (con la autenticación de Windows Integrada) que nos servirán para luego formatear cualquier tipo de dato.
Esto nos devuelve por ejemplo:
- DateFormat: dd\/MM\/yyyy
- TimeFormat: hh\:mm tt
- NumberLanguageCode: en-GB
- CalendarType: Gregorian
- NumberFormat_0_Precision: ###,###,###,##0;-###,###,###,##0;0
- NumberFormat_2_Precision: ###,###,###,##0.00;-###,###,###,##0.00;0.00
- CurrencyFormat_0_Precision: "£"###,###,###,##0;-"£"###,###,###,##0;"£"0
- CurrencyFormat_2_Precision: "£"###,###,###,##0.00;-"£"###,###,###,##0.00;"£"0.00
DateTime dtfecha = new DateTime(2010, 1, 1); double dblNumero = 587125635.66; Console.WriteLine(dtfecha.ToString(@"dd\/MM\/yyyy")); Console.WriteLine(dblNumero.ToString(@"###,###,###,##0;-###,###,###,##0;0")); Console.WriteLine(dblNumero.ToString(@"""£""###,###,###,##0.00;-""£""###,###,###,##0.00;""£""0.00"));Esto nos devuelve:
Y listo! de esta simple manera, dejaremos nuestros desarrollos en multiformato recogiéndo los mismos desde el CRM.
un abrazo