Скрытие Watermark из обработчика не работает после обновления 2013 -> 2018
Добавлено: 13 сен 2018, 17:39
Добрый день.
Использовали для рендеринга версию StimulSoft Reports .NET 2013.
Сейчас обновляемся до 2018-й (Stimulsoft.Reports.Net, 2018.2.3)
В отчётах активно используется C# код.
Столкнулся со следующей проблемой: в отчёте на первой странице определён текстовый Watermark:
В коде отчёта на событие Page1.Rendering навешен обработчик, который при выполнении определённого условия в данных этот водяной знак скрывает:
При рендеринге (в pdf) с 2013-й библиотекой всё отлично работает (скрывается при выполнении условия). С 2018-й библиотекой -- нет. Я так понимаю, что-то изменилось в правилах обработки событий отчёта.
Подскажите, пожалуйста,
1. что именно изменилось с 2013.2.1700 версии?
2. где теперь нужно вызывать код, динамически меняющий отчёт в зависимости от входных данных?
3. и можно ли как-то без исправления отчётов (много их) восстановить поведение как со старой версией библиотеки? Ну или хотя бы изменяя только xml, не трогая C# код.
Попробовал перенести вызов кода обработчика в конструктор отчёта, сразу после InitializeComponents();
Работает. Но требует изменения кода..
Спасибо.
P.S.
1. навешивание события на другие обработчики (BeginRender, EndRender) страницы либо всего отчёта дело не меняет;
2. так же -- навешивание события декларативно, в <Page1><RenderingEvent>;
3. какое-то динамическое изменение из обработчиков вроде бы всё же работает, например, удаётся скрывать страницы через PageN.Enabled = false.
Использовали для рендеринга версию StimulSoft Reports .NET 2013.
Сейчас обновляемся до 2018-й (Stimulsoft.Reports.Net, 2018.2.3)
В отчётах активно используется C# код.
Столкнулся со следующей проблемой: в отчёте на первой странице определён текстовый Watermark:
Код: Выделить всё
<Page1>
...
<Watermark Ref="445" type="Stimulsoft.Report.Components.StiWatermark" isKey="true">
<Font>Arial,100</Font>
<Text>Образец</Text>
<TextBrush>[120:0:0:0]</TextBrush>
</Watermark>
</Page1>
Код: Выделить всё
namespace Reports
{
public class Report : Stimulsoft.Report.StiReport
{
public Report()
{
this.InitializeComponent();
this.Page1.Rendering += HideWatermark;
...
}
public void HideWatermark(object sender, System.EventArgs e)
{
if (...)
{
Page1.Watermark.Enabled = false;
//Page1.Watermark.Text = Policy.StstusName;
}
}
...
}
Подскажите, пожалуйста,
1. что именно изменилось с 2013.2.1700 версии?
2. где теперь нужно вызывать код, динамически меняющий отчёт в зависимости от входных данных?
3. и можно ли как-то без исправления отчётов (много их) восстановить поведение как со старой версией библиотеки? Ну или хотя бы изменяя только xml, не трогая C# код.
Попробовал перенести вызов кода обработчика в конструктор отчёта, сразу после InitializeComponents();
Работает. Но требует изменения кода..
Спасибо.
P.S.
1. навешивание события на другие обработчики (BeginRender, EndRender) страницы либо всего отчёта дело не меняет;
2. так же -- навешивание события декларативно, в <Page1><RenderingEvent>;
3. какое-то динамическое изменение из обработчиков вроде бы всё же работает, например, удаётся скрывать страницы через PageN.Enabled = false.