문제

XTRAREPORT 문서를 표시 할 때 제목을 양식 뷰어로 설정하는 방법을 아는 사람이 있습니까? 시나리오는 다음과 같습니다.

XTRAREPORT 보고서가 구성되어 있으며 ShowPreviewDialog 메소드를 호출하는 표시를 표시합니다. 뷰어 양식이 열리고 문서가 표시됩니다. 제목을이 뷰어 양식으로 설정해야하며이를 수행 할 속성이나 방법을 찾을 수 없습니다.

미리 감사드립니다.

도움이 되었습니까?

해결책

XtrarePort 객체에서 사용하는 미리보기 양식이 단순히 제목을 설정할 수있는 방식으로 노출되어 있다고 생각하지 않습니다. 그러나 가능합니다 나만의 미리보기 양식을 만듭니다. 그러면 미리보기가 표시되는 방법을 궁극적으로 제어 할 수 있습니다. 불행히도, 그 접근법을 사용하려면 미리보기를 다르게 호출해야합니다. 더 이상 myreport.showpreviewdialog ()에게 전화하지 않습니다. 이 예에서 보고서는 양식의로드 이벤트에서 생성 된 미리보기 양식의 개인 구성원입니다. 그러나 기존 보고서 객체에 대한 참조를로드하기 전에 양식으로 전달하여 하나의 인쇄 미리보기 양식을 재사용 할 수 있습니다.

다른 팁

편집하다: 분명히 당신이 createocument를 호출하지 않으면 때때로 작동하는 것처럼 보일 것입니다. 그래서 그것이 있는지 확인하십시오 (첫 번째 게시물에서 누락되었습니다).

카일의 대답이 옳지 않다고 생각합니다. 양식에 액세스 할 수있는 것으로 보이며 직관적이지 않습니다. Pierre가 지적했듯이, 자신만의 양식을 작성 해야하는 유효한 이유가 있지만, 기본값을 찾아서 제목을 사용자 정의하려면 시도하십시오.

using(var rpt = new XtraReport1())
{
   rpt.PrintingSystem.PrintPreviewFormEx.Text = "My Custom Caption";
   rpt.CreateDocument();
   rpt.ShowPreviewDialog();
}

우리 프로젝트에서 우리는 항상 ReportViewer 그 목적은 a를 표시하는 것입니다 XtraReport (또는 PrintingSystem).

뷰어는 PrintribbonController를 떨어 뜨리는 일반적인 xtraform으로 구성됩니다. 리본 바와 인쇄 제어가 자동으로 생성됩니다.

그런 다음 보고서를 뷰어에게 바인딩하는 메소드를 사용합니다.

public partial class ReportViewer : DevExpress.XtraEditors.XtraForm
{
    public ReportViewer()
    {
        InitializeComponent();
    }

    // Used when displaying a single report
    public void SetReport(XtraReport report)
    {
        this.printControl.PrintingSystem = report.PrintingSystem;
        report.CreateDocument();
        this.printControl.UpdatePageView();
    }

    // Used when displaying merged reports
    public void SetReport(PrintingSystem system)
    {
        this.printControl.PrintingSystem = system;
        this.printControl.UpdatePageView();
    }
}

따라서 보고서를 표시하는 것은 다음과 같습니다.

ReportViewer viewer = new ReportViewer();
viewer.SetReport(new EmployeeReport());
viewer.Show();

자신의 시청자를 만드는이 접근 방식은 다음과 같습니다.

  • 사용자 별 보안 관리 (예 : 일반 사용자가 워터 마크를 변경할 수 없음),
  • 요구 사항에 맞게 버튼을 제거하거나 추가하여 리본을 변경합니다.

DeVexpress Suport에 도움이 될 수있는 기사가 있다고 생각합니다. 보고서 미리보기 창틀 바 캡션을 변경할 수 없습니다

그것의 요점 :

XtraReport1 rep = new XtraReport1();
            rep.CreateDocument();
            PrintPreviewFormEx form = new PrintPreviewFormEx();
            form.Text = "test";
            form.PrintingSystem = rep.PrintingSystem;
            form.Show(); 

당신이 사용할 수있는 ReportPrintTool 문제를 해결하기위한 수업 :

var report = new MyXtraReport();
ReportPrintTool reportPrintTool = new ReportPrintTool(report);
reportPrintTool.PreviewForm.Text = "Some Text"
report.ShowPreviewDialog();    

Pierre의 답변이 매우 유용하다는 것을 알았습니다. 자신의 사용자 정의 보고서 뷰어를 보유하면 실제로 액세스 등을 관리하는 데 도움이 될 수 있습니다. 이 코드를 추가했습니다.

 PrintingSystemCommand[] commands = {PrintingSystemCommand.DocumentMap,
                                                   PrintingSystemCommand.Open,
                                                   PrintingSystemCommand.Save};

 this.printControl1.PrintingSystem.SetCommandVisibility(commands, CommandVisibility.None);

물론 당신은 참조를 가져야합니다.

using DevExpress.XtraEditors;
using DevExpress.XtraReports.UI;
using DevExpress.XtraPrinting;

다시 한 번 감사드립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top