SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: BUHO en Miércoles 25 de Febrero de 2004, 21:30

Título: Imprimir Solo Tres Registros Por Página
Publicado por: BUHO en Miércoles 25 de Febrero de 2004, 21:30
Hola de nuevo.

Tengo el siguiente problema, quiero imprimir tres registros por página  cumplen una condicion hasta que la condicion acabe. Bueno intento emplear bucle por contador For Next pero no encuentro la forma de que de el resultado que quiero.
Agradeceria buestra ayuda..
Adjunto el siguiente codigo

Do Until campo.EOF
 
    For I = 0 To 3
 
   Printer.Font.Size = 8
   Printer.Print Tab(10); "Nombre:    "; campo!nom & ", (" & campo!nif & ")"
   Printer.Print Tab(10); "Dirección:  "; campo!dire
   Printer.Print Tab(10); "Localidad:  "; campo!cp & " - " & campo!loca & " (" & _
                         campo!prov & ")"
   Printer.Print Tab(10); "Total:    "; Format(campo!total, "###,##0.00") & " €"
   
   campo.MoveNext
   Printer.NewPage
   
   Next
 Loop

  FontName = oldfont
  FontSize = oldsize
  Printer.EndDoc

esta condicion for next solo imprime un registro por página, echarme una mano
Gracias........
Título: Re: Imprimir Solo Tres Registros Por Página
Publicado por: Brroz en Jueves 26 de Febrero de 2004, 09:12
Hola BUHO.

Es evidente: cada vez que mueves el siguiente registro del recordset (¿campo?), también imprimes en una nueva página. Debes eliminar el bucle y añadir un contador. Algo así:

Código: Text
  1.  
  2.  
  3. Printer.Font.Size = 8
  4.  
  5. dim int1 as integer
  6.  
  7. Do Until campo.EOF
  8.  
  9. int1 = int1 + 1
  10.  
  11. Printer.Print Tab(10); "Nombre: "; campo!nom & ", (" & campo!nif & ")"
  12. Printer.Print Tab(10); "Dirección: "; campo!dire
  13. Printer.Print Tab(10); "Localidad: "; campo!cp & " - " & campo!loca & " (" & _
  14. campo!prov & ")"
  15. Printer.Print Tab(10); "Total: "; Format(campo!total, "###,##0.00") & " €"
  16.  
  17. if int1 = 3 then
  18.    Printer.NewPage
  19.    int1 = 0
  20. End if
  21.  
  22. campo.MoveNext
  23.  
  24. Loop
  25.  
  26. FontName = oldfont
  27. FontSize = oldsize
  28. Printer.EndDoc
  29.  
  30.  
Título: Re: Imprimir Solo Tres Registros Por Página
Publicado por: BUHO en Jueves 26 de Febrero de 2004, 17:51
gracias por tu respuesta, sencilla pero funciona de fabula y yo que me volvia loco con el for next gracias de nuevo.

hasta otra