Dans nos projets, nous finissons toujours par créer un formulaire ReportViewer
dans le but d'afficher un XtraReport
(ou PrintingSystem
).
La visionneuse consiste en un XtraForm normal sur lequel nous laissons tomber un PrintRibbonController. Cela crée automatiquement la barre de ruban et le contrôle d'impression.
Ensuite, nous utilisons une méthode qui lie le rapport au spectateur:
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();
}
}
affiche donc un rapport va comme ceci:
ReportViewer viewer = new ReportViewer();
viewer.SetReport(new EmployeeReport());
viewer.Show();
Cette approche de la création de votre propre visionneuse peut vous aider à:
- Gère la sécurité par l'utilisateur (par exemple: un utilisateur normal ne peut pas modifier le filigrane),
- Modifie le ruban en supprimant ou en ajoutant un bouton pour l'adapter à vos besoins.
Merci Kyle! J'ai une question cependant ... J'ai remarqué que vous (ou le tutoriel que vous avez envoyé) utilise le PrintBarManager et le PrintControl, alors que Pierre propose l'utilisation du contrôle PrintRibbon, quels sont les avantages/inconvénients de ces deux approches? – Sebastian
Je ne connais pas d'avantages ou d'inconvénients particuliers. C'est juste une question de préférence. Comparez le PrintControl dans le didacticiel auquel je suis lié avec cette capture d'écran d'un PrintRibbonControl: http://imgur.com/N7WeL.png –
Hey Kyle, je pense que j'ai trouvé une différence ... si vous voulez utiliser le contrôle du ruban, vous devrez acheter la suite XtraBars. Apparemment, si je viens d'acheter une licence XtraReports, le ruban n'est pas inclus. – Sebastian