Antarez Posted June 25, 2011 Report Share Posted June 25, 2011 ola buenas, mi problema es el sgte: Nesesito generar una informe para imprimirlo, resulta que me lo muestra en la vista preliminar y logro imprimirlo, pero el problema esta en que me aparece todo en una hoja y no pasa a la hoja siguiente, es decir me muetra hasta lo que alcanza en la hoja 1 y el resto no aparece, en vez de aparecer en una segunda hoja. El codigo que utilizo es el siguiente: 'Este es el boton que genera el informe a imprimir: Private Sub botonInforme_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botonInforme.Click Dim papel As New PrintDocument AddHandler papel.PrintPage, AddressOf Imprimir Dim verPapel As New PrintPreviewDialog verPapel.Document = papel verPapel.Show() End Sub 'esta es la funcion con lo que se va a imprimir: Private Sub Imprimir(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Static pageNum As Integer Dim i As Integer = 20 Dim j As Integer = 800 Dim count As Integer = 0 Dim prFont As New Font("ARIAL", 15, GraphicsUnit.Point) Dim negrita As New Font("ARIAL", 15, FontStyle.Bold) e.Graphics.DrawString("Estado de la Faena", New Font("Arial", 24), Brushes.Black, 100, 50) e.Graphics.DrawString("Fecha: " & DateString, prFont, Brushes.Black, 100, 110) e.Graphics.DrawString("Página " & pageNum + 1, prFont, Brushes.Black, 650, 1100) e.Graphics.DrawLine(Pens.Black, 70, 160 + i, 290, 160 + i) e.Graphics.DrawString("Datos Faena", negrita, Brushes.Black, 300, 150 + i) e.Graphics.DrawLine(Pens.Black, 440, 160 + i, 740, 160 + i) e.Graphics.DrawString("Faena", prFont, Brushes.Black, 100, 180 + i) e.Graphics.DrawString(labelFaena.Text, prFont, Brushes.Black, 270, 180 + i) e.Graphics.DrawString("Fecha de Inicio", prFont, Brushes.Black, 100, 210 + i) e.Graphics.DrawString(labelfecha.Text, prFont, Brushes.Black, 270, 210 + i) e.Graphics.DrawString("Cliente", prFont, Brushes.Black, 100, 240 + i) e.Graphics.DrawString(labelCliente.Text, prFont, Brushes.Black, 270, 240 + i) e.Graphics.DrawLine(Pens.Black, 70, 290 + i, 740, 290 + i) e.Graphics.DrawLine(Pens.Black, 70, 350, 310, 350) e.Graphics.DrawString("Avance", prFont, Brushes.Black, 320, 340) e.Graphics.DrawLine(Pens.Black, 400, 350, 740, 350) e.Graphics.DrawString("Cantidad Faenada", prFont, Brushes.Black, 100, 370) e.Graphics.DrawString(labelCantidad.Text, prFont, Brushes.Black, 370, 370) e.Graphics.DrawString("Valor a cobrar por unidad", prFont, Brushes.Black, 100, 400) e.Graphics.DrawString(labelValorCobrar.Text, prFont, Brushes.Black, 370, 400) e.Graphics.DrawString("Valor total por cobrar", prFont, Brushes.Black, 100, 430) e.Graphics.DrawString(labelValorFaenado.Text, prFont, Brushes.Black, 370, 430) e.Graphics.DrawLine(Pens.Black, 70, 480, 740, 480) e.Graphics.DrawLine(Pens.Black, 70, 540 - i, 310, 540 - i) e.Graphics.DrawString("Egresos", prFont, Brushes.Black, 320, 530 - i) e.Graphics.DrawLine(Pens.Black, 410, 540 - i, 740, 540 - i) e.Graphics.DrawString("Sueldos", prFont, Brushes.Black, 100, 560 - i) e.Graphics.DrawString(labelCantidad.Text, prFont, Brushes.Black, 270, 560 - i) e.Graphics.DrawString("Arriendos", prFont, Brushes.Black, 100, 590 - i) e.Graphics.DrawString(labelValorCobrar.Text, prFont, Brushes.Black, 270, 590 - i) e.Graphics.DrawString("Otros Gastos", prFont, Brushes.Black, 100, 620 - i) e.Graphics.DrawString(labelValorFaenado.Text, prFont, Brushes.Black, 270, 620 - i) e.Graphics.DrawLine(Pens.Black, 70, 670 - i, 740, 670 - i) e.Graphics.DrawLine(Pens.Black, 70, 730 - i, 310, 730 - i) e.Graphics.DrawString("Ingresos", prFont, Brushes.Black, 320, 720 - i) e.Graphics.DrawLine(Pens.Black, 410, 730 - i, 740, 730 - i) e.Graphics.DrawString("Valor total por cobrar", prFont, Brushes.Black, 100, 750 - i) e.Graphics.DrawString(labelValorFaenado.Text, prFont, Brushes.Black, 370, 750 - i) e.Graphics.DrawString("Pagos cliente", prFont, Brushes.Black, 100, 780 - i) e.Graphics.DrawString(labelPagado.Text, prFont, Brushes.Black, 370, 780 - i) e.Graphics.DrawString("Saldo por cobrar", prFont, Brushes.Black, 100, 810 - i) e.Graphics.DrawString(labelSaldo.Text, prFont, Brushes.Black, 370, 810 - i) e.Graphics.DrawString("Otros ingresos", prFont, Brushes.Black, 100, 840 - i) e.Graphics.DrawString(labelOtrosIngresos.Text, prFont, Brushes.Black, 370, 840 - i) e.Graphics.DrawLine(Pens.Black, 70, 890 - i, 790, 890 - i) e.Graphics.DrawLine(Pens.Black, 70, 950 - i, 310, 950 - i) e.Graphics.DrawString("Resumen Actual Proyectado", prFont, Brushes.Black, 320, 940 - i) e.Graphics.DrawLine(Pens.Black, 410, 950 - i, 790, 950 - i) e.Graphics.DrawString("Total ingresos", prFont, Brushes.Black, 100, 970 - i) e.Graphics.DrawString(labelIngresos.Text, prFont, Brushes.Black, 270, 970 - i) e.Graphics.DrawString("Total egresos", prFont, Brushes.Black, 100, 1000 - i) e.Graphics.DrawString(labelEgresos.Text, prFont, Brushes.Black, 270, 1000 - i) e.Graphics.DrawString("Utilidad", prFont, Brushes.Black, 100, 1030 - i) e.Graphics.DrawString(labelGanancia.Text, prFont, Brushes.Black, 270, 1030 - i) e.Graphics.DrawLine(Pens.Black, 70, 1080 - i, 790, 1080 - i) e.Graphics.DrawLine(Pens.Black, 70, 1140 - i, 310, 1140 - i) e.Graphics.DrawString("Resumen Actual Proyectado", prFont, Brushes.Black, 320, 1130 - i) e.Graphics.DrawLine(Pens.Black, 410, 1140 - i, 790, 1140 - i) e.Graphics.DrawString("Total ingresos", prFont, Brushes.Black, 100, 1160 - i) e.Graphics.DrawString(labelIngresos.Text, prFont, Brushes.Black, 270, 1160 - i) e.Graphics.DrawString("Total egresos", prFont, Brushes.Black, 100, 1190 - i) e.Graphics.DrawString(labelEgresos.Text, prFont, Brushes.Black, 270, 1190 - i) e.Graphics.DrawString("Utilidad", prFont, Brushes.Black, 100, 1220 - i) e.Graphics.DrawString(labelGanancia.Text, prFont, Brushes.Black, 270, 1220 - i) e.Graphics.DrawLine(Pens.Black, 70, 1270 - i, 790, 1270 - i) End Sub He intentado con el HasMorePages pero parece que no va por ahi la cosa o no lo utilizo bien. Espero me puedan ayudar, desde ya gracias... Link to comment Share on other sites More sharing options...
key_master84 Posted July 1, 2011 Report Share Posted July 1, 2011 Que raro lo del hasmorepages, yo lo he utilizado para generar en batch liquidaciones de sueldo y funciono impeque, lo que tendrias que hacer es colocar el hasmorepages al final de la hoja que estas imprimiendo y darle el valor true, asi te crea otra hoja, pero ojo al hacer esto si depuras cuando pasa a true empieza la funcion del print desde el principio asi que ahi tienes que controlarlo, el codigo seria una cosa asi if(lineasaimprimir>lineasquepuedoimprimir)then hasmorepages=true else hasmorepages=false end if asi controlas que no te quede haciendo paginas infinitamente, cualquier cosas me envias un pm o un mail y te puedo ayudar, Saludos, Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now