3

出版物 - 如何在字符串中加粗作者姓名?如果返回 1 个值但它是一个字符串(=iif(Fields!Author.Value = Parameters!5aAuthor.Value, "Bold", "Normal"),则会是这样的。示例:作者 + 年份 + 标题 + 期刊+ PMCID . Authors = Miter, MH, Owens, R, Thompson etc... . 像一个数组......

问题:

作者必须按一定顺序显示。这意味着作者可能会显示在第 1 位、第 3 位或第 5 位或其他位置。以下是所需内容。

我可以将其创建为视图,但我仍然遇到相同的加粗作者问题。

示例 - Mitre, MH、Owens, R.、Thompson, P.和 Berg, L.,2004,“糖尿病大鼠的胰岛素治疗”,J. Comp。神经学,373:350-378。

布朗,B . 和 Jones J.,2005,“果蝇中的重复序列”,J. Mol。生物学,242:503-510。Corman, T.、Walker, JD 和 Brown, B.,2006 年,“同种异体抗原耐受性的个体发生”,上午。J.Anat.,146:156。

塞缪尔,J。和 Peters M.,2009 年,“RNA 病毒的分子分析”,细胞分子生物学,卷。11 日,12-18 日。PMCID:PMC2583929

每 2 行(示例)将进入 1 个文本框...

4

1 回答 1

2

您的一般方法完全正确:

我需要拆分字符串 - 找到作者 - 加粗 - 并将其他字符串保留为默认值。像一个数组......

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

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

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

    1. 左作者

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

    2. 作者

      =Parameters!5aAuthor.Value

    3. 作者的权利

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

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

  3. 选择中间占位符(作者)并将其加粗。

上面的公式假定作者姓名在字段中的某处完全匹配。如果可能不是,您将需要添加错误处理。他们没有以任何方式进行测试,因此可能需要一些调整。


一些替代方法包括在 SQL 中分解字符串和/或使用 HTML<b></b>标记对字符串进行编码以进行显示,然后将 SSRS 设置为将其显示为 HTML。

于 2013-01-04T20:27:14.603 回答