2011-02-14 3 views
0

종종 Crystal Reports 또는 보고서 뷰어에서 작동하지 않는 사용자 지정 보고서를 만들 필요가 있습니다. 종종 DataTable을 해킹하여 DataGridView 컨트롤에 덤핑합니다. 결코 예쁘지 않고 인쇄가 어렵습니다.다음 양식으로 그리기

내가 필요한 것은 OnPaint 이벤트를 사용하여 호출 할 수있는 클래스이지만 지금까지 앉아서 모든 펜 및 브러시 명령을 작성한 적이 없습니다.

화면에 페인팅하고 프린터에 페인팅하면 모두 Graphics 객체가 사용되므로 Graphics 객체, 윈도우 경계 (사각형) 및 일부 데이터 (예 : 내 수업의 인스턴스 형식)을 사용하여 양식이나 용지를 페인트합니다.

멋진 개념처럼 들립니다.

분명히 누군가가 전에 이와 같이했습니다.

책, 웹 사이트 튜토리얼 또는 동영상에 대해 알고있는 사람이 있습니까?

누군가 나를 여기에 쓰고 싶다면, 당신에게 더 많은 힘을 주겠지 만 너무 많은 일이 될 것이라고 생각합니다.

+0

가장 복잡한 부분은 페이지/화면에 다른 개체를 배치하는 레이아웃이되는 경향이 있습니다. 이미지가 페이지의 절반을 채우고 측면이나 유사한 텍스트 흐름을 원할 경우 그러나 그것은 당신의 필요에 달려 있습니다. 적절한 답을 얻기 위해 얼마나 복잡한 레이아웃이 필요한지 말할 수 있습니다. –

+0

저는이 시점에서 어디서부터 시작해야하는지 찾고 있습니다. 내가 찾은 대부분의 정보는 양식으로 페인팅하거나 프린터로 페인팅하는 데 중점을 둡니다. 나는 웹 페이지를 만들었고 네 레이아웃은 지루합니다. Noobie의 경험과 관련된 모든 오류를 극복 할 필요가 없도록 양식과 프린터를 한 가지 예에서 언급 한 무언가를 찾고 있습니다. :) – jp2code

+0

오래전에 문제를 해결 한 것처럼 보이지만이 작업을 수행해야하는 다른 사용자에게 ObjectListView를 사용해보아야한다고 제안합니다. (http://objectlistview.sourceforge.net/) 작은 그리드이고 그리드를 보고서로 바꾸는 인쇄 모드가 있습니다. 원하는 경우 라이브 그리드와 인쇄 된 보고서 모두에서 사용자 지정 그리기를 수행 할 수 있습니다. 대부분 데이터 그리드를 인쇄하고 싶다면 한번 사용해보십시오. 그것은 오픈 소스 라이센스를 사용하지만 상용 라이센스를 얻기 위해 지불 할 수 있습니다 (제가 한). –

답변

0

PrintPreview 대화 상자로 모든 것을 작성하고 OnPaint 이벤트의 모든 내용을 작성했습니다.

일단 완료되면 양식을 완전히 버렸습니다. 하나의 PrintPreview는 실제로 프린터로 직접 가기 전에 내 클라이언트가 볼 수있는 양식 역할을합니다.

참고 : 페이지의 모든 항목의 위치 지정은 지루했습니다.

0

그래픽 객체 대신 iText (무료 오픈 소스 PDF 라이브러리 - http://itextpdf.com/)를 사용하여 PDF 문서를 생성하는 방법은 어떻습니까? 그런 다음 사용자는 종이 대신 디지털 보고서를 만들 수 있습니다. 좀 더 환경 친화적 인 ...

+0

여전히 보고서를 만들어야합니다. 그것이 PDF인지 또는 실제 종이인지는 중요하지 않습니다. 데이터는 형식화되어야하고 어디로 가야하는지 알려야합니다. 네오는 1과 0을 이해할 수 있지만 회의에서의 관리는 그렇지 않습니다. – jp2code

+0

알아. 두 번째 문장은 가장 중요한 문장이 아니 었습니다. 하지만 필자가 제안한 것은 Graphics.DrawText 등을 직접 사용하는 대신 iText (또는 PDF를 만들 수있는 다른 라이브러리)를 사용하여 PDF 보고서를 정의하는 방법을 살펴 보는 것이 었습니다. 그렇게하면 화면에서 볼 수 있고 상사 책상에두고 이메일로 보낼 수 있습니다. – Taco

+0

... 또는 Microsoft XPS- 문서 (http://msdn.microsoft.com/en-us/magazine/cc163664.aspx)를 PDF 문서 대신 사용할 수 있습니다. – Taco

관련 문제