Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/08/2012, 13:33
sheccid65
 
Fecha de Ingreso: agosto-2006
Mensajes: 56
Antigüedad: 17 años, 8 meses
Puntos: 0
Código para impresion por lote con dataset

Buenos días,

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;
        }
    }