Foros del Web » Programación para mayores de 30 ;) » .NET »

Código para impresion por lote con dataset

Estas en el tema de Código para impresion por lote con dataset en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/08/2012, 13:33
 
Fecha de Ingreso: agosto-2006
Mensajes: 56
Antigüedad: 18 años, 2 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;
        }
    }

Etiquetas: dataset, impresion, lote, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:15.