2017-02-20 3 views
0

Я создал отчет раздела, используя конструктор ActiveReports 9. Мне нужно установить водяной знак на основе флага. Если флаг включен, для этой конкретной страницы должен быть установлен водяной знак. Если флаг выключен, водяной знак должен быть ничем.Установить водяной знак в ActiveReports

У меня есть текстовое поле с флагом и водяным знаком в заголовке группы. Поэтому я думал о переключении водяного знака в скрипте GROUPHEADER1_BeforePrint отчета.

Sub GroupHeader1_BeforePrint 
    if(TxtFlg.text = "1") Then 
     rpt.Watermark = imgWaterMark.Image 
    else 
     rpt.Watermark = nothing 
    End If 
End Sub 

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

Может ли кто-нибудь мне помочь. Заранее спасибо .

ответ

0

Если мы хотим отображать водяной знак в активном отчете на основе условий, то это немного сложно с использованием водяного знака отчета. Вместо этого мы можем использовать DrawText , который похож на водяной знак в отчете.

код выглядит следующим образом:

Sub GroupHeader1_BeforePrint 
    if(TxtFlg.text = "1") Then 
     Me.rpt.CurrentPage.ForeColor = Color.FromArgb(80, 128,128,128) 
     Me.rpt.CurrentPage.Font = New Font("Arial", 45F) 
     Me.rpt.CurrentPage.DrawText("DRAFT", 0.489F, 5F, 8, 2) 
    else 
     Me.rpt.CurrentPage.ForeColor = Color.FromArgb(80, 255, 255, 255) 
     Me.rpt.CurrentPage.Font = New Font("Arial", 20F) 
     Me.rpt.CurrentPage.DrawText("", 1.5F, 3F, 2, 2) 
    End If 
End Sub 
1

Это поведение при проектировании. Свойство Watermark для всего отчета и получает визуализацию до того, как какой-либо другой раздел будет отображаться. Поэтому, когда вы устанавливаете водяной знак в событии GroupHeader_Format, водяной знак для этой страницы уже напечатан и, следовательно, не может быть изменен. Из-за этого водяной знак печатается на следующей странице. Теперь, чтобы решить вашу проблему, чтобы сделать Watermark на первой странице, вы можете установить его в событии ReportStart. Для других страниц вам нужно объявить глобальную переменную и установить водяной знак с учетом того, что он будет напечатан на следующей странице.

+0

Я не получаю, как это сделать. Не могли бы вы дать мне ссылку или образец кода для этого. – Reshma

Смежные вопросы