2017-02-20 4 views
0

ActiveReports 9 Designer를 사용하여 섹션 보고서를 만들었습니다. 플래그를 기반으로 워터 마크를 설정해야합니다. 플래그가 ON이면 해당 특정 페이지에 워터 마크를 설정해야합니다. 플래그가 OFF이면 워터 마크가 아무것도 없어야합니다.ActiveReports에서 워터 마크 설정

그룹 헤더에 플래그 글 상자와 워터 마크 이미지가 있습니다. 그래서 보고서 스크립트 GROUPHEADER1_BeforePrint에서 워터 마크를 토글하는 방법을 생각했습니다.

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

내 문제는 - 첫 번째 페이지가 건너 뛰고 다음 페이지에서 계속됩니다. 제 1 페이지의 워터 마크는 제 2 페이지에 표시되고, 제 2 페이지의 워터 마크는 제 3 페이지 등에 표시된다. 왜 이렇게 표시됩니까?

아무도 도와 줄 수 있습니까? 미리 감사드립니다.

답변

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

이것은 디자인 동작입니다. 워터 마크 속성은 전체 보고서 용이며 다른 섹션이 렌더링되기 전에 렌더링됩니다. 따라서 GroupHeader_Format 이벤트에서 워터 마크를 설정하면 해당 페이지의 워터 마크가 이미 인쇄되어 있으므로 변경할 수 없습니다. 이 때문에 워터 마크가 다음 페이지에 인쇄됩니다. 이제 첫 페이지에 워터 마크를 렌더링하는 문제를 해결하기 위해 ReportStart 이벤트에서 워터 마크를 설정할 수 있습니다. 다른 페이지의 경우 전역 변수를 선언하고 다음 페이지에 인쇄된다는 것을 염두에두고 워터 마크를 설정해야합니다.

+0

내가 어떻게지고 있지 않다. 이 링크 나 샘플 코드를 제공해 주시겠습니까? – Reshma