Programación General > Visual Basic 6.0 e inferiores
Re: Saludos y problema para imprimir prn
(1/1)
tompl:
Hola, he empezado hace una semana con esto del visual basic y poco poco he conseguido hacer una aplicación muy sencillita que pide una referencia, una cantidad y un numero de pedido y a través de ellos genera un código de barras.
Mi problema es a la hora de imprimir, ya que, después de generar un archivo prn lo mando a imprimir con una llamada a la orden print del shell, pero si por ejemplo lo pruebo en mi equipo que no tiene impresora y no imprime, cuando le doy otra vez al botón imprimir da un error porque el fichero está en uso (pero por lo menos que controlara el estado del fichero y dijero "Fichero Imprimiendose" o algo así). Además tendría que poner un textbox para introducir el número de etiquetas a imprimir e imprimir luego ese número de etiquetas y por más que he mirado no sé como hacerlo, si con un buble o como.
Os pego el código a ver si me podeis echar una mano.
Muchas gracias por vuestro tiempo.
Un saludo.
Private Sub Imprimir_Click()
Dim xref, xcan1, xcan2, xped, xtot As String
ref = datosref 'Coge los datos de los textbox
ped = datosped
can = datoscan1
xref = Left$(ref + " ", 15)
If IsNull(ped) Or ped = " " Then
ped = "0"
End If
xped = Left$(ped + " ", 10)
xcan1 = Format(can * 10, "0000000000")
xcan2 = Format(can, "#########.0")
xtot = xref + xcan1 + xped ' Concatenación de cadena referencia+cantidad+pedido
Dim fichero As Variant
fichero = "c:codbaretiqueta.prn" ' Envia a un fichero secuencial al disco
Open fichero For Output As #1
Print #1, "N"
Print #1, "B18,55,0,1,2,2,71,B," + Chr$(34) + xtot + Chr$(34)
Print #1, "A294,183,0,4,1,1,N," + Chr$(34) + "REFERENCIA.:" + Chr$(34)
Print #1, "A294,317,0,4,1,1,N," + Chr$(34) + "CANTIDAD:" + Chr$(34)
Print #1, "A272,471,0,4,1,1,N," + Chr$(34) + "NUMERO PEDIDO:" + Chr$(34)
Print #1, "A39,219,0,4,3,4,N," + Chr$(34) + ref + Chr$(34)
Print #1, "A177,355,0,4,3,4,N," + Chr$(34) + xcan2 + Chr$(34)
Print #1, "A207,510,0,4,2,2,N," + Chr$(34) + ped + Chr$(34)
Print #1, "P1"
Close #1
Call Shell("print c:codbaretiqueta.prn", vbHide) ' imprime el fichero creado en ascii
' limpia los controles de pantalla y se posiciona en la referencia
datosref = " "
datoscan1 = 0
datosped = " "
datosref.SetFocus
End Sub
tompl:
Bueno, como en ningún sitio obtengo respuesta, al final lo he hecho con un for, metiendo un textbox de número de etiquetas.
for i=1 to n (habiendo igualado n al textbox)
orden print
next
pero no sé si habrá otra forma más ortodoxa de hacerlo que no sea mandando 'n' veces la orden print... alguien sabe algo de esto?
salu2
Navegación
Ir a la versión completa