Localisatie in SQL rapporten

Ditmaal een tip voor SQL Server Reporting Services. Bij mijn huidige werkgever ontwikkel ik rapporten die door verschillende bedrijven in verschillende landen worden gebruikt. Een terugkerend probleem is de notatie van datum en tijd. Hoe maak je je reports generiek?

Om de datum te veranderen naar een lokaal formaat heb je een aantal opties:
  • het datumveld via de convert functie omzetten in SQL
  • ieder datumveld in een report converteren
Een collega tipte mij op de report property Language. Standaard staat deze op de language die gekozen is bij de installatie, in ons geval EN-US.
Er is een mogelijkheid in SSRS om de land- en taalinstelling van de gebruik van het rapport op te vragen, dit is de functie =User!Language (let op de hoofdletters). Door het Report Property Language te vullen met de functie =User!Language wordt datum, tijd en geld genoteerd in het formaat zoals deze bij de eindgebruiker is gedefinieerd:
20110204_localisatie_01