LEOSOFT, imprimir Gird1...

Private Sub imprimir_Click()
Dim klk As Integer
For klk = 0 To list1.ListCount - 1
Printer.Print resultado
Next klk
Printer.EndDoc ' esto te envia a la impresora
End Sub
Hola Leo, nuevamente yo! Si te acuerdas antes teníamos un List donde memorizábamos valores. Lo cambiemos a Grid1. ¿Qué tengo que cambiar para que me imprima lo que muestre el Grid1? ¿Esto seria correcto?
Private Sub imprimir_Click()
Dim klk As Integer
For klk = 0 To Grid1.ListCount - 1
Printer.Print resultado
Next klk
Printer.EndDoc ' esto te envia a la impresora
End Sub
No lo he probado aún... Un saludo. MarK

1 Respuesta

Respuesta
1
La rutina es parecida, cambia algunas cosas:
Private Sub imprimir_Click()
Dim Resultado As String
Dim klk As Integer
For klk = 1 To Grid1.Rows
Grid1.Row = klk
Grid1.Col = 0
Resultado = Grid1.Text & chr(9)
Grid1.Col = 1
Resultado = Grid1.Text & chr(9)
Grid1.Col = 2
Resultado = Grid1.Text & chr(9)
Printer.Print Resultado
Next
Printer.EndDoc
End Sub
Pruébalo así.
Me sale: Run-time error '30009' Invalid Row value. Si le clicko a "Debug", se me va a la línea:
Grid1.Row = klk
Te escribo aqui mis variables dentro del Command1_Click():
Grid1.Rows = Grid1.Rows + 1
Grid1.Row = Grid1.Rows - 1
Grid1.Col = 0
Grid1.Text = anotacio
Grid1.Col = 1
Grid1.Text = total
Grid1.Col = 2
Grid1.Text = Label888
Me gustaría saber que es lo que hace la variable "Resultado". Cuando imprimíamos utilizando el List1 funcionaba perfectamente, ¿no lo entiendo? Te agradezco tu atención y dedicación. Un saludo. MarK
Es igual el List
Corregí esta linea:
For klk = 1 To Grid1.Rows - 1
Siempre la suma total de lineas es un numero más que la pripiedad Row, es un defecto que viene desde la primera version de visual.
(Por ejemplo si las lineas son 20 la ultima linea es la numero 19)
Ojala lo tengan en cuanta para versiones futuras.
Hola Leo, ahora ya no sale el error y imprime, pero solamente me imprime la última columna. Espero le veas el problema. Un saludo. MarK.
Estoy en una maquina donde no pude probar tu código, pero el error lo encontré igual.
Pruébalo así:
Private Sub imprimir_Click()
Dim Resultado As String
Dim klk As Integer
For klk = 1 To Grid1.Rows - 1
Grid1.Row = klk
Grid1.Col = 0
Resultado = Grid1.Text & chr(9)
Grid1.Col = 1
Resultado = Resultado & Grid1.Text & chr(9)
Grid1.Col = 2
Resultado = Resultado & Grid1.Text & chr(9)
Printer.Print Resultado
Next
Printer.EndDoc
End Sub
Hola Leo, de nuevo estoy alucinando contigo... ESTO YA FUNCIONA!
Tengo el programa ya acabado! Solo una cosa que no sé si es modificable desde el programa o si ya es tema de impresora: Cuando me imprime no me deja margenes en la hoja, aparte, lo hace todo seguido, con espacios claro esta, pero yo quisiera que me quedara bien justificado como queda en el formulario del programa.
Otro tema que me sale ahora... Creé una condición para que en el caso de que no haiga nada para eliminar en el grid1(haciendo doble click) no se "cuelgue" el programa, pero si hago doble click dentro del gird1(dentro de los marcos donde salen las filas con las anotaciones)se me elimina una fila. ¿Tiene solución?
Espero que puedas encontrar el que. Estoy muy agradecido por todo tu esmero! De verdad! Gracias, gracias, gracias!
Proba con esta modificación en el código de borrar:
Grid1_DblClick()
If Grid1.Rows = 1 Then Exit Sub
IF Grid1.Text = "" Then Exit Sub
Grid1.Col=1
Label2= CDbl(Label2) - CDbl(Grid1.Text)
Grid1.Col=2
Label5= CDbl(Label5) - CDbl(Grid1.Text)
For x = Grid1.Row To Grid1.Rows - 2
For xx = 0 To 3
Grid1.Col = xx
Grid1.Row = x + 1
texto = Grid1.Text
Grid1.Row = x
Grid1.Text = texto
Next
Next
Grid1.Rows = Grid1.Rows - 1
End Sub
Hola Leo, nos queda el tema de la impresión. Me gustaría que quede bien imprimido, con margenes, alineado,... ya sabes, algo presentable. También me gustaría que cuando le dé al ENTER del teclado, ejecute el botón Command1_Click(), es possible o pido mucho!
Espero ordenes. Un saludo. MarK
Te paso por las dudas lo del ENTER
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Call Command1_Click
End Sub
recorda poner la propiedad KeyPreview = True en el formlario.
Lo de la imresion lo pruebo y te lo mando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas