簡體   English   中英

在SSRS中格式化日期時間異常

[英]Format Date Time Exception in SSRS

我建立它結合了數據的兩個int列的SSRS報告使用下面的語句:(2017年6月即):(即6 2017),以形成有效的月和年結果在SSRS報告中的列Format(CDate(Fields!MonthEarnedId.Value & "/" & Fields!YearEarned.Value)

這可以按需工作,但是該月的某些int值的值應該為13,該值應該代表一年中的所有月份,因此報表中這些值的必需格式為“全部2017”。 我認為以下IIF語句將為排除指定必要的格式,但是,月份值為13的行僅顯示#error。 任何建議將不勝感激!

=iif(Fields!MonthEarnedId.Value < 13, Format(CDate(Fields!MonthEarnedId.Value & "/" & Fields!YearEarned.Value), "MMM yyyy"), "All " & Fields!YearEarned.Value)

當出現13時,表達式中的問題是CDate() 根據SSRS中的設計, IIF評估為TRUEFALSE ,並且在您的情況下,當選擇13作為MonthEarnedId CDate()嘗試將MMM yyyy格式的13/2017轉換為無效格式並拋出#Error

我建議您在SQL查詢中將int轉換為month names ,並將數據僅在SSRS中進行連接,但是如果您必須在SSRS中進行操作,則必須在下面添加表達式。

=SWITCH(Fields!MonthEarnedId.Value=1,"Jan"
,Fields!MonthEarnedId.Value=2,"Feb"
,Fields!MonthEarnedId.Value=3,"Mar"
,Fields!MonthEarnedId.Value=4,"Apr"
,Fields!MonthEarnedId.Value=5,"May"
,Fields!MonthEarnedId.Value=6,"Jun"
,Fields!MonthEarnedId.Value=7,"Jul"
,Fields!MonthEarnedId.Value=8,"Aug"
,Fields!MonthEarnedId.Value=9,"Sep"
,Fields!MonthEarnedId.Value=10,"Oct"
,Fields!MonthEarnedId.Value=11,"Nov"
,Fields!MonthEarnedId.Value=12,"Dec"
,Fields!MonthEarnedId.Value=13,"All"
) & " " & CStr(Fields!YearEarned.Value.Value)

您正在將該字段類型轉換為日期變體以應用格式設置,同時還將列的數據類型從字符串更改為日期時間。 當渲染器嘗試將字符串值“ All 2017”轉換為相應的日期時間時,會發生錯誤。 為了解決這個問題,您需要使用CStr()或其他方式將其CStr()回字符串子類型。

=iif(Fields!MonthEarnedId.Value < 13, CStr(Format(CDate(Fields!MonthEarnedId.Value & "/" & Fields!YearEarned.Value), "MMM yyyy")), "All " & Fields!YearEarned.Value)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM