Frage

Weiß jemand, wie der Titel Form Betrachter zu setzen, wenn ein XtraReport Dokument zeigt? Das Szenario ist folgende:

Ich habe ein XtraReport Bericht konfiguriert, zeige ich es die ShowPreviewDialog Methode aufrufen, ein Betrachter Form öffnet und zeigt das Dokument. Ich brauche den Titel zu dieser Viewer Form festgelegt und kann nicht die Eigenschaft oder Weg finden, um dies zu erreichen.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Ich glaube nicht, dass die Vorschau Form der XtraReport Objekt verwendet wird, in einer solchen Art und Weise ausgesetzt, die man einfach den Titel einstellen könnte. Allerdings ist es möglich, Ihre eigene Vorschau Form erstellen. Das würde Ihnen ultimative Kontrolle darüber, wie Ihre Vorschau angezeigt wird. Leider, dass Ansatz erfordert, dass Sie die Vorschau anders aufzurufen. Sie würden nicht mehr myReport.ShowPreviewDialog () aufrufe. Im Beispiel ist der Bericht ein privates Mitglied der Vorschau Form, das in der Form Load-Ereignisse erstellt wird. Aber ich würde einen Verweis auf einen vorhandenen Bericht Objekt in das Formular übergeben, bevor es geladen, so können Sie eine Druckvorschau Form wiederverwenden.

Andere Tipps

EDIT: Anscheinend, wenn Sie es nicht nennen Create erscheint manchmal zu arbeiten, ein anderes Mal nicht. So stellen Sie sicher, es ist (es war in meinem ersten Beitrag fehlt).

Ich glaube, dass Kyle Antwort nicht korrekt ist. Es scheint, dass Sie das Formular zugreifen können, ist es einfach nicht intuitiv ist. Als Pierre wies darauf hin, gibt es gute Gründe, Ihre eigene Form zu erstellen, aber wenn Sie mit dem Standard sind und wollen nur den Titel anpassen dann versuchen:

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

In unseren Projekten haben wir immer einen ReportViewer am Ende der Schaffung Form, Zweck, einen XtraReport angezeigt ist (oder PrintingSystem).

Der Betrachter besteht aus einem normalen Flex XtraForm, auf das uns eine PrintRibbonController fallen. Das wird die Optionsleiste und die Drucksteuerung automatisch erstellen.

Dann benutzen wir eine Methode, die den Bericht an den Betrachter binden:

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

So Anzeigen eines Berichts lautet wie folgt:

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

Dieser Ansatz Ihren eigenen Viewer schaffen können Ihnen helfen:

  • Verwaltet Sicherheit durch Benutzer (zB ein normaler Benutzer nicht das Wasserzeichen ändern kann),
  • ändert das Band durch Entfernen oder Hinzufügen, um Ihre Anforderungen zu passen.

Ich denke, es ist ein Artikel auf dem DevExpress suport, die Ihnen helfen - können nicht ändern Bericht Vorschaufenster titlebar caption

Der Kern von ihm:

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

Sie können mit ReportPrintTool Klasse für die Festsetzung Ihr Problem:

var report = new MyXtraReport();
ReportPrintTool reportPrintTool = new ReportPrintTool(report);
reportPrintTool.PreviewForm.Text = "Some Text"
report.ShowPreviewDialog();    
mit Ihrem eigenen benutzerdefinierten Report Viewer kann in der Tat hilft Ihnen Zugriff und dergleichen verwalten -

Ich habe Pierre Antwort sehr hilfreich. Ich habe diesen Code hinzugefügt:

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

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

Von-Kurs du musst haben die Referenzen:

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

Dank wieder.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top