PRINTER...¡Ayuda¡

papakino
10 de Abril del 2005
Estoy tratando de hacer un informe para salida por impresora con PRINTER. Lo que es la selección por pantalla no tengo problemas pero, para imprimir y poder ver TODA la información en pantalla, tengo problemas:
- Para ver la información uso un "PictureBox", pero en este objeto no puedo hacer subir y bajar la información en pantalla porque no me acepta el vscrollbar...¿cual puedo emplear o cómo emplearlo para conseguir ver la información de la selección efectuada y que pueda subir y bajar antes de ordenar imprimir?
Más problemas sobre lo mismo : A la hora de imprimir le digo :
Printer.Print Picture1 Y lo único que hace es escribir un cero "0" en el ángulo superior izquierda y lanzarme la hoja fuera.
¿Y para ajustar todos los campos y que salgan todos totalmente alineados, cómo se puede hacer de una manera sencilla y que dé resultado?. Yo lo he hecho de la siguiente manera, perooooooo, no me convence :
Form14.Picture1.Print " "; Rs!numcuenta; Tab(20); Rs!numapunte; " "; Rs!fecha; " "; Rs!concepto, " ", Rs!importe

Por favor, si alguien me puede ayudar por aquí o por mi correo, le estaré súmamente agradecido.
Muchas gracias a todos.

gangrel.
10 de Abril del 2005
Hola es la primera vez ke ago esto de escrivir en un foro osea que a ver que tal me doy a entender y ademas tengo muchas faltas de ortografia pero bueno mira:

Primero para dibujar en un PictureBox te recomiendo uses las propiedades ScaleHeight, ScaleWidth, CurrentX, CurrentY y ScaleMode del control PictureBox.

por ejemplo si la hoja de destino es una hoja tamaño carta o A4 que creo es casi lo mismo segun yo. Podrias hacer los siguiente: seleccionar la propiedad ScaleMode del PictureBox como pixel y despues le indicas las propiedades ScaleHeight = 14850 y ScaleWidth = 10500 que son las medidas equivalentes de una hoja A4 en pixeles

el tamaño del PictureBox seria mas o menos el siguiente
Width = 10500 y height = 14850 para que en la pantalla se vea de un tamaño equivalente a la hoja de papel.

ahora para mostrar algo en el Picture en la posicion que queramos usarias las propiedades CurrentX y CurrentY del Picture, te pongo un ejemplo pa ke esto se entienda mejor

Private Sub Imprimir_en_picture()

'se prepara el Picture
Picture1.ScaleMode = 3 'pixeles
Picture1.FontSize = 10
Picture1.ScaleHeight = 14850
Picture1.ScaleWidth = 10500

'y para escrivir algo seria lo siguiente
Picture1.CurrentX = 1500
Picture1.CurrentY = 400
Picture1.Print "este texto estaria en la parte superior como tres centimetros a la derecha"

Picture1.CurrentX = 11000
Picture1.CurrentY = 4500
Picture1.Print "este texto estaria aproximadamente a la mitad de la hoja"
End Sub

y asi susesivamente nesesitas hacer tus propias pruebas para ir comprobando como funciona

ahora para lo del scroll lo que puedes hacer es meter este picturebox donde vas a imprimir todo tu choro en otro picturebox ¿para que? para que puedas implementar un scroll.
insertas un PictureBox como contenedor (Pbcontenedor) y dentro de el metes el PictureBox donde se va a ver todo el choro (PbPrint) y a las propiedades del scroll le puedes poner esto Max = -6200 Min = 240 y despues.

Private Sub Scroll_Change()
PbPrint.Top = Scroll.Value
End Sub

esto ara que el PbPrint se mueva dentro del PbContenedor y puedas ver el contenido del PbPrint como en Word se pueden ver las hojas.
Pero tienes que establecer la propiedad AutoRedraw de PbPrint como True para que se vea bonito

ahora para imprimir en la impresora le puedes hacer de la misma manera yo te recomiendo una funcion para matar dos pajaros de un solo tiro.

Private sub Imprimir (objeto as Object)

objeto.ScaleMode = 3
objeto.FotSize = 10
objeto.ScaleHeight = 14850
objeto.ScaleWidth = 10500

objeto.CurrentX = 1500
objeto.CurrentY = 400
objeto.Print "Estado del prestamo No. " & Text1

objeto.CurrentX = 1500
objeto.CurrentY = 400
objeto.Print txtNombre

'como el objeto PictureBox no tiene el metodo EndDoc si no metemos esta linea y el objeto es un Picture marcaria un errorsote
On Local Error Resume Next

objeto.EndDoc
End Sub

ahora para imprimir en la impresora seria esto:
Imprimir(printer)

y para dibujar en el PictureBox:
Imprimir(PbPrint)

en fin lo mejor para aprende es practicar, ya creo que te di las bases practica para que le entiendas a todo este choro que me tire.

y si no, te puedo mandar un codigo fuente mio aserca de esto solo escriveme tu corre. si no pues espero que esto te alla servido

Hasta la victoria siempre

papakino
10 de Abril del 2005
Hola Grangel : De entrada, MUCHÍSIMAS GRACIAS por responderme con tu amplia y detallada explicación. Ahora mismo lo voy a probar y voy a seguir todos los pasos que me has dado.
Al final de tu escrito me sigues ofreciendo tu ayuda, cosa que AGRADEZCO enormemente. Si, despues de probar y probar (ten en cuenta que soy NOVATO), veo que no me sale o no consigo hacerlo "funcionar", te volveré a pedir ayuda.
MUCHÍSIMAS GRACIAS.