Question

Quelqu'un sait-il comment définir le titre dans le visualiseur de formulaire lors de l'affichage d'un document XtraReport? Le scénario est le suivant:

J'ai un rapport XtraReport configuré, je le montre en appelant la méthode ShowPreviewDialog, un formulaire de visualisation s'ouvre et affiche le document. Je dois définir le titre de ce formulaire de visualisation et ne trouve pas la propriété ni le moyen d'y parvenir.

Merci d'avance.

Était-ce utile?

La solution

Je ne pense pas que le formulaire de prévisualisation utilisé par l'objet XtraReport soit exposé de manière à ce que vous puissiez simplement définir le titre. Cependant, il est possible de créer votre propre formulaire de prévisualisation . Cela vous donnerait un contrôle ultime sur l'affichage de votre aperçu. Malheureusement, cette approche nécessite que vous appeliez l’aperçu différemment. Vous n'appelleriez plus myReport.ShowPreviewDialog (). Dans l'exemple, le rapport est un membre privé du formulaire de prévisualisation créé dans l'événement load du formulaire. Toutefois, je transmettrais une référence à un objet de rapport existant dans le formulaire avant son chargement afin que vous puissiez réutiliser un formulaire d’aperçu avant impression.

Autres conseils

MODIFIER: Apparemment, si vous n'appelez pas CreateDocument, il semblera que cela fonctionnera parfois, mais pas toujours. Alors assurez-vous qu'il est là (il manquait dans mon premier post).

Je pense que la réponse de Kyle n’est pas correcte. Il semble que vous puissiez accéder au formulaire, ce n’est tout simplement pas intuitif. Comme Pierre l'a souligné, il existe des raisons valables de créer votre propre formulaire, mais si vous êtes trouvé avec la valeur par défaut et souhaitez simplement personnaliser le titre, essayez:

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

Dans nos projets, nous finissons toujours par créer un formulaire ReportViewer ayant pour but d'afficher un XtraReport (ou Système de impression ).

Le visualiseur est constitué d’un XtraForm normal sur lequel nous déposons un PrintRibbonController. Cela créera automatiquement le ruban et le contrôle d’impression.

Nous utilisons ensuite une méthode qui lie le rapport au visualiseur:

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

L'affichage d'un rapport se déroule ainsi:

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

Cette approche consistant à créer votre propre lecteur peut vous aider:

  • Gère la sécurité par utilisateur (par exemple: un utilisateur normal ne peut pas changer le filigrane),
  • Modifie le ruban en supprimant ou en ajoutant un bouton selon vos besoins.

Je pense qu'il existe un article sur le suport devexpress qui pourrait vous aider - Impossible de changer légende de la barre de titre de la fenêtre d’aperçu du rapport

L'essentiel:

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

Vous pouvez utiliser la classe ReportPrintTool pour résoudre votre problème:

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

J'ai trouvé la réponse de Pierre très utile: disposer de votre propre afficheur de rapports personnalisé peut effectivement vous aider à gérer les accès, etc. J'ai ajouté ce code:

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

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

Bien sûr, vous devez avoir les références:

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

Merci encore.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top