Wie kann ich das Format in der Datums- und Uhrzeitauswahl für Reporting Services ändern? Derzeit ist immer im Format TT/MM/JJJJ, Systemdatum & Zeitformat ist das gleiche. Ich möchte das Datum im Format MM/TT/JJJJ ändernDatums- und Uhrzeitformat in der Datumsauswahl ändern SSRS
Antwort
In Ihrem Designer wird das Datumsformat durch die Kultur des Betriebssystems bestimmt.
Nach der Bereitstellung wird das Datumsformat durch die Sprache des Browsers festgelegt.
Necromancing.
Ja, Sie können tatsächlich tun, dass - Art.
Beachten Sie, dass SSRS das Datumsformat aus der in Ihrem Browser angegebenen Sprache übernimmt.
Sie könnten also nur die Sprache Ihres Browsers ändern.
Offensichtlich wollen Sie nicht jedem Ihrer Benutzer das sagen (wenn sie die Rechte & Fähigkeiten haben, dies zu tun, in erster Linie).
So übergeben Sie einen zusätzlichen Parameter in den Bericht:
ich es genannt in_sprache (Sprache Sprache in Deutsch bedeutet, mit den möglichen Werten „DE "FR", "IT", "EN")
. nun müssen Sie den Lokalisierungsprozess ändern, indem Sie die virtuelle Methode "InitializeCulture" in ReportViewer.aspx überschrieben.
Sie können Report finden in
C:\Program Files\Microsoft SQL Server\MSRS<Version>.MSSQLSERVER
C:\Program Files\Microsoft SQL Server\MSRS<Version>.<Instance>
zB
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER
Es Sie hinzufügen (in der Quelle-Code des /ReportServer/Pages/ReportViewer.aspx):
<script type="text/C#" runat="server">
protected override void InitializeCulture()
{
string sprache = System.Web.HttpContext.Current.Request.QueryString["in_sprache"];
if(string.IsNullOrEmpty(sprache))
sprache = "";
switch(sprache.ToLowerInvariant())
{
case "de":
sprache = "de-CH";
break;
case "fr":
sprache = "fr-CH";
break;
case "it":
sprache = "it-CH";
break;
case "en":
sprache = "en-US";
break;
default:
sprache = "";
break;
}
// System.Web.HttpContext.Current.Response.Write(sprache);
if(!String.IsNullOrEmpty(sprache))
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(sprache);
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(sprache);
}
base.InitializeCulture();
}
</script>
Dies wird außer Kraft setzen, wie ASP.NET lokalisiert, um den Wert des URL- nehmen Parameter in_sprache (in_sprache muss ein Parameter Ihres Berichts sein) anstelle der Browser-Benutzersprache.
nun leider, müssen Sie auch context.Request.UserLanguages außer Kraft für die Datepicker richtig funktioniert ... (sonst erhalten Sie einen Fehler, wenn Kultur en-US und Tag ist> 12)
Sie nur so tun können, durch eine HTTP-Modul Zugabe (libRequestLanguageChanger.dll)
in die web.config von Report
<system.web>
[...]
<httpModules>
[...]
<add name="RequestLanguageChanger" type="libRequestLanguageChanger.RequestLanguageChanger, libRequestLanguageChanger" />
</httpModules>
[...]
</system.web>
. (Erfordert die Änderung der Vertrauensstufe von Rosetta zu "Full", es sei denn, Sie können herausfinden, wie Sie die Rosetta-Richtlinie ändern, um dieses http-Modul zuzulassen).
Da wir auch InitializeCulture im HTTP-Modul überschreiben können, müssen Sie das Skript runat = "server" nicht unbedingt zu ReportViewer.aspx hinzufügen.
namespace libRequestLanguageChanger
{
public class RequestLanguageChanger : System.Web.IHttpModule
{
void System.Web.IHttpModule.Dispose()
{
// throw new NotImplementedException();
}
void System.Web.IHttpModule.Init(System.Web.HttpApplication context)
{
// https://stackoverflow.com/questions/441421/httpmodule-event-execution-order
context.BeginRequest += new System.EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, System.EventArgs e)
{
System.Web.HttpApplication application = sender as System.Web.HttpApplication;
System.Web.HttpContext context = application.Context;
if (context.Request != null)
{
// string language = context.Request.Headers["Accept-Language"];
string language = null;
// string url = context.Request.RawUrl;
// string referrer = null;
if (context.Request.UrlReferrer != null)
{
// referrer = context.Request.UrlReferrer.OriginalString;
string queryString = context.Request.UrlReferrer.Query;
System.Collections.Specialized.NameValueCollection queryStrings = System.Web.HttpUtility.ParseQueryString(queryString);
language = queryStrings["in_sprache"];
}
if(context.Request.QueryString["in_sprache"] != null)
language = context.Request.QueryString["in_sprache"];
if (!string.IsNullOrEmpty(language))
{
language = language.ToLowerInvariant();
switch (language)
{
case "de":
language = "de-CH";
break;
case "fr":
language = "fr-CH";
break;
case "it":
language = "it-CH";
break;
case "en":
language = "en-US";
break;
default:
language = "";
break;
}
} // End if (!string.IsNullOrEmpty(sprache))
// SQL.Log(url, referrer, sprache);
// Simulate Browser-Language = in_sprache
if (!string.IsNullOrEmpty(language))
{
// context.Request.Headers["Accept-Language"] = language;
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(language);
System.Threading.Thread.CurrentThread.CurrentCulture = culture;
System.Threading.Thread.CurrentThread.CurrentUICulture = culture;
if (context.Request.UserLanguages != null)
{
// System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(context.Request.UserLanguages[0]);
for (int i = 0; i < context.Request.UserLanguages.Length; ++i)
{
// context.Request.UserLanguages[i] = "en-US";
context.Request.UserLanguages[i] = language;
} // Next i
} // End if (context.Request.UserLanguages != null)
} // End if (!string.IsNullOrEmpty(language))
} // End if (context.Request != null)
} // End Sub context_BeginRequest
} // End Class
} // End Namespace
Und da sind Sie, Reportserver mit einem „custom“ -Kultur Datum-Format, ohne den Benutzer zu sagen, mit der Browser-Sprache zu ändern.
Sie können die Links aus einer SQL-Tabelle holen, wo Sie den Text {@language}
durch den Kulturnamen Ihres Benutzers ersetzen können (in meinem Fall DE, FR, IT, EN, da dies die in der Schweiz gesprochenen Sprachen sind)).
SELECT
REPLACE(RE_Link, '{@language}', T_Users.USR_Language)
FROM T_Reports
LEFT JOIN T_Users ON USR_ID = @usr
-- http://localhost/Reportserver?/SomeCompany/SomeReport&rs:Command=Render&in_sprache=de
-- http://localhost/Reportserver?/SomeCompany/SomeReport&rs:Command=Render&in_sprache=fr
-- http://localhost/Reportserver?/SomeCompany/SomeReport&rs:Command=Render&in_sprache=it
-- http://localhost/Reportserver?/SomeCompany/SomeReport&rs:Command=Render&in_sprache=en
- 1. Set Datums- und Uhrzeitformat
- 2. Ändern des Standard-Datums- und Uhrzeitformat in Rails 4
- 3. Parsing ISO8601 Datums- und Uhrzeitformat in R
- 4. Wie das Datums-/Uhrzeitformat von Gos Protokollpaket
- 5. Datums- und Uhrzeitformat Mismatch von Excel-Tabelle auf dem Import
- 6. Varchar Spalte zu Datums- und Uhrzeitformat - SQL Server
- 7. Umwandlung Datetime-Zeichenfolge POSIXct Datums-/Uhrzeitformat in R
- 8. Gibt es ein Datums-/Uhrzeitformat, das keine Leerzeichen enthält?
- 9. Datum Uhrzeitformat von String?
- 10. Linq 2 Sql Datums- und Uhrzeitformat zu bespannen yyyy-MM-dd
- 11. Wie wie von 2015.09.29 10.48.33 Standard Datums- und Uhrzeitformat des Zeitstempels ändern, um 2015: 09: 29 10.48.33
- 12. Datumsauswahl in Android
- 13. Wie jQuery Datatable verwenden, Datums- und Uhrzeitformat 01-JAN-2016 10.00
- 14. Java-Datums- und -Kalender-Steuerelemente
- 15. Welches Datums- und Uhrzeitformat ist am besten mit anderen Plattformen kompatibel?
- 16. SSRS-Abonnementspeicherpfad in Massen ändern
- 17. Ändern von Datum und Uhrzeitformat (ISO 8601) der Excel-Datei in core.xml
- 18. Übergeben des Datums, das von der Datumsauswahl ausgewählt wurde, an eine Datenbank in VB.Net
- 19. In SSRS, wie zukünftige Daten nach heute in der Datumsauswahl Kalender deaktivieren
- 20. Startdatum der zweiten Datumsauswahl von der ersten Datumsauswahl definieren
- 21. Wie kann ich Jahr und Monat zusammen mit Datum in SSRS-Datumsauswahl (Kalender) auswählen?
- 22. Datum Uhrzeitformat Problem
- 23. ändern Sie das Datumsformat von Datumsauswahl
- 24. So ändern Sie die Schriftgröße der Datumsauswahl- und Auswahlansicht in iOS Objective C
- 25. Ändern der Highchart-Ausgabe zur Anzeige des Start-End-Datums
- 26. Datums- und Uhrzeitkonflikte finden
- 27. VB/C# - Datum.Nach Uhrzeitformat in Militärzeit konvertieren
- 28. Anzeige des Ergebnisses der Datumsauswahl
- 29. Format des Datums ändern mit PHP
- 30. Nach Auswahl des Datums sollte die Datumsauswahl in Android schließen ohne OK Button