Wenn Sie einzelne Berichtsseiten mehrfach drucken möchten, müssen Sie auf Kodierung zurückgreifen. Sie können Druckeigenschaften über den Benutzeranwendungscode sowie manuell im Druckdialogfeld einstellen. So können Sie bestimmte Berichtsseiten auswählen und die Anzahl der Kopien festlegen. Aber es gibt einige Nuancen: Sie können die Anzahl der Kopien nur für alle zu druckenden Seiten festlegen. Um unser Ziel zu erreichen, müssen wir den Druckvorgang in mehrere Schritte aufteilen.
Nehmen wir an, Sie müssen die zweite Seite des Berichts dreifach drucken, und alle anderen Seiten nur einfach. Wir werden also den Druck in zwei Schritte aufteilen: Drucken der zweiten Seite und Drucken der anderen Seiten.
//Erstellen eines neuen Berichtes var report = new Report(); // Erstellen der Datenquelle DataSet data = new DataSet(); //Laden von Daten aus einer Datei data.ReadXml("~/nwind.xml"); //Erfassen der Datenquelle im Bericht report.RegisterData(data, "NorthWind"); //Laden der Berichtsvorlage report.Load("~/Master-Detail.frx"); //Anfertigen des Berichtes report.Prepare(); //Auswählen der zweiten Berichtsseite report.PrintSettings.PageNumbers = "2"; //Festlegen der Anzahl von Kopien report.PrintSettings.Copies = 3; //Ausblenden des Druckdialogfeldes report.PrintSettings.ShowDialog = false; //Senden des Berichtes zum Druck report.Print(); //Wiederholung des Gleichen für die übrigen Seiten des Berichts report.PrintSettings.PageNumbers = "1, 3, 4, 5"; report.PrintSettings.Copies = 1; report.Print();
Auf diese Weise können wir die gewünschten Berichtsseiten getrennt von allen anderen Seiten drucken. Der einzige Nachteil des obigen Codes besteht darin, dass die gedruckten Seiten nicht in der richtigen Reihenfolge erscheinen. Wenn Sie den Bericht dennoch der Reihe nach drucken möchten, müssen Sie den Druckvorgang in 3 Schritte aufteilen: Drucken der ersten Seite, Drucken der zweiten Seite, Drucken der restlichen Seiten des Berichts.