AJUDA COM O LISTVIEW

ELMO01 02/08/2011 08:39:34
#380556
Bom dia a todos

Estou tentando fazer em meu programa um ListView com as seguintes opções de procura:

Série Escolar -> Série ao qual o aluno está matriculado -> ComboBox - > 1º Ano / 2º Ano... -> SERALU_ALU
Turno ----------> Turno -> Manhã / Tarde / Noite ----------> ComboBox ---------------------------> PERALU_ALU
Ano Letivo-----> Ano corrente-------------------------------> ComboBox -> 2011 -----------------> ANOALU_ALU

Bem, a procura é realizada com sucesso, só que na hora de mostrar os dados destes alunos no listview não apareçe conforme a procura escolhida pelo usuário. A SUB-ROTINA está abaixo.

Sub Lista_Dados_Alunos()
Dim ProcAlunos As String
New_Turno = IIf(Me.CmB_Turno.Text = [Ô]Manhã[Ô], [Ô]001[Ô], IIf(Me.CmB_Turno.Text = [Ô]Tarde[Ô], [Ô]002[Ô], [Ô]003[Ô]))
ProcAlunos = [Ô]SELECT * FROM tab_aluno where SERALU_ALU & PERALU_ALU & ANOALU_ALU = [ô][Ô] & Me.Cmb_Serie.Text & New_Turno & Me.Cmb_AnoLet.Text & [Ô][ô][Ô]
Dim NewListas As New ListViewItem
Dim dr_Alunos As MySqlDataReader
Dim Con_Alunos As New MySqlConnection(StrServEsc01)
Dim Cmd_Alunos As New MySqlCommand(ProcAlunos, Con_Alunos)
Con_Alunos.Open()
dr_Alunos = Cmd_Alunos.ExecuteReader
Try
If dr_Alunos.HasRows Then
ListView1.Items.Clear()
ListView1.View = View.Details
ListView1.FullRowSelect = True
ListView1.SmallImageList = ImageList1
If dr_Alunos.Read Then
While dr_Alunos.Read
If Trim(dr_Alunos.Item([Ô]SERALU_ALU[Ô])) & Trim(dr_Alunos.Item([Ô]PERALU_ALU[Ô])) & Trim(dr_Alunos.Item([Ô]ANOALU_ALU[Ô])) = Me.Cmb_Serie.Text & New_Turno & Me.Cmb_AnoLet.Text And dr_Alunos.Item([Ô]STATUS_ALU[Ô]).ToString = [Ô]V[Ô] Then
NewListas = ListView1.Items.Add(dr_Alunos.Item([Ô]CODALU_ALU[Ô]).ToString, 0) -> CÓDIGO
NewListas.SubItems.Add(dr_Alunos.Item([Ô]NOMALU_ALU[Ô]).ToString) ---------------> NOME DO ALUNO
NewListas.SubItems.Add(dr_Alunos.Item([Ô]SERALU_ALU[Ô]).ToString) ----------------> SéRIE AO QUAL ESTÁ CURSANDO
End If
End While
End If
Else
ListView1.Items.Clear()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Con_Alunos.Close()
dr_Alunos.Close()
End Sub

Por favor me aponte o que está de errado nesta procura e visualização dos dados para esta sub rotina.

Obrigado,
PEGUDO 02/08/2011 08:50:54
#380558
Resposta escolhida
Cara, teu código para montar os itens e subitens da ListView parace estar correto
Mas tua condição está retornando resultados?

 If [txt-color=#0000f0]Trim[/txt-color](dr_Alunos.Item([txt-color=#e80000][Ô]SERALU_ALU[Ô][/txt-color])) & Trim(dr_Alunos.Item([txt-color=#e80000][Ô]PERALU_ALU[Ô][/txt-color])) & Trim(dr_Alunos.Item([txt-color=#e80000][Ô]ANOALU_ALU[Ô][/txt-color])) = Me.Cmb_Serie.Text & New_Turno & Me.Cmb_AnoLet.Text And dr_Alunos.Item([txt-color=#e80000][Ô]STATUS_ALU[Ô][/txt-color]).ToString = [txt-color=#e80000][Ô]V[Ô][/txt-color] Then


Pelo que eu to vendo, somente será inserido conteúdo na ListView se esta condição acima for satisfeita
Verifique se a lógica dela está correta.
ELMO01 02/08/2011 09:06:34
#380560
PEGUDO - obrigado por ter respondido, a lógica está correta. O que estou tentando fazer:

1 - Verificar se a série + o período + o ano é condizente com o que foi escolhido pelo usuário nos combox
2 - Mostrar na tela estes alunos previamente escolhidos pelos comboxs

Só que não aparece, em um teste feito com variáveis o programa acha o que foi escolhido mais mostra outros alunos que não tem nada ver, ou seja, mostra os alunos das séries posteriores.

Ex:
Escolhido pelo Usuário
Série Turno Ano
| | |
1º ano + Tarde + 2011

Mostra o seguinte: 3º ano + Manhã + 2011

Não consigo saber o porque disto.

Se alguém tiver alguma sugestão, será bem receida.

Obrigado,
PEGUDO 02/08/2011 09:38:19
#380569
Tem como postar um exemplo do teu programa aqui?
Pode ser que, com um exemplo, possamos ajudá-lo melhor
ELMO01 02/08/2011 10:18:01
#380572
PEGUDO - tentei fazer o melhor exemplo como vc pediu - veja arquivo anexo
ELMO01 02/08/2011 10:20:33
#380573
Desculpe-me não anexei o banco de dados
Tópico encerrado , respostas não são mais permitidas