2013-10-02 28 views
5

所以,說我有以下字符串文本框格式在SSRS 2008年 - 打破

THIS IS STUFF (MORE STUFF) 

我該如何獲得字符串在SSRS文本框爲這樣的格式?

THIS IS STUFF 
(MORE STUFF) 

該數據是從查詢中的單個字段中提取的,我無法手動插入分隔線。

此外,有時候(更多東西)不在現場。

額外的例子:

  • 東西,THINGS
  • 事(的東西)
  • 事物和東西(更多的東西)
  • 回答

    6

    你需要插入一個換行符到字符串,即將文本框表達式設置爲:

    ="THIS IS STUFF" & vbcrlf & "(MORE STUFF)" 
    

    所以,在一個單一的文本框的表達:

    enter image description here

    會呈現:

    enter image description here

    你可以看到有一條線斷,即使字符串可以放在一行。評論

    OK後

    編輯,我們需要在報表級別來處理各種現有的字符串。

    要做到這一點,我會建議使用自定義代碼,即功能,如:

    Function SplitString (fieldValue As String) As String 
        If IsDBNull(fieldValue) OrElse IsNothing(fieldValue) Then 
        SplitString = "" 
        Else If InStr(fieldValue, "(") > 0 
        SplitString = RTrim(Left(fieldValue, InStr(fieldValue, "(") - 1)) & _ 
         vbcrlf & Right(fieldValue, Len(fieldValue) - InStr(fieldValue, "(") + 1) 
        Else 
        SplitString = fieldValue 
        End If 
    End Function 
    

    我建議這是SSRS表達是出了名的脆性,缺乏短路意味着什麼工程一個字符串可能在另一個字符串上顯示#Error。你可以用許多IIf聲明來解決這個問題,但是自定義代碼更加簡潔易懂。

    可以調用函數中包含的表達式:

    =Code.SplitString(Fields!MYFIELD.Value) 
    

    無論是在文本框表達或作爲數據集計算字段。以上作品我對你的數據:

    enter image description here

    enter image description here

    +0

    我應該澄清,文本是從查詢中拉出的單個字符串中。雖然,合法的答案,對不起! – Elias

    +1

    字符串是否會以可預測的形式分裂?在你的基本字符串上,你可以根據'('字符來分割字符串,並在中間插入vbcrlf,或者你可以根據長度或長度和特定字符的組合來實現。你可以給我幾個例子,我可以給它一個例子: –

    +0

    我相信字符串可以被'('字符分割,字符串會有很多單詞,並且有時候會有括號中的單詞。原始問題 – Elias

    0

    我碰到這個問題,在做我的項目。我想分享我的步驟。通過根據需要選擇表達式和格式,在文本框中創建單獨的地方標識符。通過將另一個項目(另一個佔位符)移動到下一行(通過按下鍵盤上的輸入),您可以輕鬆地添加額外的行。 在這裏,我在列表中創建了各個佔位符,給出了我想要的名稱和格式。 enter image description here