none
pasar de una pagina a otra RRS feed

  • Pregunta

  • hola amigos tengo un problemas cuando mando a imprimir, tengo 17 filas y solo quiero que imprima de 5 en una pagina otros 5 en 5 en otra y dos en la ultima pagina en total hacen 4 paginas pero no me sale le paso el codigo 

            private void Datos_Cliente(object obj, PrintPageEventArgs ev)
            {
                
      
                fila = 70;
                columna = 1;
               _pagina = 1;
               foreach (DataGridViewRow row in datadetalles.Rows)
               {
                   string descripcion = Convert.ToString(row.Cells["Descripcion"].Value);
                   int cantidad = Convert.ToInt32(row.Cells["Cantidad"].Value);
                   double total = Convert.ToDouble(row.Cells["Total"].Value);
                   double precio = Convert.ToDouble(row.Cells["monto"].Value);
                   ev.Graphics.DrawString(descripcion, fuente, Brushes.Black, columna, fila, new StringFormat());
                   //columna = columna + 15;
                   if (fila > 80)
                   {
                       ev.HasMorePages = true;
                       fila = 1;
                   }
                   else
                   {
                       fila = fila + 20;
                       ev.HasMorePages = false;
                   }
                   
                   
               }
            }

    pero cuando mando a vizualizar todo me sale en una sola pagina que puedo hacer por favor gracias por sus respuestas

    miércoles, 2 de mayo de 2018 5:27

Todas las respuestas

  • Creo que tienes un problema en la gestión de filas: fíjate en que la subrutina recorre las filas en un bucle, y las va escribiendo todas con un DrawString, en lugar de "saltarse" las que no pertenezcan a la página actual. Y además de eso, el control de la página actual no puede funcionar bien, porque lo controlas con una variable local dentro de la subrutina en lugar de una variable de clase, luego se perderá el valor cada vez que se dispare el PrintPage para pasar a la página siguiente.
    miércoles, 2 de mayo de 2018 6:41
    Moderador
  • amigo gracias por contestarme por favor me podrias dar el codigo de como hacerlo por favor 
    miércoles, 2 de mayo de 2018 6:45
  • hola

    el control de paginas se realiza desde el evento

    PrintPage

    analiza el ejemplo como utiliza el HasMorePages

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 2 de mayo de 2018 12:48
  • Por amigo me podrias pasar el codigo como ahcerlo 
    viernes, 4 de mayo de 2018 4:09
  • Hola amigo leandro ya lo pase al evento printpage y sigo con el mismo error me podrías pasar un ejemplo por favor o si mucha molestia el código como hacerlo te lo agradecere mucho 

    viernes, 4 de mayo de 2018 4:10
  • Hola buenas noches, amigos creo que estan muy ocupados y no me pueden brindar ayuda gracias por todo buscare el conocimiento en otros sitios que me puedan ayudar 
    sábado, 5 de mayo de 2018 3:31