Jeżeli zachodzi potrzeba wydrukowania poszczególnych stron raportu w kilku kopiach, należy użyć kodowania. Właściwości drukowania można skonfigurować z poziomu kodu aplikacji użytkownika, jak również ręcznie w oknie dialogowym drukowania. Umożliwia to wybranie poszczególnych stron raportu i ustawienie liczby kopii. Problem polega jednak na tym, że liczbę kopii można ustawić tylko dla wszystkich stron, które mają zostać wydrukowane. Dlatego, aby osiągnąć zamierzony cel, musimy podzielić procedurę drukowania na etapy.
Załóżmy, że trzeba wydrukować trzy kopie drugiej strony i jedną kopię pozostałych stron. Podzielimy więc procedurę na dwa kroki: drukowanie drugiej strony i reszty stron.
// Sporządzamy raport var report = new Report(); // Dodajemy źródło danych DataSet data = new DataSet(); // Pobieramy dane z pliku data.ReadXml("~/nwind.xml"); // Zarejestrowanie źródła danych w raporcie report.RegisterData(data, "NorthWind"); // Pobieramy szablon raportu report.Load("~/Master-Detail.frx"); // Tworzymy raport report.Prepare(); // Wybieramy drugą stronę raportu report.PrintSettings.PageNumbers = "2"; // Określiliśmy liczbę kopii report.PrintSettings.Copies = 3; // Ukrywamy okno dialogowe drukowania report.PrintSettings.ShowDialog = false; // Przesyłamy raport do druku report.Print(); // Powtarzamy tę samą czynność dla pozostałych stron raportu report.PrintSettings.PageNumbers = "1, 3, 4, 5"; report.PrintSettings.Copies = 1; report.Print();
Dzięki temu możemy wydrukować potrzebne strony niezależnie od pozostałych. Jedyną wadą powyższego kodu jest to, że wydrukowane strony nie będą uporządkowane. Jeśli nadal chcesz drukować strony w kolejności, musisz podzielić procedurę na trzy kroki: drukowanie pierwszej strony, drugiej strony i pozostałych stron raportu.