IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Créer un témoin d'alerte en cas de dépassement de date


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 57
    Par défaut Créer un témoin d'alerte en cas de dépassement de date
    Bonjour a tous !
    Est ce que vous pourriez m'aider !! je ne suis pas du métier (frigoriste) et
    j'essaye de faire un témoin a partir picturebox dans le fond passerai du vert au rouge si des dates de la même colonne d'un dgv sont dépassée et un messagebox m'informerai du nombre de jours dépasser ainsi que de l'ID de la ligne ou il y a la date dépassée ?

    Je ne sais pas trop par ou commencer alors pourriez vous m'aider !? s.v.p

    j'ai commencer comme ceci mais j'ai déja une faute ou c'est souligné.. :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub PictureBox1_GotFocus(sender As Object, e As System.EventArgs) Handles PictureBox1.GotFocus
    
            Dim dd1 As Date ' Ma date  de saisie
            Dim dd2 As String ' Mon calcul de date
    
    
            dd1 = Me.DelaisDésiréDateTimePicker.Text
    
    dd2 = Date - dd1
            If dd2 >= 20 Then
    
    
    
            End If
        End Sub

  2. #2
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Août 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Août 2012
    Messages : 17
    Par défaut
    Essaie avec les fonctions de date:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim dd1 as date = DateFacture 'Date de la Facture
    Dim dd2 as Date 
    Dim Délai as integer=20
    Dim Echéance as Date
    Echéance=dateadd("d",20,dd1)
     
    if datediff("d",Echéance,FormatDateTime(DateTime.Now, DateFormat.ShortDate))>0 then
     
        '.....du code
        '......ducode
     
    end if

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 57
    Par défaut
    Je re précise je ne suis pas très doué.. Alors si je comprend bien
    à la place de DateFacture je dois mettre le nom de mon DGV et le nom de ma colonne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Dim dd1 as date = DateFacture 'Date de la Facture
    Sinon j'ai essayé ça mais ça me donne plein d'erreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub PictureBox1_GotFocus(sender As Object, e As System.EventArgs) Handles PictureBox1.GotFocus
    
     Dim dd1 As Date = StatusInterventionsDataGridView.DelaisDésiré
            Dim dd2 As Date
            Dim Délai As Integer = 20
            Dim Echéance As Date
            Echéance = DateAdd("d", 20, dd1)
    
            If DateDiff("d", Echéance, FormatDateTime(DateTime.Now, DateFormat.ShortDate)) > 0 Then
                Me.PictureBox1.BackColor = RGB(34, 177, 76)
                Délai = MsgBox(Délai - 20 & " jours", vbOKOnly + vbExclamation, " Délai dépassé ....")
                Me.PictureBox1.BackColor = RGB(255, 0, 0)
            End If
        End Sub
    Images attachées Images attachées   

  4. #4
    Membre très actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Par défaut
    Bonjour Youpsy.

    Le code RGB utilisé en Vb6 n'existe plus en Vb.net. Il est remplacé par le code ARGB, sur 32 bits. Mais attention à la syntaxe. Il faudrait remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.PictureBox1.BackColor = RGB(34, 177, 76)
    Me.PictureBox1.BackColor = RGB(255, 0, 0)
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.PictureBox1.BackColor = Color.FromArgb(255, 34, 177, 76)
    Me.PictureBox1.BackColor = Color.FromArgb(255, 255, 0, 0)
    Le "A" qui précède le "r" (pour red), le "g" (pour green), et le "b" (pour blue), est relatif à ce qu'on appelle le canal alpha, et qui indique la transparence de la couleur. Celle-ci est totalement transparente pour A = 0, et totalement opaque pour A = 255.
    D'une manière générale, vous auriez intérêt à consulter les classes Date et Color dans l'explorateur d'objet.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 57
    Par défaut
    Merci pour l'info !!

    Les erreurs ont été parfaitement corrigée pour la coloration !

    Et est ce que qqun pourrai m'aider pour la première erreur !

    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Private Sub PictureBox1_GotFocus(sender As Object, e As System.EventArgs) Handles PictureBox1.GotFocus
    
            Dim dd1 As Date = StatusInterventionsDataGridView.DelaisDésiré

  6. #6
    Membre très actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Par défaut
    Bonjour.

    Le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim dd1 As Date = StatusInterventionsDataGridView.DelaisDésiré
    exige que ce qui est à droite du signe =

    StatusInterventionsDataGridView.DelaisDésiré
    soit du type Date. Avez vous vérifié cela ? Et comprenez vous le sens de ma question ? Si ce n'est pas le cas, je vous conseille d'étudier le document de Philippe Lasserre disponible sur le présent site.

    Bon courage.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 57
    Par défaut
    Alors j'ai verifier

    dans ma table mon élément DelaisDésiré est de type datetime

  8. #8
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour Youpsy

    Quoique nous ignorons tout de ta date alerte(calcul,datetimepicker, ou d'internet peu importe).

    Le probleme se resume à comparer 2 dates et voir si la difference est superieure au delai butoir.....
    voici un code qui cheque les dates saisies et verifie si elles sont superieures à date "alerte'..
    date "alerte" est fixe par un datetimepicker..
    Dans ce cas il verifie si la difference est superieure au delai en jours arrete par tes soins(exemple 20 jours) et execute ton action.....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    'ajoute sur le form
    '-un datagridview
    '-un picbox
    '-un textbox
    '-un button
    Public Class Form2
        'Un class exemple
        Private myIntevention As Intervention
        'un list d'exemple binde au datagridview (mais ca peut etre un datatable)
        Private ListInteventions As List(Of Intervention)
     
     
        Dim dateSaisie As Date = Nothing
        Dim dateAlert As Date = Nothing
        Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            'setup format data in datetimepicker
            Me.DateTimePickerUser.Format = DateTimePickerFormat.Short
     
     
            'populate liste exemple
            ListInteventions = New List(Of Intervention)()
            Dim startDate As DateTime = DateTime.Now.ToShortDateString
            myIntevention = New Intervention
            myIntevention.DelaisDesire = startDate
            ListInteventions.Add(myIntevention)
            For i = 1 To 4
                startDate = startDate.AddMonths(i)
                myIntevention = New Intervention
                myIntevention.IDName = "Item" & i.ToString
                myIntevention.DelaisDesire = startDate.ToShortDateString
                ListInteventions.Add(myIntevention)
     
            Next
            Me.DataGridView1.DataSource = ListInteventions
     
        End Sub
        Private Sub buttonCheckDates_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonCheckDates.Click
            CheckDates()
        End Sub
        'check colonne date saise
        Private Sub CheckDates()
            If dateAlert = Nothing Then Return
     
     
            'verification du delai
            Dim dateSaisie As Date
            'idname concerne
            Dim currentID As String
            'intervalle de temps systeme(jpurs,mois,secondes ou ce que tu veux)
            Dim diff As TimeSpan = New TimeSpan
     
            'ton delai exprime mettons en jours 
            Dim DelaiEnJour As Integer = 20
     
            'recherche des colonnes à probleme
            For Each dgvRow As DataGridViewRow In Me.DataGridView1.Rows
     
                currentID = dgvRow.Cells(0).Value
                dateSaisie = CType(dgvRow.Cells(1).Value, DateTime).ToShortDateString
     
     
                If dateSaisie > dateAlert Then
                    diff = dateSaisie - dateAlert
     
                    'diff.Days convertit diff dans tes unites:les jours 
                    If (diff.Days > DelaiEnJour) Then
                        Me.PictureBox1.BackColor = Color.FromArgb(34, 177, 76)
                        MsgBox(diff.Days.ToString & " jours" & " ID : " & currentID, vbOKOnly + vbExclamation, " Délai dépassé ....")
                        Me.PictureBox1.BackColor = Color.FromArgb(255, 0, 0)
                        Me.PictureBox1.Focus()
                    End If
                End If
     
            Next
     
        End Sub
        'DateTimePickerChooseAlert :permet de choisir une date alerte
        Private Sub DateTimePickerChooseAlert_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePickerChooseAlert.ValueChanged
            'affiche date alert
            Me.TextBoxDateAlarm.ForeColor = Color.Red
            Me.TextBoxDateAlarm.Text = Me.DateTimePickerChooseAlert.Value.ToShortDateString
            'choisit une date alerte
            dateAlert = Me.DateTimePickerChooseAlert.Value.ToShortDateString
        End Sub
     
     
     
    End Class
    bon code....

  9. #9
    Membre très actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Par défaut
    Cela semble prouver que pour utiliser un contrôle DataGridWiew, il faut utiliser non pas la classe Date, mais plutôt la classe DateTime.

    Essayez donc cela.

    Cordialement.

Discussions similaires

  1. Réponses: 8
    Dernier message: 31/10/2012, 18h20
  2. Créer un message d'alerte sur résultat de requête
    Par curt dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 28/02/2008, 11h56
  3. [Java] Quel solution pour créer un fichier XML dans mon cas?
    Par petozak dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 23/08/2006, 13h10
  4. Créer un message d'alerte avec comme solution oui ou non
    Par La_Bande_A_Zozo dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/05/2006, 15h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo