2

有人知道在显示 XtraReport 文档时如何为表单查看器设置标题吗?场景如下:

我配置了一个 XtraReport 报告,我调用 ShowPreviewDialog 方法显示它,一个查看器表单打开并显示文档。我需要为此查看器表单设置标题,但找不到完成此操作的属性或方法。

提前致谢。

4

6 回答 6

5

编辑:显然,如果您不调用 CreateDocument,它有时会起作用,有时则不会。所以请确保它在那里(在我的第一篇文章中丢失了)。

我相信凯尔的回答是不正确的。看来您可以访问表单,只是不直观。正如 Pierre 指出的那样,创建自己的表单是有正当理由的,但如果您使用默认设置并且只想自定义标题,请尝试:

using(var rpt = new XtraReport1())
{
   rpt.PrintingSystem.PrintPreviewFormEx.Text = "My Custom Caption";
   rpt.CreateDocument();
   rpt.ShowPreviewDialog();
}
于 2009-09-22T20:36:35.307 回答
3

在我们的项目中,我们总是最终创建一个ReportViewer用于显示XtraReport(或PrintingSystem)的表单。

查看器由一个普通的 XtraForm 组成,我们在其上放置了一个 PrintRibbonController。这将自动创建功能区栏和打印控件。

然后我们使用一种方法将报表绑定到查看器:

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();

这种创建自己的查看器的方法可以帮助您:

  • 按用户管理安全(例如:普通用户不能更改水印),
  • 通过删除或添加按钮来更改功能区以满足您的要求。
于 2009-09-09T21:03:38.017 回答
2

我认为有一篇关于 devexpress 支持的文章可能会对您有所帮助 -无法更改报告预览窗口标题栏标题

它的要点:

XtraReport1 rep = new XtraReport1();
            rep.CreateDocument();
            PrintPreviewFormEx form = new PrintPreviewFormEx();
            form.Text = "test";
            form.PrintingSystem = rep.PrintingSystem;
            form.Show(); 
于 2011-09-09T05:02:09.710 回答
2

我不相信 XtraReport 对象使用的预览表单以您可以简单地设置标题的方式公开。但是,可以创建自己的预览表单。这将使您最终控制预览的显示方式。不幸的是,使用这种方法需要您以不同的方式调用预览。您将不再调用 myReport.ShowPreviewDialog()。在示例中,报表是在表单的加载事件中创建的预览表单的私有成员。但我会在加载之前将对现有报表对象的引用传递到表单中,以便您可以重复使用一个打印预览表单。

于 2009-09-09T20:50:08.387 回答
0

您可以使用ReportPrintTool类来解决您的问题:

var report = new MyXtraReport();
ReportPrintTool reportPrintTool = new ReportPrintTool(report);
reportPrintTool.PreviewForm.Text = "Some Text"
report.ShowPreviewDialog();    
于 2012-03-13T19:54:30.870 回答
0

我发现 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;

再次感谢。

于 2012-05-21T17:33:47.583 回答