flistview.TXTNumero.Text = a la cantidad de listitems que tengo en un listview
.ListItems(e).SubItems(12) = al dinero que han pagado
.ListItems(e).SubItems(14) = (Si/No) Si son los salidos/pagados y No los que han entrado
Este es un codigo de como Imprimir un listview al parecer el codigo funciona bien
pero al momento de que quiero sumar y darle valores a NewAdds, NewOuts, Cantidad...
me salen cosas que no. :/
NewAdds = los que an entrado (los que tienen "No")
NewsOuts = los que an pagado los que se van (los que tienen "Si")
CantidadGanada = al dinero que an pagado los que se van (NewsOuts)
Código:
Public Sub Imprimir_ListView(ListView As ListView)
On Error Resume Next
Dim i As Integer, AnchoCol As Single, Espacio As Integer, X As Integer
Dim e As Integer, e2 As Integer
Dim NewsAdds As Integer, NewsOuts As Integer, CantidadGanada As Integer
AnchoCol = 0
NewsAdds = 0
NewsOuts = 0
CantidadGanada = 0
'Recorremos desde la primer columna hasta la última para almacenar el ancho total
For i = 1 To ListView.ColumnHeaders.Count
AnchoCol = AnchoCol + ListView.ColumnHeaders(i).Width
Next
Espacio = 0
With ListView
'Encabezado de ejemplo
Printer.Print "Reporte Diario"
Printer.Print "Del dia: " & Date
Printer.Print
'Imprime una línea
Printer.Line (Printer.CurrentX, Printer.CurrentY)-(Printer.ScaleWidth, Printer.CurrentY)
'Acá se imprimen los encabezados del ListView
For i = 1 To .ColumnHeaders.Count
Espacio = Espacio + CInt(.ColumnHeaders(i).Width * Printer.ScaleWidth / AnchoCol)
Printer.Print ListView.ColumnHeaders(i).Text;
Printer.CurrentX = Espacio
Next
Printer.Print
'Imprime una línea
Printer.Line (Printer.CurrentX, Printer.CurrentY)-(Printer.ScaleWidth, Printer.CurrentY)
'Imprime Línea en blanco
Printer.Print
'Este bucle recorre los items y subitems del ListView y los imprime
For i = 1 To .ListItems.Count
Espacio = 0
Set Item = .ListItems(i)
Printer.Print Item.Text;
'Recorremos las columnas
For X = 1 To .ColumnHeaders.Count - 1
Espacio = Espacio + CInt(.ColumnHeaders(X).Width * Printer.ScaleWidth / AnchoCol)
Printer.CurrentX = Espacio
Printer.Print Item.SubItems(X);
Next
'Otro espacio en blanco
Printer.Print
Next
For e = 1 To flistview.TXTNumero.Text
CantidadGanada = CantidadGanada + .ListItems(e).SubItems(12)
If .ListItems(e).SubItems(14) = "Si" Then
NewsOuts = NewsOuts + 1
Else
NewsAdds = NewsAdds + 1
End If
Next
Printer.Print
'Imprime la línea de final de impresión
Printer.Line (Printer.CurrentX, Printer.CurrentY)-(Printer.ScaleWidth, Printer.CurrentY)
Printer.Print
'Texto del pie
Printer.Print "Ingresados: " & NewsAdds
Printer.Print "Salidos: " & NewsOuts
Printer.Print "Total de dinero: " & CantidadGanada
End With
'Comenzamos la impresión
Printer.EndDoc
End Sub
De antemano muchas gracias
Y Feliz Navidad!