发布 - 如何在字符串中加粗作者姓名?如果返回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个文本框中...
答案 0 :(得分:2)
你的一般方法是完全正确的:
我需要拆分字符串 - 找到作者 - 加粗 - 然后 将其他人保留为默认值。就像一个阵列......
听起来您希望在报告级别而不是在SQL中执行此操作。
如果您使用的是SSRS 2008或更高版本,您可以使用占位符,那么我就是这样做的:
在报告中的数据集中创建三个计算字段。
<强> LeftOfAuthor 强>:
=LEFT( Fields!BigString.Value , Instr( Fields!BigString.Value , Parameters!5aAuthor.Value) - 1 )
<强>作者强>:
=Parameters!5aAuthor.Value
<强> RightOfAuthor 强>:
=RIGHT( Fields!BigString.Value , LEN(Fields!BigString.Value) - Instr( Fields!BigString.Value , Parameters!5aAuthor.Value) + LEN(Parameters!5aAuthor.Value) )
现在将三个占位符放入您需要显示的文本单元格中。按顺序将每个设置为引用其中一个计算字段。
上面的公式假定作者姓名在字段中的某处具有完全匹配。如果可能不是,则需要添加错误处理。它们没有以任何方式进行测试,因此可能需要进行一些调整。
一些替代方法包括在SQL中断开字符串和/或用HTML <b></b>
标签包含字符串以进行显示,然后设置SSRS以将其显示为HTML。