星期一, 12月 16, 2013

[SSRS] 使用 Split 分割字串

被論壇問題誤導,此篇變成練習 SSRS 中利用 VB.NET Split 來分割逗號字串資料

DataSet T-SQL 語法
CREATE TABLE SplitData (Data varchar(10))
INSERT INTO SplitData VALUES
 ('1,2,3,4'),
 ('1,2,3,'),
 ('1,2,,'),
 ('1,,,'),
 ('1,,4'), -- 不滿足四位
 ('2,4')   -- 不滿足四位

設一個版面顯示原始資料、第一至第四個數字

[SSRS] 使用 Split 分割字串 -2


第一至第四個數字,設定運算式為
-- 0 代表第一個數字、1 代表第二個數字,以此類推
= Split(Fields!Data.Value,",")(0) 
[SSRS] 使用 Split 分割字串 -1

顯示結果

[SSRS] 使用 Split 分割字串 -3

從上圖可以發現,當字串內沒有滿足四位時,就會出現[#錯誤]的訊息,此作法適合用在字串是固定

利用自訂 Code 來進行 Split,報表 => 報表屬性 => 程式碼內輸入下面的 Code
Public Function SplitCode(Data As String,Location As Integer) As String

        If String.IsNullOrEmpty(Data) Then
            Return ""
        End If

        If Location <= 0 Then
            Return ""
        End If

        If (Split(Data, ",").Length < Location) Then
            Return ""
        End If

        Return Split(Data, ",").GetValue(Location - 1)

End Function

[SSRS] 使用 Split 分割字串 -5

欄位運算式改為
= Code.SplitCode(Fields!Data.Value,4)
[SSRS] 使用 Split 分割字串 -6

顯示結果

[SSRS] 使用 Split 分割字串 -4

沒有留言:

張貼留言