Calendrier

cs_mymy45 Messages postés 4 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 24 mai 2010 - 23 mai 2010 à 15:01
cs_mymy45 Messages postés 4 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 24 mai 2010 - 24 mai 2010 à 19:03
Bonjour !!!

j'ai un ptit problème présentement je suis entrain d'effectuer un travail pratique à l'école où nous devons monter un calendrier dynamique..... pour cette partie tout est merveilleux.... mais l'autre partie il faut que je sois capable d'aller lire une base de donnée sql mais que j'insère les réservations aux bons endroits.....

exemple j'ai une réservation dans la classe 3 pour l'alcan le 28 mai 2010... il faut que je sois capable de le positionner à la bonne place..... je suis présentement en connecté ...

et le tout est avec un user control

voici le code qu'il y a de fait présentement
j'espère que vous pourrez m'aider



Imports System.Data.SqlClient
Public Class Calendrier

' variables globales
Private _cn As SqlConnection
Private _com As SqlCommand
Private _DR As SqlDataReader
Public cours(,) As Label
Public jj() As String = {"LUN", "MAR", "MER", "JEU", "VEN", "SAM", "DIM"}
Public Jour(6) As Label
Public lblJour(6) As Label
Public Lundi, Dimanche As Date


Private _NbreClasse As Integer = 4
Public Property NbClasse() As Integer
Get
Return _NbreClasse
End Get
Set(ByVal value As Integer)
_NbreClasse = value
End Set
End Property

Public Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CreerCalendrier()
CreerCalendrierPM()
MettreReservation() ' c,est ici que j'ai un bug



End Sub

' création de mes labels pour mon calendrier
Public Sub CreerCalendrier()
ReDim cours(6, _NbreClasse - 1)

Dim Jour As Integer
Dim Classe As Integer
Dim cpt As Integer

For Jour = 0 To 6
For Classe = 0 To _NbreClasse - 1
cours(Jour, Classe) = New Label
cours(Jour, Classe).BorderStyle = Windows.Forms.BorderStyle.Fixed3D
cours(Jour, Classe).TextAlign = ContentAlignment.MiddleCenter
cours(Jour, Classe).Visible = True
cours(Jour, Classe).Width = 91
cours(Jour, Classe).Height = 25
cours(Jour, Classe).Text = cpt
cpt += 1
cours(Jour, Classe).Left = 20 + Jour * 91
cours(Jour, Classe).Top = 150 + Classe * 25 + _
(_NbreClasse * 25)
Me.Controls.Add(cours(Jour, Classe))
Next
Next
CreerEntete()
CreerJour()
End Sub
Private Sub CreerCalendrierPM()
ReDim cours(6, _NbreClasse - 1)
Dim date1 As Date = Today
Dim Jour As Integer
Dim Classe As Integer
Dim cpt As Integer

For Jour = 0 To 6
For Classe = 0 To _NbreClasse - 1
cours(Jour, Classe) = New Label
cours(Jour, Classe).BorderStyle = Windows.Forms.BorderStyle.Fixed3D
cours(Jour, Classe).TextAlign = ContentAlignment.MiddleCenter
cours(Jour, Classe).Visible = True
cours(Jour, Classe).Width = 91
cours(Jour, Classe).Height = 25
cours(Jour, Classe).Text = cpt
cpt += 1
cours(Jour, Classe).Left = 20 + Jour * 91
cours(Jour, Classe).Top = 300 + Classe * 25 + _
(_NbreClasse * 25)
Me.Controls.Add(cours(Jour, Classe))
Next
Next
CreerEntete()
CreerJour()

Lundi = DateAdd(DateInterval.Day, (-1 * Today.DayOfWeek + 1), date1)
Dimanche = DateAdd(DateInterval.Day, (-1 * Today.DayOfWeek + 7), date1)
MettreJour(Lundi, Dimanche)

End Sub
' Créer le titre.... le mois
Private Sub CreerEntete()
lblMois.Text = UCase(Format(Today, "MMMM")) & " " & Today.Year
lblMois.TextAlign = ContentAlignment.MiddleCenter
lblMois.BackColor = Color.Cornsilk
End Sub
' Créer les jours de la semaine
Private Sub CreerJour()
Dim i As Integer
For i = 0 To jj.Length - 1
Jour(i) = New Label
Jour(i).Visible = True
Jour(i).Width = 91
Jour(i).Height = 40
Jour(i).Text = jj(i)
Jour(i).TextAlign = ContentAlignment.MiddleCenter
Jour(i).Left = 96 * i
Jour(i).Top = 150
Jour(i).BorderStyle = Windows.Forms.BorderStyle.Fixed3D
Jour(i).BackColor = Color.BlanchedAlmond
Me.Controls.Add(Jour(i))
Next
End Sub

Private Sub CreerBoutonDeplacement()
' création du bouton de navigation précédent
cmdPrecedent.Text = "<"
cmdPrecedent.TextAlign = ContentAlignment.MiddleCenter
cmdPrecedent.Width = 40
cmdPrecedent.Height = 40
cmdPrecedent.Left = 0
cmdPrecedent.Top = 0
Me.Controls.Add(cmdPrecedent)
' création du bouton de navigation suivant
cmdSuivant.Text = ">"
cmdSuivant.TextAlign = ContentAlignment.MiddleCenter
cmdSuivant.Width = 40
cmdSuivant.Height = 40
cmdSuivant.Left = 390
cmdSuivant.Top = 0
Me.Controls.Add(cmdSuivant)
AddHandler cmdPrecedent.Click, AddressOf SemainePrecedente
AddHandler cmdSuivant.Click, AddressOf SemaineSuivante
End Sub

Private Sub SemainePrecedente(ByVal sender As System.Object, ByVal e As System.EventArgs)
PlacerJour(DateAdd(DateInterval.Day, -7, lblJour(0).Tag), DateAdd(DateInterval.Day, -14, lblJour(0).Tag))
End Sub
Private Sub SemaineSuivante(ByVal sender As System.Object, ByVal e As System.EventArgs)
PlacerJour(DateAdd(DateInterval.Day, 7, lblJour(0).Tag), DateAdd(DateInterval.Day, 14, lblJour(0).Tag))
End Sub

Private Sub PlacerJour(ByVal Lundi As Date, ByVal Dimanche As Date)
lblMois.Text = UCase(Format(Lundi, "MMMM")) & " " & Lundi.Year
Dim Jour As Date = Lundi
For i = 0 To 6
lblJour(i).Text = Jour.Day
lblJour(i).Tag = Jour
Jour = DateAdd(DateInterval.Day, 1, Jour)
Next
' vider classe
End Sub

Private Sub MettreJour(ByVal Lundi As Date, ByVal Dimanche As Date)
lblMois.Text = UCase(Format(Lundi, "MMMM")) & " " & Lundi.Year
Dim cptJour As Integer = 1
Dim Jour As Date = Lundi
' Dim Journee As Integer = DateAdd(DateInterval.Day, -1 * (date1.Day - 1), date1).DayOfWeek
Dim PremierJour As Date = Jour


For i = 0 To 6
lblJour(i) = New Label
lblJour(i).Visible = True
lblJour(i).Width = 91
lblJour(i).Height = 40
lblJour(i).Text = Jour.Day
lblJour(i).Tag = Jour
Jour = DateAdd(DateInterval.Day, 1, Jour)

lblJour(i).TextAlign = ContentAlignment.MiddleCenter
lblJour(i).Left = 96 * i
lblJour(i).Top = 125
lblJour(i).BorderStyle = Windows.Forms.BorderStyle.Fixed3D
lblJour(i).BackColor = Color.BlanchedAlmond
Me.Controls.Add(lblJour(i))
Next


End Sub

Private Sub cmdSuivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSuivant.Click
PlacerJour(DateAdd(DateInterval.Day, 7, lblJour(0).Tag), DateAdd(DateInterval.Day, 14, lblJour(0).Tag))
End Sub

Private Sub cmdPrecedent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrecedent.Click
PlacerJour(DateAdd(DateInterval.Day, -7, lblJour(0).Tag), DateAdd(DateInterval.Day, -14, lblJour(0).Tag))
End Sub



'************************************************************



' variables globales


' propriété des mes variables
Public Property CN() As SqlConnection
Get
Return _cn
End Get
Set(ByVal value As SqlConnection)
value = _cn
End Set
End Property

Public Property COM() As SqlCommand
Get
Return _com
End Get
Set(ByVal value As SqlCommand)
value = _com
End Set
End Property

Public Property DR() As SqlDataReader
Get
Return _DR
End Get
Set(ByVal value As SqlDataReader)
value = _DR
End Set
End Property

' J'effectue ma connexion losque j'instancie .....

Public Sub CreerConnexion()
CN = New SqlConnection
CN.ConnectionString = My.Settings.p54
CN.Open()
End Sub

' Méthode pour ma commandeSQL pour effectuer la requête d'aller chercher les réservations
Public Sub LireReservation()
COM = New SqlCommand
COM.CommandType = CommandType.Text
COM.Connection = CN
COM.CommandText = "SELECT * FROM T_Reservations WHERE res_date BETWEEN @DateDebut AND @DateFin ORDER BY res_date"

' paramètres
COM.Parameters.Add("@DateDebut", SqlDbType.DateTime)
COM.Parameters.Add("@DateFin", SqlDbType.SmallDateTime)
End Sub

Private Sub MettreReservation(ByVal PremierJour As Date, ByVal DernierJour As Date)
' Cette méthode va permettre de lire et de placer les réservations dans
'mon calendrier

Dim Jour, classe As Integer
PremierJour = ' j'ai un peu de misère à continuer mon idée !!! :)


Try
DernierJour = DateAdd(DateInterval.Day, 8 - 1, PremierJour)

COM.Parameters("@DateDebut").Value = PremierJour
COM.Parameters("@DateFin").Value = DernierJour
DR = COM.ExecuteReader

Do While DR.Read
For Jour = 0 To 6
For classe = 0 To NbClasse - 1
cours(Jour, classe) = DR("res_cliens")
Next
Next
Loop

DR.Close()

Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class

2 réponses

CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
24 mai 2010 à 14:01
Salut mymy45,
Je viens d'éditer une source "GESTIONNAIRE DE BASE ADO" ou je connecte tout un tas d'éléments dont une classe qui essai de gerer une base ADO a l'aide d'un Usercontrol (FlexMajor).
C'est très abstrait comme prog mais j'espere que tu y trouvera des idées

Sinon Bonne Prog CGSI3
0
cs_mymy45 Messages postés 4 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 24 mai 2010
24 mai 2010 à 19:03
Merci Beaucoup sa me mets sur une Bonne piste !!!!!
0
Rejoignez-nous