2014-11-24 2 views
0

Как добавить водяной знак в мой отчет RDLC программно при некоторых условиях (на основе переданного параметра)?Как добавить водяной знак в мой отчет RDLC программно при некоторых условиях?


 overTimeReport.ReportPath = "Report\\OverTime.rdlc"; 

     overTimeReport.DataSources.Clear(); 
     overTimeReport.Refresh(); 

     //---- Generate parameter list---- 
     List<ReportParameter> paramList = new List<ReportParameter>(); 
     ReportParameter param1 = new ReportParameter("check_state", check_state); 
     paramList.Add(param1); 
     overTimeReport.SetParameters(paramList); 
     ReportDataSource datasource = new ReportDataSource(); 
     datasource = new ReportDataSource("DSOverTime", dt); 

ответ

1

Установить фоновое изображение для тела отчета для вашего параметра изображения водяного знака:

=Parameters!watermark.Value 

Установите условный параметр водяного знака на основе вашего «состояние» (я предполагаю, что ваше состояние будет либо показать водяной знак или не):

ReportParameter watermarkParameter = new ReportParameter("watermark", "", false); 
if (showWatermark) 
    watermarkParameter = new ReportParameter("watermark", Uri(watermarkPath).ToString(), false); 

Не забудьте добавить параметр водяного знака в список параметров и e nable внешних изображений в отчете:

paramList.Add(watermarkParameter); 

overTimeReport.EnableExternalImages = true; 
+0

Я пробовал вышеупомянутое решение, но изображение не отображается мне при визуализации PDF. –

+0

Есть ли у вас сообщения об ошибке? Проверьте свое окно вывода ... Код выше работает для меня в различных отчетах. – InitK

+0

Нет ошибок, только водяной знак не отображается при рендеринге pdf. 'ReportParameter watermarkParameter = новый ReportParameter (« водяной знак », новый Uri (@« Reports \ draft.jpg », UriKind.Relative) .ToString()); paramList.Add (watermarkParameter); overTimeReport.EnableExternalImages = true; ' –