Jump to content

Impresion en Visual .Net


Recommended Posts

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...