• Jueves 28 de Marzo de 2024, 11:13

Mostrar Mensajes

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


Mensajes - solilopi

Páginas: [1]
1
VB .NET / problema con ListView
« en: Miércoles 15 de Junio de 2016, 18:28 »
Hola de nuevo, tengo un ListView que relleno desde una Bd, mi problema es que una de las columnas es una fecha que en la Bd está como tal (formato date) pero al mostrarla en el ListView la muestra como DateTime. ¿Cómo puedo mostrar sólo la fecha?. Gracias.

2
VB .NET / modificar listview en tiempo de ejecución
« en: Viernes 24 de Octubre de 2014, 03:40 »
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:
Código: [Seleccionar]
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.  :ayuda:

Páginas: [1]