Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/02/2013, 12:19
Allan2904
 
Fecha de Ingreso: enero-2013
Ubicación: Guayaquil - Ecuador
Mensajes: 17
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Imprimir mas de una hoja

Modifiqué un poco porque el código que pone carga una linea por cada repetición del for pero el mio era texto establecido y el for solo va cuando cargo las líneas de datagridview.

Entonces el código lo dejo así.

Código vb:
Ver original
  1. Dim posicion As Integer = 20
  2.         Dim lineaimpresa As Integer = 0
  3.         Dim leftMargin As Single = 30
  4.         Dim topMargin As Single = e.MarginBounds.Top - 50
  5.         Dim salto_pagina As Boolean = False
  6.         Dim Fil, Col As Int32
  7.         Dim LString As String = ""
  8.         Dim NroLineasPagina As Integer = 70
  9.         lineaimpresa += 1
  10.         LString = LString & "Hostal Mi Fantasía" & vbCrLf & vbCrLf & vbCrLf
  11.         lineaimpresa += 1
  12.         LString = LString & "Contabilidad Mensual " & vbCrLf & vbCrLf & vbCrLf
  13.         lineaimpresa += 1
  14.         LString = LString & "Fecha de impresión: " & Today & vbCrLf & vbCrLf & vbCrLf & _
  15.         "------------------------------------------------------------------------------------------------" & vbCrLf & vbCrLf & vbCrLf
  16.         lineaimpresa += 1
  17.         LString = LString & "Reservas: " & ComboBox2.Text & "" & vbCrLf & vbCrLf & vbCrLf
  18.         lineaimpresa += 1
  19.         LString = LString & "Tipo           Habitación     Depósito       Efectivo       Total" & vbCrLf & vbCrLf
  20.         count = 0
  21.         For Fil = 0 To DataGridView1.Rows.Count - 1
  22.             For Col = 0 To DataGridView1.Columns.Count - 1
  23.                 Call RellenarEsp2(DataGridView1.Item(Col, Fil).Value.ToString, Col)
  24.                 lineaimpresa += 1
  25.                 LString = LString & ncadena & Space(3)
  26.             Next
  27.             count += 1
  28.             If lineaimpresa >= NroLineasPagina Then
  29.                 salto_pagina = True
  30.             End If
  31.             If salto_pagina = True Then
  32.                 e.HasMorePages = True
  33.             Else
  34.                 e.HasMorePages = False
  35.             End If
  36.             lineaimpresa += 1
  37.             LString = LString & vbCrLf
  38.         Next
  39.         lineaimpresa += 1
  40.         LString = LString & "" & vbCrLf
  41.         lineaimpresa += 1
  42.         LString = LString & "Depósitos: " & TextBox1.Text & "" & vbCrLf
  43.         lineaimpresa += 1
  44.         LString = LString & "Efectivo:  " & TextBox2.Text & "" & vbCrLf
  45.         lineaimpresa += 1
  46.         LString = LString & "Total:     " & TextBox4.Text & ""
  47.         e.Graphics.DrawString(LString, printFont, Brushes.Black, leftMargin, posicion, New StringFormat())

Con esto se repite la misma hoja. Entendí que hiciste el problema es que la variable "i" que tu repites sumandole 1 en cada repetición también es la que presentas y es integer pero como te das cuenta en el mio no se repite ninguna linea por eso se me complicó.
También he de decirte que con el ejemplo que pusiste por si solo si continúa en las demás hojas pero aún asi se corta en la parte de abajo de la hoja y se saltan varios número entre las hojas.

Por cierto para no abrir otro tema como cojo el valor de la celda a la que le doy doble click? e.rowindex y e.columnindex no me funciona.

Gracias.

Saludos.