181 lines
6.5 KiB
VB.net
181 lines
6.5 KiB
VB.net
Module Module1
|
|
Structure PERS
|
|
<VBFixedString(8)> Dim Nom As String
|
|
<VBFixedString(6)> Dim Prenom As String
|
|
<VBFixedString(10)> Dim Adresse As String
|
|
<VBFixedString(5)> Dim CP As Integer
|
|
<VBFixedString(15)> Dim Ville As String
|
|
<VBFixedString(5)> Dim Age As Integer REM Stocke la date de naissance en mois (plus facile pour convertir après)
|
|
<VBFixedString(1)> Dim Region As Integer REM Stocke l'index
|
|
<VBFixedArray(16)> Dim Ecrit() As Integer REM index
|
|
<VBFixedArray(16)> Dim Oral() As Integer REM index
|
|
<VBFixedString(2)> Dim Fac As Integer REM Stocke l'index
|
|
End Structure
|
|
Structure Index
|
|
'Dim no As Integer
|
|
Dim nom As String
|
|
Dim prenom As String
|
|
Dim Suppr As Boolean
|
|
End Structure
|
|
Public tme() As String = {"Lancer", "Natation", "Saut", "Allemand", "Anglais", "Astronomie", "Espagnol", "Histoire", "Russe", "Biologie", "Français", "Géographie", "Géologie", "Mathématique", "Philosophie"}
|
|
Public nais As Integer REM en mois. ANS*12 + MOIS
|
|
|
|
Public cddts As PERS REM sert de "Tampon" entre les données entrées dans les feuilles et le fichier.
|
|
Public Tindex() As Index REM Sert pour le bilan des supprimés, et pour générer la liste des candidats valides (sans consulter le fichier).
|
|
|
|
Public Boule As Boolean REM inscription ou édition
|
|
Public Horaire As String REM Sert a stoquer l'heure pour les autres fenetres QUI ONT DES TIMERS.
|
|
|
|
Public nf As Integer REM Numéro de flux.
|
|
Public lgcddts As Integer REM Sert a obtenir la bonne longueur.
|
|
Public ClefMAX As Integer = 1 REM Dernier/Nombre de candidats dans le Fichier.
|
|
Public PosMAX As Integer = 0 REM Dernier/Nombre de candidats dans le tableau de structure.
|
|
REM Pour s'y retrouver entre ClefMAX et PosMAX :
|
|
REM ClefMAX indique le nombre de clefs dans le fichier.
|
|
REM PosMAX indique le nombre de poste dans le tableau d'index.
|
|
REM La relation entre ces deux variables sont PosMAX = ClefMAX - 2. Le premier candidat stocké dans le fichier (clef = 2), il a la position 0 dans le fichier.
|
|
Public IndexFac As Integer REM Retient l'index de l'examen (du tableau) pour l'examen facultatif. L'ancien index retenait la position dans la CboBox, et ne correspondait pas toujours a celui du tableau.
|
|
Public Selectedclef As Integer REM Pour la feuille FrmEdit : elle contient le n° d'inscription choisit donné par l'utilisateur
|
|
|
|
|
|
|
|
Public Sub InscBdD()
|
|
If ClefMAX - 3 >= UBound(Tindex) Then
|
|
ReDim Preserve Tindex(2)
|
|
End If
|
|
|
|
REM Entrée depuis la feuille 1
|
|
cddts.Nom = FrmInput1.TxtNom.Text
|
|
cddts.Prenom = FrmInput1.TxtPrenom.Text
|
|
cddts.Adresse = FrmInput1.TxtAdrss.Text
|
|
cddts.CP = FrmInput1.TxtCP.Text
|
|
cddts.Ville = FrmInput1.TxtVille.Text
|
|
cddts.Age = nais
|
|
'Tindex(ClefMAX - 2).no = ClefMAX
|
|
Tindex(PosMAX).nom = cddts.Nom
|
|
Tindex(PosMAX).prenom = cddts.Prenom
|
|
|
|
REM Entrée depuis la feuille 2
|
|
cddts.Region = FrmInput2.CboRegion.SelectedIndex
|
|
Dim b As CheckBox
|
|
Dim j As Integer = 0
|
|
Dim i As Integer = 0
|
|
For Each b In FrmInput2.GBEcrit.Controls
|
|
If b.Checked Then
|
|
cddts.Ecrit(j) = i + 3
|
|
j += 1
|
|
End If
|
|
If j >= 4 Then Exit For
|
|
i += 1
|
|
Next
|
|
j = 0
|
|
i = 0
|
|
For Each b In FrmInput2.GBOral.Controls
|
|
If b.Checked Then
|
|
cddts.Oral(j) = i
|
|
If j >= 3 Then Exit For
|
|
j += 1
|
|
End If
|
|
i += 1
|
|
Next
|
|
|
|
If FrmInput2.RBYes.Checked Then cddts.Fac = IndexFac
|
|
MsgBox(cddts.Fac)
|
|
|
|
REM Entrée depuis la feuille 3
|
|
Tindex(PosMAX).Suppr = False
|
|
|
|
REM Sauvegarde
|
|
FilePut(nf, cddts, ClefMAX)
|
|
FilePut(nf, cddts.CP = ClefMAX, 1)
|
|
ClefMAX += 1
|
|
PosMAX += 1
|
|
End Sub
|
|
|
|
Public Sub MaJBdD()
|
|
REM EST-IL NECESSAIRE DE FAIRE DES TESTS POUR VOIR DES MODIFICATIONS UTILISATEURS, OU MODIFIER TOUT DE MÊME ?
|
|
REM OUI.
|
|
|
|
REM Entrée depuis la feuille 1
|
|
cddts.Nom = FrmInput1.TxtNom.Text
|
|
cddts.Prenom = FrmInput1.TxtPrenom.Text
|
|
cddts.Adresse = FrmInput1.TxtAdrss.Text
|
|
cddts.CP = FrmInput1.TxtCP.Text
|
|
cddts.Ville = FrmInput1.TxtVille.Text
|
|
cddts.Age = nais
|
|
|
|
REM Entrée depuis la feuille 2
|
|
cddts.Region = FrmInput2.CboRegion.SelectedIndex
|
|
Dim b As CheckBox
|
|
Dim j As Integer = 0
|
|
Dim i As Integer = 0
|
|
For Each b In FrmInput2.GBEcrit.Controls
|
|
If b.Checked Then
|
|
cddts.Ecrit(j) = i + 3
|
|
j += 1
|
|
End If
|
|
If j >= 4 Then Exit For
|
|
i += 1
|
|
Next
|
|
j = 0
|
|
i = 0
|
|
For Each b In FrmInput2.GBOral.Controls
|
|
If b.Checked Then
|
|
cddts.Oral(j) = i
|
|
If j >= 3 Then Exit For
|
|
j += 1
|
|
End If
|
|
i += 1
|
|
Next
|
|
If FrmInput2.RBYes.Checked Then
|
|
cddts.Fac = IndexFac
|
|
End If
|
|
|
|
REM Sauvegarde
|
|
FilePut(nf, cddts, Selectedclef)
|
|
End Sub
|
|
|
|
Public Sub SupprBdD()
|
|
Dim i As Integer = 0
|
|
|
|
REM Entrée depuis la feuille 1
|
|
cddts.Nom = ""
|
|
cddts.Prenom = ""
|
|
cddts.Adresse = ""
|
|
cddts.CP = 0
|
|
cddts.Ville = ""
|
|
cddts.Age = 0
|
|
|
|
REM Entrée depuis la feuille 2
|
|
For i = 0 To UBound(cddts.Ecrit) - 1
|
|
cddts.Ecrit(i) = 0
|
|
Next
|
|
For i = 0 To UBound(cddts.Oral) - 1
|
|
cddts.Oral(i) = 0
|
|
Next
|
|
cddts.Fac = 0
|
|
cddts.Region = 0
|
|
|
|
Tindex(Selectedclef - 2).Suppr = True
|
|
FilePut(nf, cddts, Selectedclef)
|
|
|
|
End Sub
|
|
|
|
Public Sub LectBdD() REM destiné a évoluer
|
|
Dim i As Integer
|
|
For i = 0 To PosMAX - 1 REM UBound(Tindex) -1, car le tableau est déjà alloué, mais ajoute des items vides dans CBNP.
|
|
'MsgBox("i : " & i & vbNewLine & "ClefMax : " & ClefMAX & vbNewLine & "Nom : " & Tindex(i).nom)
|
|
If Tindex(i).Suppr = False Then
|
|
FrmEdit.CBNP.Items.Add(Format(i + 2, "00") & " - " & Tindex(i).nom & " " & Tindex(i).prenom)
|
|
End If
|
|
'FileGet(nf, cddts, i)
|
|
'FrmEdit.CBNP.Items.Add(Format(i + 2, "00") & " - " & cddts.Nom & " " & cddts.Prenom)
|
|
Next i
|
|
End Sub
|
|
|
|
Sub DetectModif()
|
|
|
|
End Sub
|
|
|
|
End Module
|