Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - corlo

#31
aqui te paso un ejemplo


         cantidad        producto                             precio                       subtotal
            10             tomates de barbastro                2                            20
            30             patatas  0,60                             18









                                                                                            subtotal:  38
                                                                                                   iva:   4,56
                                                                                                 total:  42.56




gracias


       
#32
Hola nebire

el problema esta en la columna producto, porque no siempre tiene los mismos caracteres

como seria el codigo para arreglar la columna producto

Gracias
#33
Hola nebire por fin he podido correr el programa

hasta ahora tengo esto



Private Sub Command7_Click()
' Imprimir
Dim factura As Integer






Dim total As String
Dim total1 As String
Dim total2 As String


Dim jk As String
'jk = App.Path & "\facturas\" & Combo2.Text & "\" & Txtnum.Text & ".txt"

Printer.Print Tab(5); "HORA: " & UCase(Format(Now, "hh:mm am/pm"))



Dim i As Integer
Dim aux As String


Printer.FontSize = 18

Printer.CurrentX = 4000
Printer.CurrentY = 0
Printer.Print "Factura Nº:"
Printer.CurrentX = 6000
Printer.CurrentY = 0
Printer.Print Txtnum.Text


Printer.CurrentX = 1000
Printer.CurrentY = 3000
Printer.Print "Cantidad"
Printer.CurrentX = 3500
Printer.CurrentY = 3000
Printer.Print "Producto"
Printer.CurrentX = 7350
Printer.CurrentY = 3000
Printer.Print "Precio"
Printer.CurrentX = 9900
Printer.CurrentY = 3000
Printer.Print "Subtotal"



Printer.CurrentX = 3000
Printer.CurrentY = 3500







  listarcolumnas



'Label5.Caption = total
'Label6.Caption = total1
'Label7.Caption = total2

Printer.CurrentX = 8400
Printer.CurrentY = 10000
Printer.Print "Subtotal:"
Printer.CurrentX = 9300
Printer.CurrentY = 10500
Printer.Print "iva:"
Printer.CurrentX = 9000
Printer.CurrentY = 11000
Printer.Print "Total:"

Printer.CurrentX = 10000
Printer.CurrentY = 10000
Printer.Print Label5.Caption
Printer.CurrentX = 10000
Printer.CurrentY = 10500
Printer.Print Label6.Caption
Printer.CurrentX = 10000
Printer.CurrentY = 11000
Printer.Print Label7.Caption



Printer.Print







Printer.EndDoc



End Sub





Private Sub listarcolumnas()
Dim AnchoPapel As Integer
    Dim MargenIzquierdo As Integer
    Dim numCols As Integer
    Dim filas As Long
    Dim ultimafila As Long
    Dim k As Long, j As Long, i As Integer, n As Integer, anchocol As Integer
    Dim linea As String
    Dim margen As Integer
    Dim fuente As StdFont


    Set fuente = Printer.Font
    numCols = 4
    Printer.FontName = "Courier New"  ' una fuente monoespaciada, si no el trabajo es más laborioso...
    filas = ((List1.ListCount + 1) \ numCols)
    ultimafila = ((List1.ListCount + 1) Mod numCols) ' columnas que tendrá la última fila.
    anchocol = ((AnchoPapel - MargenIzquierdo) \ numCols)
   
   
    For k = 0 To filas - 1
        n = margen
        For i = 0 To numCols - 1
            Printer.CurrentX = n  ' imprime el texto de la columna 'i'
            Printer.Print List1.List(j + i)
            n = (n + anchocol)
        Next

        j = (j + numCols)
        Printer.CurrentY = (Printer.CurrentY + Printer.TextHeight("t"))  ' el textheight depende de la fuente seleccionada en la impresora, no importa el texto entre paréntesis... es fijo para la  fuente.
    Next

    If (ultimafila > 0) Then ' la última fila tiene 1 o más columnas, pero menos que 'numcols'.
        n = margen
        For i = 0 To ultimafila - 1
            Printer.CurrentX = n  ' imprime el texto de la columna 'i'
            Printer.Print List1.List(j + i)
            n = (n + anchocol)
        Next
    End If

    Set Printer.Font = fuente
End Sub











y me sale lo siguiente:

la primera fila casi lo hace bien

la segunda fila: primera columna bien segunda columna bien tercera columna mal y cuarta columna mal

faltaria arreglar los datos de la segunda fila



gracias







#34
Gracias
#35
Hola nebire

no puedo seguir con el ejemplo que has puesto, porque no consigo separar las columnas
del list1 por impresora


gracias
#36
gracias por contestar

tu mismo lo dices que hay un error

asi no se solucionan las cosas


yo soy principiante en programacion

gracias por contestar

cierro tema
#37
He probado la funcion y no funciona
gracias
#38
Hola Nebire
Gracias por contestar
una pregunta
para ir a la funcion de listar en columnas ¿como se dirige a la funcion , gracias?
#39
Programación Visual Basic / imprimir list1
3 Octubre 2020, 16:32 PM
Hola soy corlo
tengo una duda para imprimir list1

el codigo que tengo hasta ahora es el siguiente





Private Sub Command7_Click()
' Imprimir
Dim total As String
Dim total1 As String
Dim total2 As String
Dim i As Integer

Dim factura As Integer

ReDim lbtab(1 To 4) As Long

lbtab(1) = 31
lbtab(2) = 141
lbtab(3) = 278
lbtab(4) = 478
SendMessageArray List1.hwnd, LB_SETTABSTOPS, 4, lbtab(1)

total = Label5.Caption
total1 = Label6.Caption
total2 = Label7.Caption

Printer.FontSize = 18

Printer.CurrentX = 3100
Printer.CurrentY = 0
Printer.Print "Factura Nº:"
Printer.CurrentX = 5000
Printer.CurrentY = 0
Printer.Print Txtnum.Text


Printer.CurrentX = 1000
Printer.CurrentY = 3000
Printer.Print "Cantidad"
Printer.CurrentX = 3500
Printer.CurrentY = 3000
Printer.Print "Producto"
Printer.CurrentX = 7350
Printer.CurrentY = 3000
Printer.Print "Precio"
Printer.CurrentX = 9900
Printer.CurrentY = 3000
Printer.Print "Subtotal"


For i = 0 To List1.ListCount - 1
List1.ListIndex = i

Printer.Print List1.List(i)
Next


List1.Clear

Printer.CurrentX = 8400
Printer.CurrentY = 10000
Printer.Print "Subtotal:"
Printer.CurrentX = 9300
Printer.CurrentY = 10500
Printer.Print "iva:"
Printer.CurrentX = 9000
Printer.CurrentY = 11000
Printer.Print "Total:"

Printer.CurrentX = 10000
Printer.CurrentY = 10000
Printer.Print total
Printer.CurrentX = 10000
Printer.CurrentY = 10500
Printer.Print total1
Printer.CurrentX = 10000
Printer.CurrentY = 11000
Printer.Print total2


Printer.Print









Printer.EndDoc



End Sub





la impresion lo hace bien


como puedo hacer las separaciones del list1 a la hora de imprimir las columnas
el list1 tiene 4 columnas

ReDim lbtab(1 To 4) As Long

lbtab(1) = 31
lbtab(2) = 141
lbtab(3) = 278
lbtab(4) = 478
SendMessageArray List1.hwnd, LB_SETTABSTOPS, 4, lbtab(1)


#40
gracias nebire

justo lo que necesitaba

problema resuelto