【问题标题】:How to align each string in text in field column of ssrs如何对齐ssrs字段列中文本中的每个字符串
【发布时间】:2014-01-10 12:24:42
【问题描述】:

我在 ssrs 的列字段中有这样的字段。

奎尼丁ssssssssssssssssssssssssssssssssssssssssssssss GL INJ 80MG/ML FLECAINIDEssssssssssssssssssssssssssssssss TAB 50MG TAMBOCORssssssssssssssssssssssssssssssssssssssss TAB 50MG

我怎样才能像这样对齐对齐...

奎尼丁ssssssssssssssssssssssssssssssssssssssssssssss GL INJ 80MG/ML Flecainidessssssssssssssssssssssssssssssssssss(emptyspaceeeeeeeee)标签50mg TAMBOCORsssssssssssssssssssssssssssssssssssssssssssss(emptyspa)TAB 50MG P>

字符串的每个部分都正确对齐...

任何帮助...

【问题讨论】:

  • 我认为那些“s”是空格?是否需要保留“TAB”和“50MG”之间的空格?
  • 喜埃里克,FOR FIRST ROW:第一串= QUINIDINEssssssssssssssssssssssssssssssssssssssssssssssssssssss第二= GL第三= INJ 4th80MG / ML第二行:第一字符串:FLECAINIDEssssssssssssssssssssssssssssssssss第二:TAB第三:50MG so..all第一,第二和第三字符串对齐所有行

标签: reporting-services ssrs-2008 reportingservices-2005 ssrs-tablix ssrs-grouping


【解决方案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 方式,从数据库的角度来看更好:

=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 执行。

【讨论】:

    【解决方案2】:

    我曾经使用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) 附加到字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-30
      • 2014-11-01
      • 2019-10-19
      • 2011-08-14
      • 2022-07-08
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多