Amigos del Foro, este temita me tiene dando vueltas hace bastantes días, el royo ya me está doliendo la cabeza...
Resulta que estoy utilizando print document, para imprimir datos extraidos mediantes consultas, todas ellas sacadas desde un parametro de un combobox en un formulario, resulta que al utilizar e.HasMorePages = True según la condición de corte, me genera un bucle infinito, y en cada página me imprime la segunda hoja que quiero imprimir sobre los daos de la primera...
Algunos string que se imprimen estan sacados desde los controles donde esta el boton, otros estan sacados desde consultas.
Este es el código, ojala me puedan ayudar PLis...
Si el código no s eentiende, disculpen no tengo ni idea como se debería de postear de buena manera... gracias
Private Sub BTN_Imprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_Imprimir.Click
If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings
PrintDocument1.Print()
End If
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim objLogica = New Logica.Logica
Dim objAlumnoEN = New AlumnoEN
Dim objApoderadoEN = New ApoderadoEN
Dim objPlanEN = New PlanEN
Dim objCursoEN = New CursoEN
Dim logoIz = New Font("Arial", 8, FontStyle.Underline)
Dim logoDe = New Font("Arial", 8, FontStyle.Regular)
Dim titrepo = New Font("Arial", 12, FontStyle.Italic)
Dim numatr = New Font("Arial", 12, FontStyle.Regular)
Dim subti = New Font("Arial", 10, FontStyle.Bold)
Dim contenido = New Font("Arial", 8, FontStyle.Regular)
objPlanEN.Tipo = Periodoactual
e.Graphics.DrawImage(My.Resources.LOGO2, 40, 30)
e.Graphics.DrawString(" Innovación Centro de Estudios", logoIz, Brushes.Black, 40, 110)
e.Graphics.DrawString("[Año: ", logoDe, Brushes.Black, 550, 30)
e.Graphics.DrawString(Me.LBL_AnoActual.Text, logoDe, Brushes.Black, 580, 30)
e.Graphics.DrawString("Periódo: ", logoDe, Brushes.Black, 610, 30)
e.Graphics.DrawString(objLogica.entregar_codigo_pl an(objPlanEN) + " - " + Periodoactual + "]", logoDe, Brushes.Black, 655, 30)
e.Graphics.DrawString("Matrícula Preuniversitario " + Me.LBL_AnoActual.Text, titrepo, Brushes.Black, 300, 60)
A = Me.TBX_Matricula.Text
ReDim Asi(Len(A))
For i = 1 To Len(A)
Asi(i) = Mid$(A, i, 1)
Next i
e.Graphics.DrawString("N°: " + A(2) + A(3) + A(4), numatr, Brushes.Black, 390, 100)
e.Graphics.DrawString("Matrícula N°:", contenido, Brushes.Black, 550, 100)
e.Graphics.DrawString(Me.TBX_Matricula.Text, subti, Brushes.Black, 670, 100)
e.Graphics.DrawString("Fecha Inscripción:", contenido, Brushes.Black, 550, 120)
e.Graphics.DrawString(Me.LBL_FeIngr.Text, subti, Brushes.Black, 670, 120)
e.Graphics.DrawString("Nombre Alumno(a):", contenido, Brushes.Black, 60, 200)
e.Graphics.DrawString(Me.TBX_NombreAl.Text + " " + Me.TBX_ApeP.Text + " " + Me.TBX_ApeMat.Text, subti, Brushes.Black, 180, 197)
e.Graphics.DrawString("RUT:", contenido, Brushes.Black, 60, 220)
Dim Var_Seleccion As Integer
Var_Seleccion = Me.DGV_4.CurrentRow.Index
e.Graphics.DrawString(Me.DGV_4.Item(1, Var_Seleccion).Value, subti, Brushes.Black, 180, 217)
e.Graphics.DrawString("Sexo :", contenido, Brushes.Black, 60, 240)
If Me.CBX_SexoAl.SelectedIndex = 1 Then
e.Graphics.DrawString("Masculino", subti, Brushes.Black, 180, 237)
Else
e.Graphics.DrawString("Femenino", subti, Brushes.Black, 180, 237)
End If
e.Graphics.DrawString("Fecha de Nacimiento :", contenido, Brushes.Black, 400, 240)
e.Graphics.DrawString(Me.MTB_Naci.Text, subti, Brushes.Black, 520, 237)
e.Graphics.DrawString("Dirección Alumno(a) :", contenido, Brushes.Black, 60, 260)
e.Graphics.DrawString(Me.TBX_Dire.Text, subti, Brushes.Black, 180, 257)
e.Graphics.DrawString("Comuna :", contenido, Brushes.Black, 60, 280)
e.Graphics.DrawString(Me.TBX_Comun.Text, subti, Brushes.Black, 180, 277)
e.Graphics.DrawString("Ciudad :", contenido, Brushes.Black, 60, 300)
e.Graphics.DrawString(Me.TBX_Ciudad.Text, subti, Brushes.Black, 180, 297)
e.Graphics.DrawString("Teléfono :", contenido, Brushes.Black, 60, 320)
e.Graphics.DrawString(Me.TBX_FonoCasa.Text, subti, Brushes.Black, 180, 317)
e.Graphics.DrawString("Celular :", contenido, Brushes.Black, 60, 340)
e.Graphics.DrawString(Me.TBX_Celu.Text, subti, Brushes.Black, 180, 337)
e.Graphics.DrawString("E-Mail :", contenido, Brushes.Black, 60, 360)
e.Graphics.DrawString(Me.TBX_Meil.Text, subti, Brushes.Black, 180, 357)
e.Graphics.DrawString("Institución de Enseñanza Media de la que Proviene :", contenido, Brushes.Black, 60, 380)
e.Graphics.DrawString(Me.TBX_Cole.Text, subti, Brushes.Black, 340, 377)
e.Graphics.DrawString("Carrera Proyectada :", contenido, Brushes.Black, 60, 400)
e.Graphics.DrawString(Me.TBX_Carre.Text, subti, Brushes.Black, 180, 397)
e.Graphics.DrawString("Puntaje Esperado :", contenido, Brushes.Black, 60, 420)
e.Graphics.DrawString(Me.TBX_Puntaje.Text, subti, Brushes.Black, 180, 417)
e.Graphics.DrawString("Nombre del Apoderado o Aval :", contenido, Brushes.Black, 60, 440)
e.Graphics.DrawString(Me.TBX_NomApo.Text + " " + Me.TBX_ApePaApo.Text + " " + Me.TBX_ApeMatApo.Text, subti, Brushes.Black, 260, 437)
e.Graphics.DrawString("RUT :", contenido, Brushes.Black, 60, 460)
e.Graphics.DrawString(Me.TBX_RutApo.Text + "-" + Me.TBX_DVApo.Text, subti, Brushes.Black, 180, 457)
e.Graphics.DrawString("Dirección Particular :", contenido, Brushes.Black, 60, 480)
e.Graphics.DrawString(Me.TBX_DireccApo.Text, subti, Brushes.Black, 230, 477)
e.Graphics.DrawString("Comuna :", contenido, Brushes.Black, 60, 500)
e.Graphics.DrawString(Me.TBX_ComunApo.Text, subti, Brushes.Black, 180, 497)
e.Graphics.DrawString("Ciudad :", contenido, Brushes.Black, 60, 520)
e.Graphics.DrawString(Me.TBX_CiuApo.Text, subti, Brushes.Black, 180, 517)
e.Graphics.DrawString("Teléfono :", contenido, Brushes.Black, 60, 540)
e.Graphics.DrawString(Me.TBX_FonoCasaApo.Text, subti, Brushes.Black, 180, 537)
e.Graphics.DrawString("Celular :", contenido, Brushes.Black, 60, 560)
e.Graphics.DrawString(Me.TBX_CeluApo.Text, subti, Brushes.Black, 180, 557)
e.Graphics.DrawString("E-Mail :", contenido, Brushes.Black, 60, 580)
e.Graphics.DrawString(Me.TBX_MailApo.Text, subti, Brushes.Black, 180, 577)
e.Graphics.DrawString("Dirección Laboral :", contenido, Brushes.Black, 60, 600)
e.Graphics.DrawString(Me.TBX_DirecTrabApo.Text, subti, Brushes.Black, 180, 597)
e.Graphics.DrawString("Comuna :", contenido, Brushes.Black, 60, 620)
e.Graphics.DrawString(Me.TBX_ComTrabApo.Text, subti, Brushes.Black, 180, 617)
e.Graphics.DrawString("Teléfono :", contenido, Brushes.Black, 60, 640)
e.Graphics.DrawString(Me.TBX_FonoTrabApo.Text, subti, Brushes.Black, 180, 637)
e.Graphics.DrawString("Asignaturas Inscritas :", subti, Brushes.Black, 400, 680)
e.Graphics.DrawString("Código Curso :", subti, Brushes.Black, 60, 700)
e.Graphics.DrawString("Asignatura :", subti, Brushes.Black, 200, 700)
e.Graphics.DrawString("Jornada :", subti, Brushes.Black, 290, 700)
e.Graphics.DrawString("Profesor :", subti, Brushes.Black, 380, 700)
e.Graphics.DrawString("% Aistencia :", subti, Brushes.Black, 490, 700)
Dim ab = 730
For i = 0 To Me.DGV_5.Rows.Count - 1
objCursoEN.Codigo = Me.DGV_5.Item(0, i).Value
e.Graphics.DrawString(Me.DGV_5.Item(0, i).Value, subti, Brushes.Black, 60, ab)
e.Graphics.DrawString(Me.DGV_5.Item(1, i).Value, subti, Brushes.Black, 200, ab)
e.Graphics.DrawString(objLogica.entregar_jornadade lcurso(objCursoEN), subti, Brushes.Black, 290, ab)
e.Graphics.DrawString(objLogica.entregar_profesord elcurso(objCursoEN), subti, Brushes.Black, 380, ab)
ab = ab + 20
Next
End Sub