Динамическое изменение размера шрифта одного символа в SSRS

Используя SSRS в Visual Studio 2012, в настоящее время у меня есть следующее выражение в заголовке отчета.

=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>

Я попробовал предложение Яна

который, как я думал, работает, но я пока не могу заставить его работать. Я могу заставить это работать в теле отчета, но есть дополнительные сложности. Изменение размера шрифта должно быть в заголовке отчета, что требует ссылки на тело отчета через ReportItems! Вы не можете ссылаться более чем на один ReportItems! в заголовке отчета или вы получите сообщение об ошибке, подобное следующему

Выражение значения для textrun Textbox12 относится к нескольким элементам отчета. Выражение в верхнем или нижнем колонтитуле страницы может относиться только к одному элементу отчета.

Тем не менее, есть еще одна проблема, и я должен был уточнить это в своей первоначальной записи. Настоящее имя клиента выглядит так.

Клиент и партнеры

Обе первые буквы должны быть больше, но не амперсанд между ними.

<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>


person Jay C    schedule 07.02.2015    source источник


Ответы (1)


Вы можете сделать это, создав пару текстовых заполнителей в одном и том же текстовом поле, разделив текст между ними и применив выражение размера шрифта только к первому заполнителю.

Подробный обзор см. в разделе Форматирование текста и заполнителей.

В простом примере с вашими данными:

введите здесь описание изображения

У меня есть простая таблица для отображения этого:

введите здесь описание изображения

Обратите внимание, что в последнем столбце есть два значения <<Expr>> — я добавил еще один заполнитель в это текстовое поле.

Я разделил FirmName между этими заполнителями; во-первых:

=Left(Fields!FirmName.Value, 1)

а во втором:

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

Несмотря на то, что текст разделен на два выражения, при запуске отчета он выглядит нормально:

введите здесь описание изображения

Поскольку каждый заполнитель может иметь собственное форматирование, мы можем применить выражение, подобное следующему, к FontSize только к первому заполнителю:

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

то есть увеличить размер шрифта первой буквы для фирмы 600, что дает нам требуемые результаты:

введите здесь описание изображения

person Ian Preston    schedule 09.02.2015