Si necesita imprimir páginas individuales del informe en varias ejemplares, tendrá que recurrir a la codificación. Puede configurar las propiedades de impresión desde el código de la aplicación personalizada, así como manualmente en el cuadro de diálogo de impresión. Esto le permitirá seleccionar páginas particulares del informe y especificar el número de copias. Sin embargo, hay tomar en cuenta que puede especificar el número de copias solo para todas las páginas a imprimir. Por lo tanto, para lograr el objetivo, tendremos que dividir el procedimiento de impresión en varias etapas.
Digamos que tiene que imprimir la segunda página del informe tres veces y todas las demás, una vez. Entonces dividiremos la impresión en dos etapas: imprimir la segunda página e imprimir las otras páginas.
//Creamos un informe var report = new Report(); //Creamos una fuente de datos DataSet data = new DataSet(); //Descargamos los datos del archivo data.ReadXml("~/nwind.xml"); //Registramos la fuente de datos en el informe report.RegisterData(data, "NorthWind"); //Descargamos la plantilla del informe report.Load("~/Master-Detail.frx"); //Preparamos el informe report.Prepare(); //Seleccionamos la segunda página del informe report.PrintSettings.PageNumbers = "2"; //Configuramos el número de copias report.PrintSettings.Copies = 3; //Ocultamos el cuadro de diálogo de impresión report.PrintSettings.ShowDialog = false; //Enviamos el informe para imprimir report.Print(); //Repetimos lo mismo para el resto de las páginas del informe report.PrintSettings.PageNumbers = "1, 3, 4, 5"; report.PrintSettings.Copies = 1; report.Print();
Por lo tanto, podemos imprimir las páginas de informe deseadas separadamente de todas las demás. El único inconveniente del código anterior es que las páginas impresas estarán fuera de orden. Si es necesario, sin embargo, respetar el orden, tendrá que dividir el procedimiento de impresión del informe en 3 pasos: impresión de la primera página, impresión de la segunda página, impresión del resto de las páginas del informe.