elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 23:44  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  Ayuda con leer un Listview
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con leer un Listview  (Leído 677 veces)
abdiel2475

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Ayuda con leer un Listview
« en: 26 Diciembre 2011, 00:11 »

Hola bueno nesesito ayuda para leer el subitem de un listview y que me diga cuantos hay entrados y cuantos salidos y el precio total:

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!


En línea
raul338
Moderador
***
Desconectado Desconectado

Mensajes: 2.371


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Ayuda con leer un Listview
« Respuesta #1 en: 26 Diciembre 2011, 15:37 »

No entiendo donde esta el problema, con unas variables, un bucle para recorrer los items, y un par de If para saber cuales van y cuales no serian la solucion :P


En línea

abdiel2475

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Ayuda con leer un Listview
« Respuesta #2 en: 26 Diciembre 2011, 16:18 »

Todo jala bien exepto

Código:
  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

 

Ya que si en el listview hay nadamas 6 "lineas se podria decir" y el TxTNumero = 50
me da resultados de 40+ :/ osea como que sige contando o no se pasa :/ alguna solucion para indentificar bien , algo mas exacto o presiso
En línea
raul338
Moderador
***
Desconectado Desconectado

Mensajes: 2.371


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Ayuda con leer un Listview
« Respuesta #3 en: 26 Diciembre 2011, 20:26 »

Resetea el contador antes del for, y como esta declarada la variable? Los numeros pueden ser con coma no? :P
En línea

abdiel2475

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Ayuda con leer un Listview
« Respuesta #4 en: 26 Diciembre 2011, 22:03 »

si ya los tenia reseteados
Código:
  Dim NewsAdds As Integer, NewsOuts As Integer, CantidadGanada As Integer
  AnchoCol = 0
  NewsAdds = 0
  NewsOuts = 0

pero ni asi :(

pff alguna otra idea o manera
En línea
abdiel2475

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Ayuda con leer un Listview
« Respuesta #5 en: 27 Diciembre 2011, 02:00 »

Bueno al parecer ya lo resolvi con un metodo un poco mediaval pero :) al final da el resultado esperado.

Código
With ListView4
    Dim Idx As Long
    For e = 1 To flistview.TXTNumero.Text - 1
    If .ListItems(e).SubItems(14) = "Si" Then
       .ListItems(e).Selected = True
         CantidadGanada = CantidadGanada + .ListItems(e).SubItems(12)
         NewsOuts = NewsOuts + 1
    Else
         NewsAdds = NewsAdds + 1
    End If
    Go1 = Go1 + 1
    If Go1 = .ListItems.Count Then
         GoTo Msgs
    End If
    Next e
End With
 
Msgs:
MsgBox ("Ingresados: " & NewsAdds)
MsgBox "Salidos: " & NewsOuts
MsgBox "Total de dinero: " & CantidadGanada
Gracias.
« Última modificación: 28 Diciembre 2011, 16:31 por raul338 » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON LISTVIEW DE VISUAL BASIC 6
Programación General
Guantes Blancos 2 569 Último mensaje 25 Abril 2005, 23:21
por Guantes Blancos
ayuda listview
Programación Visual Basic
josemer 0 207 Último mensaje 15 Febrero 2006, 23:33
por josemer
Listview ayuda plz...
Programación Visual Basic
visualfree 2 794 Último mensaje 6 Noviembre 2006, 16:26
por CeLaYa
Ayuda con ordenar un listview
Programación Visual Basic
gouki86 0 450 Último mensaje 3 Octubre 2007, 19:45
por gouki86
ayuda con listview
Programación C/C++
Proxy Lainux 2 636 Último mensaje 8 Octubre 2008, 22:50
por Proxy Lainux
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines