2

タイム ゾーンの変換を行うカスタム コードを追加する .rdl ファイルの SQL サーバー レポートがいくつかあります。グーグルで調べた結果、Visual Basic でカスタム コードを記述できることがわかりました。カスタム コードを記述するためにサポートされている他の言語はありますか? ジャバのように?

VB でコードを書く方法を VB で知りません。レポートのカスタム コードで Java はサポートされていますか?

4

1 に答える 1

3

あなたの問題はVB.Netの知識がなくても簡単に解決できます:)、この関数を変換に使用できます(タイムゾーンのない時間(+00)をidで指定されたタイムゾーンに変換します):

Shared Function ConvertServerTimeNow(ByVal systemDate As Date, ByVal timeZoneId As String, Optional ByVal daylightSavingsTime As Boolean = False) As Date
        Dim timeZoneInfo As TimeZoneInfo
        If timeZoneId Is Nothing Then
            Return systemDate
        Else
            timeZoneInfo = timeZoneInfo.FindSystemTimeZoneById(timeZoneId)
            If daylightSavingsTime = False Then
                timeZoneInfo = timeZoneInfo.CreateCustomTimeZone(timeZoneInfo.Id, timeZoneInfo.BaseUtcOffset, timeZoneInfo.DisplayName, timeZoneInfo.StandardName, timeZoneInfo.DaylightName, Nothing, True)
            End If
        End If
        Return (timeZoneInfo.ConvertTime(systemDate, timeZoneInfo))
End Function

TimeZoneIDリストについては、この回答を参照できます:https ://stackoverflow.com/a/7908482/1048105

他の言語について:カスタムアセンブリを追加することにより、.NETプラットフォームの任意の言語を使用できますが、VB.NET以外の言語のrdlでコードを正確に記述することはできません。カスタムアセンブリについては、 http://support.microsoft.com/kb/920769で読むことができますが、展開するのは難しいため、必要なしにこれを実行することはお勧めしません。

于 2013-03-18T14:39:05.343 に答える