Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Objeto printer y salto de linea en vb6.0

Estas en el tema de Objeto printer y salto de linea en vb6.0 en el foro de Visual Basic clásico en Foros del Web. Estoy imprimiento un bucle pero cuando el campo !descripcion es demaciado largo necesito que haga un salto de linea al chocar con el campo !precio ...
  #1 (permalink)  
Antiguo 31/12/2009, 13:15
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Objeto printer y salto de linea en vb6.0

Estoy imprimiento un bucle pero cuando el campo !descripcion es demaciado largo necesito que haga un salto de linea al chocar con el campo !precio para evitar que esten uno sobre otro.

Producto1 50.00 1 100.00
Producto2 25.00 5 125.00
Otro prod 60.00 2 120.00
ucto 2

Producto5 25.00 4 100.00

Código:
Printer.Print
rs.MoveFirst
Do Until rs.EOF
    With rs
        Printer.CurrentX = 5
        Printer.Print !descripcion;

        sImp1 = Format(!precio, "###0.00")
        Printer.CurrentX = 49 - (Printer.TextWidth(sImp1)) 'Alinea los decimales a la derecha?
        Printer.Print sImp1;
       
        sImp2 = Format(!cantidad)
        Printer.CurrentX = 59 - (Printer.TextWidth(sImp2))
        Printer.Print sImp2;
        
        sImp3 = Format(!subtotal, "###0.00")
        Printer.CurrentX = 69 - (Printer.TextWidth(sImp3))
        Printer.Print sImp3;
        
        Printer.CurrentY = Printer.CurrentY + 0.9 'Espacio entre cada fila del rs
    End With
    rsl.MoveNext
Loop
Printer.Print
  #2 (permalink)  
Antiguo 31/12/2009, 22:02
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: Objeto printer y salto de linea en vb6.0

No puedo probarlo, así que no se si funcionará a la primera, pero creo que algo como esto te podría servir:

Código vb:
Ver original
  1. Printer.Print
  2. rs.MoveFirst
  3. Do Until rs.EOF
  4.     With rs
  5.  
  6.         Dim sImp0 As String, F As Long, VarTemp As String
  7.  
  8.         sImp0 = Format(!descripcion)
  9.         sImp3 = Format(!subtotal, "###0.00")
  10.  
  11.         For F = 1 To Len(sImp0)
  12.           VarTemp = VarTemp & Mid$(sImp0, F, 1)
  13.           If Printer.TextWidth(VarTemp) > 44 Then Exit For
  14.         Next F
  15.         VarTemp = ""
  16.         If F <= Len(sImp0) Then
  17.           sImp3 = sImp3 & vbCrLf & Mid$(sImp0, F)
  18.           sImp0 = Left$(sImp0, F-1)
  19.         End If
  20.  
  21.         Printer.CurrentX = 5
  22.         Printer.Print sImp0;
  23.  
  24.         sImp1 = Format(!precio, "###0.00")
  25.         Printer.CurrentX = 49 - (Printer.TextWidth(sImp1)) 'Alinea los decimales a la derecha?
  26.        Printer.Print sImp1;
  27.        
  28.         sImp2 = Format(!cantidad)
  29.         Printer.CurrentX = 59 - (Printer.TextWidth(sImp2))
  30.         Printer.Print sImp2;
  31.        
  32.         Printer.CurrentX = 69 - (Printer.TextWidth(sImp3))
  33.         Printer.Print sImp3;
  34.        
  35.         Printer.CurrentY = Printer.CurrentY + 0.9 'Espacio entre cada fila del rs
  36.    End With
  37.     rsl.MoveNext
  38. Loop
  39. Printer.Print

Feliz 2010
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 31/12/2009 a las 22:19 Razón: Corregir. Creo que esta vez si...
  #3 (permalink)  
Antiguo 01/01/2010, 18:42
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Objeto printer y salto de linea en vb6.0

Bien pkj me despejaste la mente.

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:07.