我在ssrs的列字段中有这样的字段。
QUINIDINEssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss GL INJ 80MG / ML FLECAINIDEssssssssssssssssssssssssssssssssssssss TAB 50MG TAMBOCORssssssssssssssssssssssssssssssssssssssssssssssssss TAB 50MG
我怎么能像这样对齐...
QUINIDINEssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss GL INJ 80MG / ML FLECAINIDEssssssssssssssssssssssssssssssssssssss(emptyspaceeeeeeeee)TAB 50MG TAMBOCORssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss(50)TAB 50MG
字符串的每个部分都正确对齐......
任何帮助......
答案 0 :(得分:1)
我曾使用Switch
向列字段追加空格,如下例所示:
=Switch(LEN(Fields!FamilyMemberName.Value) = 1, " ",
LEN(Fields!FamilyMemberName.Value) = 2, " ",
LEN(Fields!FamilyMemberName.Value) = 3, " ")
但是我不必为表达变得更长而烦恼,因为我确切地知道我应该追加多少空格而且不超过15个。
您也可以在案例中使用Switch
,或者您可以在Code
窗口的Report Properties
标签中编写VB函数并传递值,使用一些循环来生成空格需要。
或者在MS SQL中更容易,你所要做的就是将SPACE(NoOfSpacesInInteger)
追加到该字段。
答案 1 :(得分:1)
嗯,我有两种方法可以做到这一点,而且都不是特别优雅,所以如果有人没有更好的解决方案,我会感到惊讶。
下面代码中的SQL方式:
SUBSTRING(t.a,1,CHARINDEX(' ',t.a,1))+REPLICATE('_',20)+REVERSE(SUBSTRING(REVERSE(t.a),1,CHARINDEX(' ',REVERSE(t.a),1)))
将上面复制的值从“”更改为“”并且您正在营业。我把它留作''来说明它在做什么。
SSRS方式,从数据库角度来看更好:
=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执行。