动态更改SSRS中单个字符的字体大小

时间:2015-02-07 22:29:31

标签: ssrs-2012 iif

在Visual Studio 2012中使用SSRS我目前在报告标题中有以下表达式。

=ReportItems!FirmName.Value

这会正确地从报告正文中提取公司名称,例如Client1,Client2,Client3等。

但是,如果ReportItems!FirmID = 600,我需要公司名称中第一个字符的字体大小比其他字符大。

这是因为特定客户的徽标中第一个字符比其他字符大。

我尝试了以下表达式,我知道这是错误的,但可能会说明我想要做的事情。

=IIF(ReportItems!FirmID.Value = 600,LEFT(ReportItems!FirmName.Value,1), "18pt", ReportItems!FirmName.Value))

所以说client3有FirmID 600,结果应该是这样的,你可能需要运行代码片段来看看我的意思......



<html>

<body lang=EN-US style='tab-interval:.5in'>

<div class=WordSection1>

<p class=MsoNormalCxSpFirst>Client1<o:p></o:p></p>

<p class=MsoNormalCxSpMiddle>Client2<o:p></o:p></p>

<p class=MsoNormalCxSpLast><span style='font-size:20.0pt;line-height:115%'>C</span>lient3</p>

</div>

</body>

</html>
&#13;
&#13;
&#13;

我尝试了伊恩的建议

我认为它正在工作,但我还不能让它工作。我可以在报告正文中使用它,但还有其他复杂情况。字体大小更改需要在报表头中,这需要通过ReportItems引用报表正文!您不能引用多个ReportItems!在报告标题中,您会收到如下错误

textrun Textbox12的值表达式引用多个报表项。页眉或页脚中的表达式只能引用一个报表项。

然而还有一个问题,我应该在原来的条目中澄清一下。实际的客户名称是这样的。

客户&amp; Associates公司

两个首字母都需要更大,但不是它们之间的&符号。

&#13;
&#13;
<html>

<body lang=EN-US style='tab-interval:.5in'>

<div class=WordSection1>

<p class=MsoNormal><span style='font-size:22.0pt;line-height:115%'>C</span>lient
&amp; <span style='font-size:18.0pt;line-height:115%'>A</span>ssociates</p>

</div>

</body>

</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

您可以通过在同一文本框中创建几个文本占位符,在这些文本框之间拆分文本并将字体大小表达式仅应用于第一个占位符来实现此目的。

有关概述,请参阅Formatting Text and Placeholders

在一个简单的数据示例中:

enter image description here

我有一个简单的表格来显示:

enter image description here

请注意,最后一列中有两个<<Expr>>值 - 我在此文本框中添加了另一个占位符。

我在这些占位符之间拆分了FirmName;在第一个:

=Left(Fields!FirmName.Value, 1)

在第二个:

=Right(Fields!FirmName.Value, Len(Fields!FirmName.Value) - 1)

即使文本被分成两个表达式,但在运行报表时它看起来很好:

enter image description here

由于每个占位符都可以有自己的格式,我们可以在第一个占位符上对 FontSize 应用如下表达式:

=IIf(Fields!FirmID.Value = 600, "15pt", "10pt")

即。增加公司 600 的第一个字母的字体大小,这为我们提供了所需的结果:

enter image description here