Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/02/2010, 11:51
AlterElt
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 15 años, 1 mes
Puntos: 0
problemilla con listview

Buenas!

Tengo un problemilla con un listview que no me acaba de mostrar los datos como yo quiero :S

os pongo el código antes de nada:

Código vb:
Ver original
  1. '%%%%%%%%%%%%%%%%%%%%%
  2.        'Relleno el ListView de medidas
  3.        'llenamos el ListView con las medidas
  4.        '%%%%%%%%%%%%%%%%%%%%%
  5.  
  6.         ' Propiedades del ListView  
  7.        With lvInicioMedidas
  8.             .Items.Clear()
  9.             .Columns.Clear()
  10.             .View = View.Details
  11.             .GridLines = True
  12.             .FullRowSelect = True
  13.             ' añadir los nombres de columnas  
  14.            For c As Integer = 2 To TablaMedidas.Columns.Count - 1
  15.                 .Columns.Add(TablaMedidas.Columns(c).Caption)
  16.             Next
  17.         End With
  18.  
  19.         ' Añadir los registros de la tabla  
  20.        ' La TablaMedidas empieza por 0 la numeración de ítems (SQLite)
  21.        ' El ListView empieza por 1 la numeración de ítems (VB .net)
  22.        With TablaMedidas
  23.             'recorrer filas en TablaMedidas
  24.            For f As Integer = 0 To .Rows.Count - 1
  25.  
  26.                 'fila de items que agrego al ListView
  27.                Dim fila As New ListViewItem '(TablaMedidas.Rows(f).Item(2).ToString)
  28.  
  29.                 ' recorrer las columnas en TablaMedidas (a partir de la segunda) para construir cada fila
  30.                For c As Integer = 2 To .Columns.Count - 1
  31.                     If c = 2 Then 'si es una fecha (columna 2)
  32.                        Dim fechaMedida As Date = TablaMedidas.Rows(f).Item(c).Date
  33.                         fila.SubItems.Add(fechaMedida)
  34.                     ElseIf c > 2 Then 'si es una medida (resto de columnas)
  35.                        Dim medidas As Single = TablaMedidas.Rows(f).Item(c).ToString()
  36.                         fila.SubItems.Add(medidas)
  37.                     End If
  38.                 Next
  39.                 'meto datos en el ListView
  40.                lvInicioMedidas.Items.Add(fila)
  41.             Next
  42.         End With

La situación en la siguiente:

Tengo una tabla TablaMedidas que contiene una consulta de la base de datos. En ella se incluyen varios campos:

id_medida, id_cliente, fecha, peso, lipocalibrador, cintura, etc (en total 15 columnas)

El caso es que en el ListView quiero mostrar una parte de esa tabla y no toda la tabla, en concreto quiero ocultar la id de la medida y la id del cliente. Es decir, solo quiero mostrar la fecha y las medidas correspondientes a esa fecha.

El caso es que tal y como lo tengo me muestra estos resultados:



Como veis me desplaza los datos una columna y no se porque. He probado de mil formas con el debugger, pero la verdad es que no veo el fallo. Lo que si que he visto es que el fallo podría estar en la línea

Código vb:
Ver original
  1. lvInicioMedidas.Items.Add(fila)

ya que con el debugger compruebo como se van metiendo los subitems correctamente en la variable fila (aunque realmente no puedo ver (o no se como) todo el contenido de fila)

Agradecería vuestra ayuda para solucionar este problema.

Saludos y gracias