SoloCodigo
		Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: tompl en Miércoles  5 de Febrero de 2003, 13:47
		
			
			- 
				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
- 
				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