我有一些sql server报告 - .rdl文件,我想在其中添加自定义代码来进行一些时区转换。经过一些谷歌搜索,我发现我可以在Visual Basic中编写自定义代码。是否有任何其他语言支持编写自定义代码?喜欢java?
我不知道VB在VB中编写代码。报告中的自定义代码是否支持java?
答案 0 :(得分: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的自定义程序集,但是很难部署它,我不建议您在不需要的情况下执行此操作。