1

我在ssrs的列字段中有這樣的字段。如何對齊字符串的字段列中的每個字符串

QUINIDINEssssssssssssssssssssssssssssssssssssssssssssssssssssss GL INJ 80毫克/ ML FLECAINIDEssssssssssssssssssssssssssssssssss TAB 50MG TAMBOCORsssssssssssssssssssssssssssssssssssssssssssss TAB 50MG

,我怎麼能齊齊這樣的...

QUINIDINEssssssssssssssssssssssssssssssssssssssssssssssssssssss GL INJ 80毫克/ ML FLECAINIDEssssssssssssssssssssssssssssssssss(emptyspaceeeeeeeee)TAB 50MG TAMBOCORsssssssssssssssssssssssssssssssssssssssssssss(emptyspa)TAB 50MG

串正確對齊的每一個部分......

任何幫助......

+0

我認爲那些「s」是空格嗎?你需要保留「TAB」和「50MG」之間的空格嗎? –

+0

hi eric,FOR FIRST ROW:1st string = QUINIDINEssssssssssssssssssssssssssssssssssssssssssssssssssssssss 2nd = GL 3rd = INJ 4th80MG/ML SECOND ROW:1st string:FLECAINIDEssssssssssssssssssssssssssssssssssss 2nd:TAB 3rd:50MG so..all 1st,2nd and 3rd string aligning propoerly for all rows – soundarrajan

回答

1

嗯,有兩種方法可以做到這一點,我也沒有特別優雅,所以如果有人沒有更好的解決方案,我會感到驚訝。

下面的代碼中的「t.a」是您的表格和列。

的SQL方式:

SUBSTRING(t.a,1,CHARINDEX(' ',t.a,1))+REPLICATE('_',20)+REVERSE(SUBSTRING(REVERSE(t.a),1,CHARINDEX(' ',REVERSE(t.a),1))) 

變化值被從「」到'上面複製的,你在生意。我把它作爲''來說明它在做什麼。

的SSRS方式,這就是從DB的角度更好:

=Mid(Fields!a.Value,1,InStr(Fields!a.Value," "))+StrDup(20,"_")+StrReverse(Mid(StrReverse(Fields!a.Value),1,InStr(StrReverse(Fields!a.Value)," "))) 

這恰恰是相同的公式,通過SSRS,而不是由SQL Server執行。

1

我曾經用Switch在下面的例子中追加空格一列字段,如:

=Switch(LEN(Fields!FamilyMemberName.Value) = 1, " ", 
LEN(Fields!FamilyMemberName.Value) = 2, " ", 
LEN(Fields!FamilyMemberName.Value) = 3, " ") 

但我不必擔心表達式會變得更長,因爲我知道我應該追加多少個空格,並且它不超過15個。

您可以使用Switch,或者您可以在Report Properties窗口的Code選項卡中寫入VB函數並傳遞值,使用一些循環來生成所需的空格。

或者在MS SQL中它更容易,你所要做的就是在該字段中附加SPACE(NoOfSpacesInInteger)

相關問題