Noeljunior
I fold therefore I AM
Boas
Estou aqui encravado numa situação estranha.
Tenho uma estrutura e, mais tarde, um array do tipo da estrutura (array as nome_da_estrutura).
É um programa tipo base de dados. Muito rapidamente digo que é um programa que por cada disciplina (array) tem vários (8) campos a guardar (estrutura).
Então tenho 3 listviews onde mostro os dados de cada disciplina e uma combobox onde escolho a disciplina. O erro acontece quando mudo a disciplina e reparo que ele não está a guardar decentemente os dados.
Array-estrutura:
Public Structure uswdis
Public nome As String
Public testedata() As Date
Public testenota() As Single
Public faltadata() As Date
Public faltamot() As String
Public faltajust() As Boolean
Public sumdata() As Date
Public sumdes() As String
End Structure
Public disuw() As uswdis
listview1: testedata; testenota
listview2: faltadata; faltamot; faltajust
listview3: sumdata; sumdes
Código que adiciona os dados no array-estrutura:
No inicio do programa ele faz um resize a cada campo para 1. A variável lg serve-me de apoio para fazer um resize sempre que adiciono um teste, falta ou sumário aos campos.
O código que limpa as listviews e escreve nelas os dados de cada disciplina:
E é tudo. Ele nao está a guardar bem os dados porque quando mudo de disciplina ele só escreve bem na listview dos testes. Na da faltas ele adiciona um a mais com 000 e nos sumários não faz nada.
Se desconfiarem de alguma coisa, digam, sff
Cumps
Estou aqui encravado numa situação estranha.
Tenho uma estrutura e, mais tarde, um array do tipo da estrutura (array as nome_da_estrutura).
É um programa tipo base de dados. Muito rapidamente digo que é um programa que por cada disciplina (array) tem vários (8) campos a guardar (estrutura).
Então tenho 3 listviews onde mostro os dados de cada disciplina e uma combobox onde escolho a disciplina. O erro acontece quando mudo a disciplina e reparo que ele não está a guardar decentemente os dados.
Array-estrutura:
Public Structure uswdis
Public nome As String
Public testedata() As Date
Public testenota() As Single
Public faltadata() As Date
Public faltamot() As String
Public faltajust() As Boolean
Public sumdata() As Date
Public sumdes() As String
End Structure
Public disuw() As uswdis
listview1: testedata; testenota
listview2: faltadata; faltamot; faltajust
listview3: sumdata; sumdes
Código que adiciona os dados no array-estrutura:
Código:
Public Sub adtest(ByVal x As Date, ByVal y As Single)
disuw(disciplinas.SelectedIndex).testedata(disuw(disciplinas.SelectedIndex).testedata.Length - 1) = CDate(x)
disuw(disciplinas.SelectedIndex).testenota(disuw(disciplinas.SelectedIndex).testenota.Length - 1) = y
Dim lg As Integer = disuw(disciplinas.SelectedIndex).testedata.Length + 1
Array.Resize(disuw(disciplinas.SelectedIndex).testedata, lg)
Array.Resize(disuw(disciplinas.SelectedIndex).testenota, lg)
Dim adf As ListViewItem
adf = testetext.Items.Add(CStr(x), 0)
adf.SubItems.Add(y)
End Sub
Public Sub adfal(ByVal x As Date, ByVal y As String, ByVal z As Boolean)
disuw(disciplinas.SelectedIndex).faltadata(disuw(disciplinas.SelectedIndex).faltadata.Length - 1) = CDate(x)
disuw(disciplinas.SelectedIndex).faltamot(disuw(disciplinas.SelectedIndex).faltamot.Length - 1) = y
disuw(disciplinas.SelectedIndex).faltajust(disuw(disciplinas.SelectedIndex).faltajust.Length - 1) = CBool(z)
Dim lg As Integer = disuw(disciplinas.SelectedIndex).testedata.Length + 1
Array.Resize(disuw(disciplinas.SelectedIndex).faltadata, lg)
Array.Resize(disuw(disciplinas.SelectedIndex).faltamot, lg)
Array.Resize(disuw(disciplinas.SelectedIndex).faltajust, lg)
Dim adf As ListViewItem
adf = faltatext.Items.Add(CStr(x), 0)
adf.SubItems.Add(y)
If z = True Then
adf.SubItems.Add("Sim")
Else
adf.SubItems.Add("Não")
End If
End Sub
Public Sub adsum(ByVal x As String, ByVal y As String)
disuw(disciplinas.SelectedIndex).sumdata(disuw(disciplinas.SelectedIndex).sumdata.Length - 1) = CDate(x)
disuw(disciplinas.SelectedIndex).sumdes(disuw(disciplinas.SelectedIndex).sumdes.Length - 1) = y
Dim lg As Integer = disuw(disciplinas.SelectedIndex).testedata.Length + 1
Array.Resize(disuw(disciplinas.SelectedIndex).sumdata, lg)
Array.Resize(disuw(disciplinas.SelectedIndex).sumdes, lg)
Dim adf As ListViewItem
adf = testetext.Items.Add(x, 0)
adf.SubItems.Add(y)
End Sub
O código que limpa as listviews e escreve nelas os dados de cada disciplina:
Código:
Private Sub disciplinas_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles disciplinas.SelectedIndexChanged
'Limpa
testetext.Items.Clear()
faltatext.Items.Clear()
sumariotext.Items.Clear()
'Listview testetext
For x As Integer = 0 To disuw(disciplinas.SelectedIndex).testedata.Length - 2
Dim adf As ListViewItem
adf = testetext.Items.Add(CStr(disuw(disciplinas.SelectedIndex).testedata(x)), 0)
adf.SubItems.Add(disuw(disciplinas.SelectedIndex).testenota(x))
Next
'Listview sumariotext
For z As Integer = 0 To disuw(disciplinas.SelectedIndex).sumdata.Length - 2
Dim adff As ListViewItem
adff = sumariotext.Items.Add(CStr(disuw(disciplinas.SelectedIndex).sumdata(z)), 0)
adff.SubItems.Add(disuw(disciplinas.SelectedIndex).sumdes(z))
Next
'Listview faltatext
For y As Integer = 0 To disuw(disciplinas.SelectedIndex).faltadata.Length - 2
Dim adfff As ListViewItem
adfff = faltatext.Items.Add(CStr(disuw(disciplinas.SelectedIndex).faltadata(y)), 0)
adfff.SubItems.Add(disuw(disciplinas.SelectedIndex).faltamot(y))
If disuw(disciplinas.SelectedIndex).faltajust(y) = True Then
adfff.SubItems.Add("Sim")
Else
adfff.SubItems.Add("Não")
End If
Next
End Sub
Se desconfiarem de alguma coisa, digam, sff
Cumps