none
manejo de valores dentro de un while RRS feed

  • Pregunta

  • quisiera saber si puedo retener los valores que pasan por un while y compararlo con el siguiente

    If ConectarBD() = True Then
                        Dim resu As OleDb.OleDbDataReader
                        Dim com3 As New OleDb.OleDbCommand
                        Dim com5 As New OleDb.OleDbCommand
                        Dim com10 As New OleDb.OleDbCommand
    
                        Dim cc As Char
                        Dim dd As Char
                        Dim ff As Char
                        Dim hh As Char
                        'Dim rp As String
                        'Dim n As Integer
                        cc = "."
                        dd = "/"
                        ff = "&"
                        hh = "?"
                        com3.CommandText = "SELECT DISTINCT NC,Nombre FROM registros WHERE Grado = '" & ComboBox2.Text(0) & "' AND Grupo= '" & ComboBox2.Text(1) & "' AND Materia = '" & ComboBox8.Text & "' AND Fecha BETWEEN '" & DateTimePicker1.Text & "' AND '" & DateTimePicker2.Text & "' GROUP BY NC,Nombre"
                        com3.Connection = ConnectionA
                        resu = com3.ExecuteReader
                        Dim aa As Integer
                        Dim ZZ As Char
                        'Dim enlis As New ListViewItem
                        'aa = 0
                        While resu.Read
                            'resu.Close()
                            aa = aa + 1
                            ZZ = " "
                            Dim res As OleDb.OleDbDataReader
                            Dim enlis As New ListViewItem((aa))
                            enlis.SubItems.Add((resu("NC")))
                            enlis.SubItems.Add((z))
                            enlis.SubItems.Add((resu("Nombre")))
                            com5.CommandText = "SELECT * FROM registros WHERE NC = '" & (resu("NC")) & "'AND Grado = '" & ComboBox2.Text(0) & "' AND Grupo= '" & ComboBox2.Text(1) & "' AND Materia = '" & ComboBox8.Text & "' AND Fecha BETWEEN '" & DateTimePicker1.Text & "' AND '" & DateTimePicker2.Text & "' ORDER BY Fecha ASC "
                            com5.Connection = ConnectionA
                            res = com5.ExecuteReader
                            If l = "martes" Then
                                enlis.SubItems.Add((" "))
                            End If
                            If l = "miércoles" Then
                                enlis.SubItems.Add((" "))
                                enlis.SubItems.Add((" "))
                            End If
                            If l = "jueves" Then
                                enlis.SubItems.Add((" "))
                                enlis.SubItems.Add((" "))
                                enlis.SubItems.Add((" "))
                            End If
                            If l = "viernes" Then
                                enlis.SubItems.Add((" "))
                                enlis.SubItems.Add((" "))
                                enlis.SubItems.Add((" "))
                                enlis.SubItems.Add((" "))
    
                            End If
    
                            While res.Read()
                                If (res("Falta")) = "False" And (res("Retardo")) = "False" Then
                                    enlis.SubItems.Add(cc)
                                End If
                                If (res("Falta")) = "True" And (res("Retardo")) = "False" Then
                                    enlis.SubItems.Add(dd)
                                End If
                                If (res("Falta")) = "False" And (res("Retardo")) = "True" Then
                                    enlis.SubItems.Add(hh)
                                End If
                                If (res("Falta")) = "True" And (res("Retardo")) = "True" Then
                                    enlis.SubItems.Add(ff)
                                End If
                          End While
                            ListView1.Items.Add(enlis)
                            res.Close()
                        End While
                        'Button3.Visible = True
                    End If
                    MessageBox.Show("Se Localizaron: " & ListView1.Items.Count & " Registros ", "Control de Registro", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    ConnectionA.Close()
                    TextBox1.Focus()
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                ConnectionA.Close()
                Exit Sub
            End Try
    

    hasta el momento el codigo expuesto arriba llena una lista de asistencia en un listview la primera consulta expone en el listview los numeros de control y los nombres de los a lumnos.

    la segunda filtra los datos y los ordena ascendentemente para posicionarlos delante del nombre con un símbolo determinado para cada uno de los alumnos.

    bien en síntesis esto es lo que el código despliega

    N       CLAVE                     NOBRE                    L M M J  V L  M M  J V L

    1   4332323213     GOMEZ VAZQUEZ JAIME       .  .  .  .  / 

    lo malo es que de la segunda consulta estas son las fechas que despliega

    L   02/05/2013

    M  03/05/2013

    M  03/05/2013

    J   04/05/2013

    V   05/05/2013

    Si se dan cuenta el martes y el miércoles tienen fechas repetidas y eso es por que en esa misma fecha se generaron dos registros para una materia debido a que se les impartió esa misma materia el mismo día pero en horas diferentes .

    lo que intento hacer es lo siguiente :  

    N       CLAVE                     NOBRE                    L  M M J  V L  M M  J V L

    1   4332323213     GOMEZ VAZQUEZ JAIME      .  ..  .  /

    quisiera detectar esas coincidencias y posicionarlas en la misma casilla del día.

    espero y quede lo mas claro posible por su tiempo y ayuda mil gracias.

     

     


    • Editado Jaimegz jueves, 31 de octubre de 2013 17:13
    viernes, 25 de octubre de 2013 20:37