printDocument + Nueva Pagina
Publicado por Rafael (6 intervenciones) el 06/12/2017 18:47:51
Buenos Dias a Todos, soy nuevo en esto de los foros, y estoy aquí para ayudar tanto como para pedir ayuda jeje.
Les cuento, resulta que vengo desde el Visual Basic 6 y estoy metiendome ahora con C# y hasta ahora ya hago muchas cosas, como validar campos, funciones, clases, consultas a base de datos, etc. pero surge un problema con la impresion, bueno ya imprimo, lo que no logro hacer es que al consultar una tabla de 1000 registros me los imprima en varias hojas, siempre imprime la misma hoja repetidamente.
Este seria mi codigo:
Les cuento, resulta que vengo desde el Visual Basic 6 y estoy metiendome ahora con C# y hasta ahora ya hago muchas cosas, como validar campos, funciones, clases, consultas a base de datos, etc. pero surge un problema con la impresion, bueno ya imprimo, lo que no logro hacer es que al consultar una tabla de 1000 registros me los imprima en varias hojas, siempre imprime la misma hoja repetidamente.
Este seria mi codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
int j = 25;
using (MySqlConnection cnn = new MySqlConnection(ConfigurationManager.ConnectionStrings["conexion"].ToString()))
{
MySqlCommand cmd = cnn.CreateCommand();
cnn.Open();
cmd.CommandText = "SELECT numero, nombres FROM test";
cmd.ExecuteNonQuery();
MySqlDataReader reader = cmd.ExecuteReader();
e.Graphics.PageUnit = GraphicsUnit.Millimeter;
e.Graphics.DrawString("SYSTEM ADMIN", new Font("Courier New", 12), new SolidBrush(Color.Black), new RectangleF(10, 10, printDocument1.DefaultPageSettings.PrintableArea.Width, printDocument1.DefaultPageSettings.PrintableArea.Height));
e.Graphics.DrawString("PRUEBA DE IMPRESION", new Font("Courier New", 12), new SolidBrush(Color.Black), new RectangleF(10, 15, printDocument1.DefaultPageSettings.PrintableArea.Width, printDocument1.DefaultPageSettings.PrintableArea.Height));
while (reader.Read())
{
e.Graphics.DrawString(reader.GetString("numero_corredor") + new string(' ', 10 - Convert.ToInt32(reader.GetString("numero").Length)) + reader.GetString("nombres"), new Font("Courier New", 12), new SolidBrush(Color.Black), 10, j);
j += 5;
i++;
e.HasMorePages = true;
}
reader.Close();
cnn.Close();
}
}
Valora esta pregunta


0