Hola de nuevo, tengo un listview que cargo con los datos resultantes de cruzar dos ficheros de texto, uno fijo con lo que hay que buscar y otro que cargo en el que se buscan las coincidencias y se enumeran en el listview.
El listview tiene las columnas GRUPO, REFERENCIA, DESCRIPCIÓN, NÚMERO DE PIEZAS, PIEZAS/DÍA.
Mi problema es:
¿Cómo consigo rellenar la última columna del listview que es donde tengo que hacer la operación?
Es decir, si en NÚMERO DE PIEZAS =630 (veces que aparece repatida en el segundo fichero esa pieza) en PIEZAS/DÍA=150, pués es el resultado de dividir por 6 esa cantidad.
Os dejo el fragmento de código donde lleno el listview:
Private Sub btnAbrir_Click(sender As System.Object, e As System.EventArgs) Handles btnAbrir.Click
Dim lenf As Long
Dim lenr As Long
Dim percent As Integer
Dim dato As String
txtArchive.Text = ""
Me.progress.Style = ProgressBarStyle.Continuous
Me.progress.Value = 0
SendMessage(progress.Handle, 1040, 3, 0)
Me.dlgOpen.InitialDirectory = path
Me.dlgOpen.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*"
Me.dlgOpen.ShowDialog()
If Me.dlgOpen.FileName <> "" Then
Me.progress.Visible = True
Me.lstViewMuestras.Items.Clear()
'Limpiar items acumulados de las claves
For i = 0 To keys.Length - 1
keys(i).items = 0
Next
Me.txtArchive.Text = Me.dlgOpen.FileName
Dim fr As New StreamReader(Me.dlgOpen.FileName)
Dim texto As String = fr.ReadToEnd()
filelines = texto.Split(CChar(vbNewLine))
Me.lblStat.Text = "Depurando información..."
'Eliminar aquellas líneas de texto que no contengan subclave
ReDim depuradas(filelines.Length)
Dim cdep As Int32 = 0
lenf = filelines.Length * subkeys.Length
lenr = 0
For i As Int32 = 0 To filelines.Length - 1
For j As Int32 = 0 To subkeys.Length - 1
If filelines(i).IndexOf(subkeys(j)) <> -1 Then
depuradas(cdep) = filelines(i)
cdep += 1
Exit For
End If
Next j
lenr += subkeys.Length
percent = Convert.ToInt32(100 * (lenr / lenf))
If percent >= 100 Then percent = 100
Me.progress.Value = percent
Application.DoEvents()
Next i
'Recuperamos memoria
Array.Resize(depuradas, cdep - 1)
Erase filelines
texto = ""
Me.lblStat.Text = "Procesando coincidencias..."
'Recorremos la lista de claves analizando la totalidad del texto
Me.progress.Style = ProgressBarStyle.Continuous
SendMessage(progress.Handle, 1040, 3, 0)
Me.progress.Value = 0
lenf = keys.Length * depuradas.Length
lenr = 0
For i As Int32 = 0 To keys.Length - 1
keys(i).items = 0
For j As Int32 = 0 To depuradas.Length - 1
dato = depuradas(j).Trim().ToUpper().Replace(" ", "")
If dato.IndexOf(keys(i).key) <> -1 Then
keys(i).items += 1
End If
lenr += 1
percent = Convert.ToInt32(100 * (lenr / lenf))
If percent >= 100 Then percent = 100
Me.progress.Value = percent
Application.DoEvents()
Next j
Next i
Me.progress.Style = ProgressBarStyle.Continuous
SendMessage(progress.Handle, 1040, 3, 0)
Me.progress.Value = 0
'Actualizar la lista
Me.lstViewMuestras.Items.Clear()
'AGREGAMOS AGRUPACIONES (HEADERS) AL LISTVIEW PARA CLASIFICAR
For i = 0 To heads.Length - 1
Dim grupo As New ListViewGroup(heads(i).key)
grupo.Header = heads(i).grupo
grupo.Name = heads(i).grupo
Me.lstViewMuestras.Groups.Add(grupo)
Next
'AGREGAMOS LOS ITEMS DE RECUENTO
Dim operacion As Double = 0
Dim item As New ListViewItem
Dim grup As New ListViewGroup
For i = 0 To keys.Length - 1
'Obtenemos el grupo destino
grup = Me.lstViewMuestras.Groups(keys(i).grupo)
'Creamos el nuevo item
item = New ListViewItem(keys(i).grupo, grup)
item.SubItems.Add(keys(i).code)
item.SubItems.Add(keys(i).descp)
item.SubItems.Add(keys(i).items.ToString())
'Aquí va el calculador de piezas/día
item.SubItems.Add(keys(i).items.ToString())
'Añadimos a la colección
Me.lstViewMuestras.Items.Add(item)
Next
'Mostramos el botón de guardar el archivo
btnGuarda.Visible = True
'Damos formato al listview
Dim c As Integer
For c = 0 To lstViewMuestras.Items.Count - 2 Step 2
lstViewMuestras.Items(c + 1).BackColor = Drawing.Color.AliceBlue
lstViewMuestras.Items(c).BackColor = Drawing.Color.AntiqueWhite
Next c
If (lstViewMuestras.Items.Count And 1) <> 0 Then
lstViewMuestras.Items(c).ForeColor = Drawing.Color.Brown
End If
Else
MsgBox("NO SE HA SELECCIONADO NINGÚN FICHERO PARA PROCESAR", MsgBoxStyle.Information, AcceptButton)
End If
Me.lblStat.Text = ""
Me.progress.Visible = False
End Sub
¿Puede alguien echarme una mano?
Gracias.