SSRS Reporting Services - 字符串中的粗体字

时间:2013-01-04 18:23:12

标签: arrays function reporting-services contains ssrs-expression

发布 - 如何在字符串中加粗作者姓名?如果返回1个值,它会是这样的,但它是一个字符串(= iif(Fields!Author.Value = Parameters!5aAuthor.Value,“Bold”,“Normal”)。例如:作者+年份+标题+期刊+ PMCID。作者= Mitre,MH,Owens,R,Thompson等...我只想加粗匹配参数值的作者。我需要拆分字符串 - 找到作者 - 加粗 - 并将其他作为默认值像一个数组......

问题:

作者必须按特定顺序显示。意思是作者可能会显示第1或第3或第5或其他任何内容。以下是所需要的。

我可以将其创建为一个视图但我仍然有同样的粗体作者问题。

示例 -  Mitre,M.H.,Owens,R。, Thompson,P。,Berg,L.,2004,“胰岛素治疗糖尿病大鼠”,J.Comp。 Neurol。,373:350-378。

布朗,B 。和Jones J.,2005年,“果蝇中的重复序列”,J.Mol。 Biol。,242:503-510。 Corman,T.,Walker,J.D。和Brown,B.,2006,“Ontogeny of Tolerance to Alloantigens,”Am。 J. Anat。,146:156。

Samuels,J 。和Peters M.,2009,“RNA病毒的分子分析”,细胞的分子生物学,Vol。 11,12-18。 PMCID:PMC2583929

每2行(示例)将放在1个文本框中...

1 个答案:

答案 0 :(得分:2)

你的一般方法是完全正确的:

  

我需要拆分字符串 - 找到作者 - 加粗 - 然后   将其他人保留为默认值。就像一个阵列......

听起来您希望在报告级别而不是在SQL中执行此操作。

如果您使用的是SSRS 2008或更高版本,您可以使用占位符,那么我就是这样做的:

  1. 在报告中的数据集中创建三个计算字段。

    1. <强> LeftOfAuthor

      =LEFT( Fields!BigString.Value , Instr( Fields!BigString.Value , Parameters!5aAuthor.Value) - 1 )

    2. <强>作者

      =Parameters!5aAuthor.Value

    3. <强> RightOfAuthor

      =RIGHT( Fields!BigString.Value , LEN(Fields!BigString.Value) - Instr( Fields!BigString.Value , Parameters!5aAuthor.Value) + LEN(Parameters!5aAuthor.Value) )

  2. 现在将三个占位符放入您需要显示的文本单元格中。按顺序将每个设置为引用其中一个计算字段。

  3. 选择中间占位符(作者)并加粗。
  4. 上面的公式假定作者姓名在字段中的某处具有完全匹配。如果可能不是,则需要添加错误处理。它们没有以任何方式进行测试,因此可能需要进行一些调整。


    一些替代方法包括在SQL中断开字符串和/或用HTML <b></b>标签包含字符串以进行显示,然后设置SSRS以将其显示为HTML。

相关问题