Después de tanto buscar me encontré con un código que está en visual basic(lo convertí a c# por que es en c# que lo necesito) que me podria ayudar para realizar una impresión por lote, yo tengo que escoger los reportes con un check, puedo escoger uno o varios ordenes de trabajo que están en un gridview, los tengo que imprimir en una impresora del servidor, yo cree un dataset con la información que deseo en el reporte, pero tengo problemas con el código del boton imprimir. será que me pueden ayudar para saber cuál es el error, trabajo con visual studio 2008
Código:
protected void btnImprimir_Click(object sender, EventArgs e) { hh=0; foreach (GridViewRow row in GridView1.Rows) { bool isChecked = ((CheckBox)row.FindControl("check1")).Checked; if (isChecked) { lblOTH.Text = GridView1.Rows[hh].Cells[1].ToString(); DSimprimir datasetreporte = new DSimprimir(); private System.Drawing.Printing.PrinterSettings ImpresoraActual; OrdenTrabajochecks reporte= new OrdenTrabajochecks(); // aqui colocas el reporte de orden de trabajo datasetreporte = (OrdenesTrabajo.IdOrdenTrabajo(lblOTH.Text)) // aqui llenas el dataset reporte.SetDataSource(datasetreporte)// aqui le colocas el datasource alreporte parallenarlo ImpresoraActual = new System.Drawing.Printing.PrinterSettings(); ImpresoraActual.PrinterName = "BaPpal01"//aqui colocas el nombre de la impresora; reporte.PrintOptions.PrinterName = ImpresoraActual.PrinterName; System.Drawing.Printing.PrintDocument Doc = new System.Drawing.Printing.PrintDocument(); int Tipo, i; Doc.PrinterSettings.PrinterName = reporte.PrintOptions.PrinterName; for(i = 0; i < Doc.PrinterSettings.PaperSizes.Count; i++){ if( String.Compare(Doc.PrinterSettings.PaperSizes(i).PaperName, "Carta", false) == 0 ){ Tipo = Convert.ToInt32(Doc.PrinterSettings.PaperSizes(i).GetType().GetField("kind", Reflection.BindingFlags.Instance | Reflection.BindingFlags.NonPublic).GetValue(Doc.PrinterSettings.PaperSizes(i))); reporte.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait; reporte.PrintOptions.PaperSize = Tipo; reporte.PrintToPrinter(1, true, 0, 0); break; } } } hh+=1; } }