none
Besoin d'information au sujet de Visual Basic et excel 2003 à 2010 - II RRS feed

Toutes les réponses

  • Oui le we à été bon pour moi également, merci :)

    donc j'ai peur de ne pas comprendre ou de m'être mal expliqué, je vais donc faire une capture avec explication qui concernera uniquement l'ajout suppression d'intervenants.

    Donc, comme vous l'avez deviné, dans la parti "ajouter le nom et prenom de l'intervenant", ou là on ajoutera les valeurs dans la table, idem pour les mails, cependant j'ai mis une ListBox pour avoir une vue en lecture seul de la table mais si une DataGridView est plus adaptée alors je changerais.

    Mais j'ai du mal à interpréter le liens que vous m'avez envoyé,

    Cordialement,

    christian

    lundi 27 janvier 2014 08:47
  • A priori on parle de choses différentes.

    Donc dans cet écran vous parles de la saisie des intervenants.

    La première chose: supprimez le ListView et le remplacez avec un DataGridView.

    Ce dataGridView sera blindée à la table des intervenants.

    La colonne Intervenant_Id sera cachée.

    Apres, vous devez binder les deux propriétés :

    txtNom.DataBindings.Add("Text", DataTableIntervenants, "Nom");

    txtEmail.DataBindings.Add("Text", DataTableIntervenants, "Email");

    Nom = colonne qui contiens le nom.

    Email = colonne qui contiens l’email.

    Je vous propose ce code:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load TextBox1.DataBindings.Add("Text", DataSet1.Intervenants, "Nom") TextBox2.DataBindings.Add("Text", DataSet1.Intervenants, "Email") 'For i As Integer = 0 To 9 ' ListBox1.Items.Add("Item " + (i + 1).ToString) ' Next End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim dr As DataRow = DataSet1.Intervenants.NewRow DataSet1.Intervenants.AddIntervenantsRow(dr) 'ajout ligne End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    'suppression

    If DataGridView1.SelectedRows.Count = 1 Then Dim ir As DataGridViewRow = DataGridView1.SelectedRows(0) DataSet1.Intervenants.RemoveIntervenantsRow(DataSet1.Intervenants.FindByIntervenant_Id(ir.Cells(0).Value)) End If End Sub


    le plus probable vous devez changer quelques noms, des champs ou propriétés.
    Le DataGridView sera en ReadOnly, mode de sélection ligne
    Le ajout/suppression et modifs se font en mémoire.
    Pour les enregistrer vous devez faire un tableAdapter.Update (DataTable)

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 09:36
  • Surement une mauvaise appelation dans le label de ma part, lorsque je dis "Saisir le nom de l'intervenant", en fait ça représente le nom à ajouter dans la table...

    Je changerais ce terme...

    Merci pour le code, je tape ça de suite... (pas de copier/coller, on apprend rien avec ça) :)

    Cordialement

    lundi 27 janvier 2014 09:47
  • Vous dites :

    A priori on parle de choses différentes.

    Oui, mais c'est peut être de ma faute, j'ai tendance à mélanger un peux les choses... mais ça va changer, je vais faire étape par étape, et changer mon organisation de travail ;) , je pense que ce sera plus facile pour vous.

    Cordialement,

    Chris

    lundi 27 janvier 2014 09:53
  •  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TextBox1.DataBindings.Add("Text", DataSet1.Intervenants, "Nom")
            TextBox2.DataBindings.Add("Text", DataSet1.Intervenants, "Email")
            'For i As Integer = 0 To 9
            ' ListBox1.Items.Add("Item " + (i + 1).ToString)
    
            '        Next
        End Sub

    Pour le DataSet1, il faut que je mette DataSet.INTERVENANTS, car DataSet1 n'est pas déclaré ?

    Cordialement,

    lundi 27 janvier 2014 10:20
  • Si vous avez fait bien le bindage, sera DataSet1.  

    DataSet c'est un type.

    Normalement la definition c'est

    Dim DataSet1 as DataSet.

    Donc vous devez utilizer l'instance objet  (DataSet1) et pas le type (DataSet).

    Voir l'image:

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 10:29
  • C'est donc surement ce que je n'ai pas fais, mais c'est pas facile quand on apprend, au moment ou j'ecrit ce post, je cherche comment binder les propriétés...

    Dur dur !! je cherche même un lexique des termes employé car ça aussi, aie aie aie

    c'est quand même bonne école tout ça :)

    Cordialement,

    lundi 27 janvier 2014 10:42
  • Si vous sélectez le DataGridView  en haut gauche vous avez un petit triangle. Cliquez sur celui-ci, et vous avez la possibilité de sélecter une source de données (binding en anglais). Ici vous devez sélecter votre DataTable, ou créer une nouvelle source.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 10:50
  • On a séparé le thread en deux pour pouvoir suivre les choses plus facile.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 10:53
  • On a séparé le thread en deux pour pouvoir suivre les choses plus facile.

    J'avourais que j'ai eu une petite peur...

    Donc voici une capture d'écran de ce que j'ai :

    Donc pour moi ce sera RapHebdoDataSet ?

    lundi 27 janvier 2014 10:59
  • Exactement!


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 11:02
  • Re,

    J'ai comme un petit soucis :

    Si je comprend bien... c'est l'auto-increment ?

    Cordialement

    lundi 27 janvier 2014 12:36
  • Bon c'était ça :), hé hé...

    Par contre, lorsque je lance l'application, que je fais:

    OPTIONS>>AJOUTER UN INTERVENANT, ma fenêtre s'ouvre, je rentre les informations, mais il ne me met rien  a part l'id_intervenant qui commence par -1,

    Est ce normal ?

    Cordialement

    lundi 27 janvier 2014 12:51
  • Voici le code placé sur le "Button1"

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim dr As DataRow = RaphebdoDataSet.INTERVENANTS.NewRow
            RaphebdoDataSet.INTERVENANTS.AddINTERVENANTSRow(dr)
            INTERVENANTSTableAdapter.Update(Me.RaphebdoDataSet.INTERVENANTS)
            'Ajout ligne
        End Sub

    Cordialement,

    lundi 27 janvier 2014 13:18
  • Oui, c'était l'auto-incrément.
    Comme ça, vous ajoutez une ligne avec les champs vides.
    Vous devez aussi l'enregistrer après les modifier les valeurs dans les textbox, donc un autre
    INTERVENANTSTableAdapter.Update(Me.RaphebdoDataSet.INTERVENANTS).
    Le dataSet c’est une image de la BD en mémoire. D’habitude on  préfère de faire les modifications en mémoire et enregistrer à la fin (ou rejeter les modifications).
    Donc, ma suggestion c’est de remplacer le  bouton modifier avec Enregistrer qui fait INTERVENANTSTableAdapter.Update(Me.RaphebdoDataSet.INTERVENANTS).
    Les modifications sur une ligne vous pouvez les faire sans button, les valeurs sont mises automatique dans les TextBox.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 13:32
  • Donc en faite il faut un bouton "Ajouter" et un bouton "enregistrer les modification" par exemple ?

    Cordialement

    lundi 27 janvier 2014 13:41
  • Et un pour la suppression si c'est le cas.

     


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 13:46
  • ok ok, et lorsque l'on fait la suppression, il faudra aussi enregistrer ? (la réponse est certainement logique) mais lorsque je ferais le manuel d'utilisation il faudra que je précise...

    Cordialement,

    lundi 27 janvier 2014 13:51
  • Oui.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 13:53
  • Donc je viens de remettre tout ça en forme, que voici :

    Par contre la suppression ne fonctionne pas et je n'est pas les intervenant après ajout, je vous met les codes :

    Public Class ajout_inter
    
        Private Sub ajout_inter_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'RaphebdoDataSet.INTERVENANTS'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.INTERVENANTSTableAdapter.Fill(Me.RaphebdoDataSet.INTERVENANTS)
            TextBox1.DataBindings.Add("Text", RaphebdoDataSet.INTERVENANTS, "NomPrénom")
            TextBox2.DataBindings.Add("Text", RaphebdoDataSet.INTERVENANTS, "Mail")
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim dr As DataRow = RaphebdoDataSet.INTERVENANTS.NewRow
            RaphebdoDataSet.INTERVENANTS.AddINTERVENANTSRow(dr)
    
            'Ajout ligne
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            If DataGridView1.SelectedRows.Count = 1 Then
                Dim ir As DataGridViewRow = DataGridView1.SelectedRows(0)
                RaphebdoDataSet.INTERVENANTS.RemoveINTERVENANTSRow(RaphebdoDataSet.INTERVENANTS.FindByid_intervenants(ir.Cells(0).Value))
    
            End If
    
        End Sub
    
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            INTERVENANTSTableAdapter.Update(Me.RaphebdoDataSet.INTERVENANTS)
        End Sub
    
        Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
            Me.Close()
        End Sub
    End Class

    J'ai du faire une erreur lors de la recopie, ou il y a une chose que je n'ai pas assimilé,

    cordialement

    lundi 27 janvier 2014 14:20
  • Pour la suppression vous devez sélecter une ligne dans le dataGridView (Dans les propriétés du DataGridView, vous devez mettre SelectionMode à FullRowSelect).

    Aussi, je dirais que c'est le cas de commencer à utiliser le Debugger.

    http://msdn.microsoft.com/fr-fr/library/awtaffxb.aspx

    Vous pouvez vérifier si vous avez quelque chose dans la BD après enregistrer?

    Aussi vouis devez ajouter un

    Me.RaphebdoDataSet.INTERVENANTS.AcceptChanges()

    après

    INTERVENANTSTableAdapter.Update(Me.RaphebdoDataSet.INTERVENANTS)

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 14:44
  • Ok pour le debugger, mais je n'est pas d'erreur dans le code, sinon oui le debugger est très utile :)

    Cordialement

    lundi 27 janvier 2014 14:54
  • Vous pouvez vérifier si vous avez quelque chose dans la BD après enregistrer?

    Je suis allé voir dans la BD et a part un incrément, je n'ai rien d'autre,

    Le debugger ne signal rien de particulié, aussi j'ai ajouter la ligne que vous m'avez mis pour l'enregistrement et je ne parviens toujours pas à supprimer.

    Bizarre,

    Cordialement

    lundi 27 janvier 2014 15:02
  • Je viens de remonter le post, et, peut être ai-je omis quelque chose :

    J'aurais du faire quelque chose ici ou c'était un exemple puis vous m'avez fournis le code ensuite ?

    Apres, vous devez binder les deux propriétés :

    txtNom.DataBindings.Add("Text", DataTableIntervenants, "Nom");

    txtEmail.DataBindings.Add("Text", DataTableIntervenants, "Email");

    Nom = colonne qui contiens le nom.

    Email = colonne qui contiens l’email.

    cordialement

    lundi 27 janvier 2014 15:21
  • On doit ajouter AllowUserAddRow  = False.

    Et modifier le code comme ca:

    Public Class Form1
    
        Dim myCurrencyManager As CurrencyManager
    .....................................
            TextBox1.DataBindings.Add("Text", IntervenantsBindingSource, "Nom")
            TextBox2.DataBindings.Add("Text", IntervenantsBindingSource, "Email")
            myCurrencyManager = CType(Me.BindingContext(DataGridView1.DataSource), CurrencyManager)
    
    
    'et function ajout
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            Dim dr As DataRow = DataSet1.Intervenants.NewRow
            DataSet1.Intervenants.AddIntervenantsRow(dr)
            myCurrencyManager.Position = myCurrencyManager.Count - 1
    
        End Sub

    Donc après ajouter une ligne vide, vous la sélectez, et modifies les valeurs dans les deux champs de type texte.
    Ces deux champs contiennent les valeurs pour la ligne sélectionnée dans le DataGridView.

    Cordialement, 


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 27 janvier 2014 15:38
  • Je viens de comprendre le fonctionnement, en fais c'est différent de ce que je pensais mais c'est pas grave c'est bien quand même, mais je vous explique ce que je faisais :

    En premier je rentrais le nom et le prenom, ensuite le mail puis je cliquais sur "ajouter", et ça ne fonctionnait pas, maintenant j'ai compris :

    on ajoute une ligne, on entre les valeur puis on enregistre,

    mes excuses pour cette incompréhension (ça doit être pénible et je vous comprend)

    cordialement

    lundi 27 janvier 2014 16:07
  • parcontre je n'ai plus la vue pour les supprimer,

    je suis sur le point de débaucher, je reprendrais chez moi,

    Merci et bonne soirée

    Cordialement

    lundi 27 janvier 2014 16:12
  • Bonjour Aurel,

    Donc pour détailler un peu mon soucis, bon, le DataGridView fonctionne (quand je fais les chose correctement finalement :) ) , cependant reste un petit hic :

    pour l'ajout d'un intervenant c'est OK même quand on enregistre, le problème n'est pas ici, il est que si après enregistrement je ferme la fenêtre, puis je la ré-ouvre, je n'ai plus la vue sur les intervenant, je ne peux donc pas en supprimer... j'ai regardé dans les propriétés mais n'est pas trouvé la solution.

    J'ai cependant trouvé pour modifier l'apparence des colonnes du DataGridView, ça c'est nickel ;)

    Cordialement,

    chris


    • Modifié CHRIS86260 mardi 28 janvier 2014 07:52 faute d'othographe
    mardi 28 janvier 2014 07:51
  • Re Bonjour

    N'est pas très clair le comportement. Les lignes ajoutées sont dans le DataGridView après enregistrement et redémarrage?

    Pour suppression vous devez sélecter une ligne dans le DataGridView.

    Cordialement,



    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    mardi 28 janvier 2014 07:59
  • Je vous post les captures en fonction des étapes pour une meilleur compréhension...

    1/ ajout de ligne puis ajout intervenant :

    2/ Fermeture de la fenêtre après ajout puis réouverture :

    Comme vous pouvez le constater, on ne voit plus les intervenants,

    Cordialement

    mardi 28 janvier 2014 08:06
  • Pouvez-vous verifier dans la BD s'ils existe?

    Dans Form_Load vous avez toujours:

    Me.INTERVENANTSTableAdapter.Fill(Me.RaphebdoDataSet.INTERVENANTS)?

    Cordialement


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 08:12
  • Effectivement, il me manquait cette ligne, j'ai du la supprimer en modifiant le code, si on essaye de la mettre en francais cette ligne, que signifie t'elle (pour que je comprenne ce que je fais quand même ;)

    Petite question (pour savoir si je n'ai pas fais d'erreur car la suppression ne fonctionne pas et n'as pas de bug :

    les deux lignes que vous m'aviez mis plus haut :

    txtNom.DataBindings.Add("Text", DataTableIntervenants, "Nom");

    txtEmail.DataBindings.Add("Text", DataTableIntervenants, "Email");

    ce sont des requête SQL ? les point virgule à la fin de ces ligne m'alerte et me pousse a me poser cette question : serais ce pour ça que je ne peux pas supprimer

    Cordialement

    mardi 28 janvier 2014 08:24
  • Le ";" viens d'un projet de teste en C#. J'ai oubliée qu'on est dans VB.NET. Vous pouvez le supprimer.
    Les deux lignes ne sont pas des requêtes SQL.
    Ils font apparaitre dans les deux TextBox les valeurs qui se trouvent dans le DataGridView sur la ligne sélectée.

    Pour la suppression, dans la fonction de Suppression ajoutez un

    MessageBox.Show ("Lignes avec selection " +  DataGridView1.SelectedRows.Count.ToString())

    Quel numéro affiche?

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    mardi 28 janvier 2014 08:39
  • Ligne avec selection 1, mais elle ne se supprime pas...grrr ;)

    mardi 28 janvier 2014 08:54
  • En effet ce n'est pas une ligne proprement dite, mais une ligne qui permet l'ajout dans certains cas.
    Essayez de mettre dans les propriétés de votre DataGridView AllowUserToAddRows = false.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 09:00
  • Rien ne change, la ligne ne se supprime pas... c'est bizarre cette histoire

    Cordialement

    mardi 28 janvier 2014 09:09
  • Quand vous ouvrez la forme la ligne est la?


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 09:17
  • oui la ligne est là ,

    DataGridView AllowUserToAddRows = false >> ligne présente (2 lignes)

    DataGridView AllowUserToAddRows = True >> ligne présente également (3 ligne)


    mardi 28 janvier 2014 09:20
  • Essayez toujours dans le DataGRidView ReadOnly  = True.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 09:22
  • C'est le même résultat,le problème ne viendrait-il pas du code servant à enregistrer:

      Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            INTERVENANTSTableAdapter.Update(Me.RaphebdoDataSet.INTERVENANTS)
            Me.RaphebdoDataSet.INTERVENANTS.AcceptChanges()
        End Sub

    cordialement

    mardi 28 janvier 2014 09:30
  • C'est le même résultat,le problème ne viendrait-il pas du code servant à enregistrer:

      Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            INTERVENANTSTableAdapter.Update(Me.RaphebdoDataSet.INTERVENANTS)
            Me.RaphebdoDataSet.INTERVENANTS.AcceptChanges()
        End Sub

    cordialement


    Je cherche aussi, mais avec moins de compétences ;)
    mardi 28 janvier 2014 09:31
  • Non, n'est pas ça.
    Dans la BD vous avez des lignes?
    Essayez de les supprimer pour voir le comportement.
    Essayez d’affiler la colonne Intervenant_Id pour voir l’Id de cette ligne.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 09:37
  • Oui j'ai bien les ligne dans la BD

    Je les ai supprimer de la BD, elle n'apparaissent donc plus dans le DataGridView,

    les id etaient 2 pour l'intervenant enregistrer et 3 pour une ligne vide,

    mardi 28 janvier 2014 09:42
  • Mais on doit toujours tester que la fonction de suppression fonctionne bien.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 09:53
  • oui c'est ce que je fais mais aucun resultat...

    voici comment je procède :

    je selectionne la ligne concerné puis clique sur le bouton "supprimer", visuellement elle se supprime, alors ensuite je clique sur enregistrer.

    je ferme la fenêtre puis je la ré-ouvre, et la rien n'est supprimer

    Voulez vous des capture de toutes ces étapes ?

    mardi 28 janvier 2014 10:08
  • Quel est le type de données dans la Bd pour NomPrenom et Email? Char ou VarChar?
    Si c'est char essayez de le transformer en Varchar.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 10:11
  • Le type de donnée est varchar(MAX), pourquoi, ça a une incidence sur la suppression ?

    Cordialement

    mardi 28 janvier 2014 10:15
  • Ça peut avoir si c’est char, il met des espaces à la fin, mais ce n’est pas le cas.
    Pouvez-vous vérifier dans le TableAdapter la requête pour Delete et le type des paramètres (sélectez le DataAdapter, et dans les propriétés vous avez DeleteCommad).

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 10:25
  • Voici une capture, mais je n'ai pas la propriété DeleteCommand,

    Cordialement

    mardi 28 janvier 2014 10:32
  • Dans le concepteur de DataSet vous devez clicker  sur le TableAdapter et voir les commandes.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 10:47
  • j'ai trouver, j'étais pas au bon endroit... désolé

    effectivement dans les propriété j'ai bien DeleteCommand

    mardi 28 janvier 2014 10:47
  • Développez avec le petit + a cote de DeleteCommand.
    Faites un copier-coller pour la commande et assurez-vous que le type des paramètres c'est VarChar en place de Char.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 10:51
  • copier/coller de la commande

    DELETE FROM [dbo].[INTERVENANTS] WHERE (([id_intervenants] = @Original_id_intervenants))

    J'ai pas tout compris pour type des paramètres :

    Je sais que toutes mes tables sont en types varchar(MAX) mais est ce la question ?

    mardi 28 janvier 2014 10:57
  • Je sais que au debout c'était CHAR.
    Je pensée qu'ils ont reste CHAR dans le DataSet. Si par exemple on a valCh de type CHAR(3) et varValCh de type VarChar(3) et on met "OK" dans les deux, valCh sera différente de que pour la valeur valCh il ajoute un espace à la fin. Mais n'est pas le cas.
    On doit essayer autre chose :
    Modifie la fonction de sélection (il doit afficher l’Id de la ligne à supprimer) :

    If DataGridView1.SelectedRows.Count = 1 Then
                Dim ir As DataGridViewRow = DataGridView1.SelectedRows(0)
    
                MessageBox.Show(ir.Cells(0).Value)
                DataSet1.Intervenants.RemoveIntervenantsRow(DataSet1.Intervenants.FindByIntervenant_Id(ir.Cells(0).Value))
    
    
            End If
     



    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 11:06
  • Bon, on va aller manger ;)

    Bon appétit à vous,

    Cordialement

    mardi 28 janvier 2014 11:06
  • j'essaye de suite avant d'aller manger ;)
    mardi 28 janvier 2014 11:07
  • Oui effectivement, donc j'ai refait un essai, et il m'affiche bien la ligne a supprimer

    cordialement

    mardi 28 janvier 2014 12:31
  • Pouvez-vous nous montrer le code pour la procédure de suppression et d’enregistrement?

    Avez-vous un On Error ........?

    Merci!


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 12:46
  • code pour la suppression:

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            If DataGridView1.SelectedRows.Count = 1 Then
                Dim ir As DataGridViewRow = DataGridView1.SelectedRows(0)
                MessageBox.Show(ir.Cells(0).Value)
                RaphebdoDataSet.INTERVENANTS.RemoveINTERVENANTSRow(RaphebdoDataSet.INTERVENANTS.FindByid_intervenants(ir.Cells(0).Value))
            End If
        End Sub

    code pour l'enregistrement:

     Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            INTERVENANTSTableAdapter.Update(Me.RaphebdoDataSet.INTERVENANTS)
            Me.RaphebdoDataSet.INTERVENANTS.AcceptChanges()
        End Sub

    Il n'y a pas de On Error...

    Cordialement

    mardi 28 janvier 2014 12:51
  • J'ai trouvé ça sur internet :

    Dim drv As DataRowView = CType(dataGridView1.CurrentRow.DataBoundItem, DataRowView)
    drv.Row.Delete()

    c'est pour supprimer un ligne dans un DataGridView lié à une BDD

    cordialement

    mardi 28 janvier 2014 12:57
  • Dans la fonction de suppression ajoutez un
    MessageBox.Show(DataSet1.Intervenants.Rows.Count)
    Avant la suppression et un après la suppression.
    J'aimerai voir si le nombre des lignes décroît.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 13:01
  • La solution trouvée par vous peut aussi fonctionner.
    Vous pouvez l'essayer.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 13:05
  • vous:J'aimerai voir si le nombre des lignes décroît.

    Oui le nombre décroit,

    je vais essyer la ligne de code et vous tient au courant

    Cordialement,

    mardi 28 janvier 2014 13:11
  • dois je le codé ainsi :

    original modifié

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            If DataGridView1.SelectedRows.Count = 1 Then
                Dim ir As DataGridViewRow = CType(DataGridView1.CurrentRow.DataBoundItem, DataRowView)
                MessageBox.Show(RaphebdoDataSet.INTERVENANTS.Rows.Count)
                RaphebdoDataSet.INTERVENANTS.RemoveINTERVENANTSRow(RaphebdoDataSet.INTERVENANTS.FindByid_intervenants(ir.Cells(0).Value))
                MessageBox.Show(RaphebdoDataSet.INTERVENANTS.Rows.Count)
            End If
        End Sub

    la syntaxe est elle bonne ?

    cordialement

    mardi 28 janvier 2014 13:16
  • ça fonctionne avec ce code...
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            If DataGridView1.SelectedRows.Count = 1 Then
                Dim ir As DataRowView = CType(DataGridView1.CurrentRow.DataBoundItem, DataRowView)
                MessageBox.Show(RaphebdoDataSet.INTERVENANTS.Rows.Count)
                ir.Row.Delete()
                'RaphebdoDataSet.INTERVENANTS.RemoveINTERVENANTSRow(RaphebdoDataSet.INTERVENANTS.FindByid_intervenants(ir.Cells(0).Value))
                MessageBox.Show(RaphebdoDataSet.INTERVENANTS.Rows.Count)
            End If
        End Sub
    mardi 28 janvier 2014 13:30
  • Plus qu'à faire la même chose pour l'ajout des sites... quelque modifs mais c'est bon je serais le faire car finalement a part le dataset qui change...

    Mais c'est cool, ça fonctionne... pas mal pour un débutant (accompagné par vous bien sure ;) )

    cordialement,

    mardi 28 janvier 2014 13:35
  • Donc pour la parti "ajout/suppression" c'est fini ;)

    maintenant je crois que le plus dur va arrivé car j'ai plein de question au niveau de la structure de la BD,

    enfin plein.... pas trop quand même...

    Cordialement

    mardi 28 janvier 2014 13:43
  • Je suis en train de réfléchir à l'USF pour rédiger les rapports, et je pense qu'il manque des éléments dans la BD, je m'explique :

    comme le montre la capture d'écran du rapport hebdomadaire, il y a 3 sections (la troisième ne fera pas parti de l'application)

    la section 1 il y a le nom de l'intervenant et la semaine concernée

    la section 2 est assez complexe, et la la table DCHANTIERS, je pense, devrait contenir tous les éléments de cette section, comme ceci :

    chantier;section;LUN;MAR;MER.JEU;VEN;SAM;DIM;H_dep;H_arr;NB_heure;NB_acces;TRX_pen;PRIM_post;NBH_nuit;DIVERS;observation

    qu'en pensez-vous ?

    Je disais ça car mon USF sera basé là-dessus

    Cordialement

    mardi 28 janvier 2014 14:34
  • La table D_CHANTIER doit avoir des champs pour les liens (clef secondaires) avec les autres tables.
    Je vois Chantier, mais pas GroupId pour le lier avec la table intervenants, et pas numéro de la semaine.
    Pour les 2 sections (1 et 2) on aura une seule table. Je ne vois un raison pour ne pas faire ça.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 14:44
  • Auriez-vous un exemple car j’avouerais ne pas tout comprendre, (sans vouloir abuser de votre aide),

    Cordialement

    mardi 28 janvier 2014 14:48
  • il y a le GroupId dans la table DCHANTIERS, mais pour la semaine je n'ai pas compris le concept

    Cordialement

    mardi 28 janvier 2014 14:51
  • C'est Num_semanine et sera le numéro de la semaine dans l'année. Sera une sélection dans un ComboBox ou liste.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 15:04
  • Donc je créé une table Num_semaine et dedans je rentre les numéro de semaine de 1 à 52 ?

    Question bête je sais, ça me connais ce genre de question ;)

    cordialement

    mardi 28 janvier 2014 15:08
  • On n'a pas vraiment besoin d'une autre table. Vous avez un champ appelé Num_semaine dans la table D_CHANTIERS. Ici vous mettez le numéro de la semaine dans l'année.

    On aura besoin de un autre champ pour maintenir aussi l'année pour.

    L'info trouve dans ce table sera quelque chose de type:

    Dans l'année AAAA, semaine 54, l'équipe XXX a été déplacée sur le chantier YYY et a travaillé lundi A heures, mardi B heures, etc..., avec tells heures supplémentaires, etc....

    Ici vous avez tous les infos pour votre rapport.

    Ici vous avez un exemple de calcul de la première date à partir de numéro de la semaine et année  en c#:

    http://social.msdn.microsoft.com/Forums/en-US/790e1c15-7002-47e1-a53f-4241cf4af615/how-to-get-first-and-last-date-of-provided-week

    Et ici  c’est un outil de conversion de C# vers VB.NET :

    http://www.developerfusion.com/tools/convert/csharp-to-vb/


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 15:26
  • C'est justement ce que je voulais aborder avec vous concernant les equipes, nous ne fonctionnons pas par equipe, c'est pour ça que je ne comprenais pas le concept du GroupId, les rapports, que ce soit en tant que redaction ou edition, ils sont individuel, c'est a dire tel personne a travaillé sur tel chantier de tel n° de section telle semaine et a fait les heures suivante lun A heure mar B heure, a eu X acces en ZC, a eu X heure en ZC, a X heure de nuit et les divers par jours

    Cordialement



    mardi 28 janvier 2014 15:35
  • Le plus probable j’ai mal compris quelque chose. Vous parlez d’un nombre d’intervenants même dans le premier poste.  Donc si vous avez 10 intervenants dans une semaine, vous formez une équipe et vous avez une seule ligne dans D_CHANTIER.

    L’autre option c’est d’avoir 10 fois la même ligne  pour chaque Intervenant_Id.

    C’est ce qu’on appelle redondance de l’information, et c’est une chose à éviter.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 16:02
  • A ok, non... il n'y avais aucune notion d'equipe quand je parlais de nombre d'intervenant, c'était plus pour créer les combobox (pour le choix des noms) en fonctions du nombre d'intervenant...

    Désolé de m'être mal expliqué... mais je pensais l'avoir bien fait...

    pour faire simple :

    il n'y aura plus de notion de nombre car votre idée est bonne, j'ouvre l'application, je clique sur rédiger un rapport >> une USF s'ouvre qui sera en 3 partis (je vous ferais un schéma de ce que je souhaiterais réalisé), une parti en haut reservé a numéro de semaine et au date, un parti a gauche qui aura des onglé ou autre (un peu façon intercalaire) et en bas de cette parti un bouton "ajouter un intervenant" ou le nom choisi prendra place sur un onglet) et la parti du milieu qui représentera la section 2 du rapport...

    Qu'en pensez-vous ? bon un schéma parlerait certainement mieux...

    De mon coté je tacherais de donnée de meilleurs explications afin de ne pas vous faire perdre votre temps...

    Cordialement,

    mardi 28 janvier 2014 17:03
  • Redondance de l'information ? je ne comprend pas...

    Bon, je ne connais pas encore toutes les pratiques de la BDD en général, mais je pensais que l'on pouvait une chose du genre :

    Basons nous sur un exemple basé sur la réalité :

    j'ai 3 personnes (pierre,paul,jacques) nous sommes en semaine 4 et sur le sites de civaux

    1er rapport:

    section 1:

    Nom : PIERRE >>> SEM : 4 >>> Du: XX/XX/XXXX au : XX/XX/XXXX

    Section 2:

     CHANTIER >> SECTION >> LUN >> MAR >> MER >> JEU >> VEN >> SAM >> DIM

       CIVAUX         XXXX/XX        8H         8H          8H         8H        4H

    Bon après il y a les autres infos dans le même type,

    Le but de cette applications est de :

    Pouvoir rédiger les rapports (mais ça vous le savez), bon il y aura d'autre options par la suite je devrais peut être vous en parler pour connaitre la faisabilité mais je ne voudrais pas tout mélanger...

    Donc, au niveau de la BDD comment ça va se passer, car du coup ça change tout alors ?

    Cordialement



    mardi 28 janvier 2014 17:16
  • Bon, je suis en train de me faire un pseudo cahier des charges pour ce projet afin de donnée une vu sur ce que je souhaite :

    1/ le but de mon application (tout ne se fera pas en une fois) car il faut que je connaisse la faisabilité.

    Pouvoir rédiger un rapport et pouvoir l'imprimer et/ou l'envoyer par mail via lotus au format vu sur les premier post, peut être pas forcément excel mais si je peux conserver la mise en page, il est gentil le père noël ;) )

    Pouvoir l'éditer, soit pour mémoire ou pour le reprendre a fin de le terminer (cas des rapport en cours fait au jour le jour)

    >>> soit par NOM et SEMAINE pour retrouver le rapport d'un intervenant

    >>> soit par CHANTIER et SEMAINE si on veut savoir qui était là

    >>> soit par SEMAINE si on veux reprendre les rapport en cours

    Ce que je pensais pour la BDD, c'est qu'à la fin on puisse retrouvé les infos comme je les ai décris.

    Tout en gardant dans l’esprit que je souhaite apprendre en même temps toutes ces petites choses,

    Mais bon, je m'étais certainement mal expliqué et espère pouvoir réaliser ce projet. 

    Si il faut plus d'information, y a pas de problème, pour le moment je réfléchis au résultat attendu afin d'être plus précis.

    J'espère ne pas vous avoir découragé avec ce post...

    une bonne soirée à vous...

    Cordialement,

    PS: on peut pas envoyer des message privés ?  ;)

    mardi 28 janvier 2014 18:16
  • Plus simple, dans la section 1 vous voulez sélecter un seul intervenant ou plusieurs ?

    Ce nombre d’intervenants sont sur le même chantier en même temps ? Vous voulez compléter les nombres d’heures une seule fois et les appliquer pour tous ? C’est ça que j’ai compris.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 18:34
  • non, chaque intervenant fait ces horaires, nous sommes tous en déplacement et venant des 4 coins de la france, et n'arrivons pas tous en même temps sur les chantiers.

    dans la section 1 on sélectionne un seul intervenant, en clair, 1 intervenant par rapport. Elle sont vraiment individuelle ces fiches...

    mardi 28 janvier 2014 18:38
  • Ok, dans ce cas on doit oublier cette notion d’équipe ou groupe. En place on aura Intervenant_id.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 28 janvier 2014 18:55
  • que faut-il que je modifie dans la structure dans ce cas ?

    Cordialement

    mardi 28 janvier 2014 18:59
  • Bonjour Aurel (ou re) ;)

    Donc je suis en train de regarder ma BDD et voici la structure actuelle:

    CHANTIER >> PK

    DCHANTIER >> FK >> avec champs GroupId

    DIVERS

    INTERV_GROUP >> FK >> avec champs GroupId

    INTERVENANTS >> PK

    VOYAGES

    ZC

    Alors vu qu'il n'y a plus de notions de groupe je peux supprimer les tables :

    INTERV_GROUP

    Et le champs de la tables DCHANTIERS nommé GroupId

    Cordialement

    mercredi 29 janvier 2014 07:31
  • Bon jour

    C'est bon!

    Cordialememnt,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 29 janvier 2014 07:48
  • Donc c'est fait, niveau structure, on laisse comme ça ou il y a des changements à faire

    car vu que toutes les info doivent être enregistré

    Je pose la question par rapport à mon post d'hier soir

    Cordialement

    mercredi 29 janvier 2014 08:02
  • Petite proposition, en sachant que je ne maitrise pas tout a fait les BDD, donc j'expose une idée utile ou pas...

    puis vous n'allez quand même pas tout faire à ma place, il faut que je m'y mette quand même ;)

    la structure de la BDD :

    on garde les tables :

    INTERVENANT ; CHANTIERS ; DIVERS (pour la selections dans les ComboBox ou autre)

    et la tables DCHANTIERS qui contiendra toutes les infos de la section 2 du rapport, c'est à dire:

    voici les champs que je propose :

    SEM ; INTERV ; SECTION ; LUN ; D_LUN ; MAR ; D_MAR ; MER ; D_MER ; JEU ; D_JEU ; VEN ; D_VEN ; SAM ; D_SAM ; DIM ; D_DIM ; V_Hdep ; V_Harr ; ZC_NB_H ; ZC_NB_ACC ; TRX_PEN ; PR_POST ; H_NUIT

    S'il y a plus simple je prend, mais en sachant que toutes les donnée du rapport doivent être enregistrés

    Cordialement

    mercredi 29 janvier 2014 08:34
  • Après avoir lu les définitions de relation entre les tables, mon idée est surement très bête...

    Cordialement

    mercredi 29 janvier 2014 08:41
  • Pas de tout bête.
    Si le champ INTERV   = c'est IntervenantId c'est OK.
    Il vous manqué le ChantierId.
    SECTION  - c'est le chantier?
    Aussi, la table DIVERS à quoi ça sert?

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 29 janvier 2014 09:00
  • Alors, pour la table INTERVENANTS il y a les champs intervenant_id ; nomprénom ; mail

    la tables CHANTIERS il y a les champs chantiers_id ; nomchantier

    pour la section, chaque chantier a u numéro de section, celui ci change tous les ans donc il sera manuel mais devra être enregistrer.

    les divers correspondent aux absences, voyage debut de chantier, voyage fin de chantiers, Delegations...etc

    ils représentent les mouvements par jour s'il y a et permette de montrer a la direction que tel jour on a changer de chantier ou fait une visite medicale

    est-ce compris ?

    mercredi 29 janvier 2014 09:09
  • donc le champ LUN on met les heure et le champs D_LUN se sera par exemple VDC (Voyage Début de Chantier)
    mercredi 29 janvier 2014 09:10
  • Donc aussi dans la table divers (vu qu'elle sera lié a une liste déroulante) il y aura toutes les abréviations DE,VDC,VFC...etc
    mercredi 29 janvier 2014 09:20
  • Le problème est le suivant:
    Vous avez la table CHANTIERS qui vont contenir TOUS les chantiers.
    Dans la table D_CHANTIER on doit retenir pour quel CHANTIER dans la table CHANTIERS s'applique les  heures.
    Plus simple, la table CHANTIERS c'est utile pour remplir le Combobox de sélection du Chantier, et dans D_CHANTIER on aura ChantierId qui est la sélection dans le ComboBox avec les chantiers. 
    La même chose pour les Intervenants.
    Si un CHANTIER a un numéro section, pourquoi ne pas ajouter un champ NumeroSection dans la table CHANTIERS et le modifier selon vos besoin?
    Aussi pour une ligne de  D_CHANTIER vous pouvez avoir n’importe quel nombre d’éléments dans la table DIVERS ?

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 29 janvier 2014 09:23
  • Pour le numéro de section, il peut se passer :

    exemple :

    il peut y avoir sur un même chantiers 2 numéro de section

    CIVAUX >>> remise en conformité est par exemple la section 08/114

    CIVAUX >>> Expertise est par exemple la section 08/115

    Les divers sont par jour dans la semaine :

    exemple:

    j'arrive le lundi 13H sur le chantier et je repart le vendredi 12H car le chantier est fini

    alors ce sera

    chantier : CIVAUX >> section >> 08114 >> LUN :8H >> D_LUN :VDC >>V_Harr >>13H VEN :4H >>D_VEN :VFC >> V_Hdep :12H

    mercredi 29 janvier 2014 09:34
  • Me reste aussi à éclaircir le problème de la semaine, je viens de mettre sur papier ce que je souhaiterais en étant le plus précis possible

    Donc un table SEMAINE, avec les champs : pour le combobox

    semaine_id

    num_semaine

    et ensuite sur L'USF concerné

    Un ComboBox lié au champs num_semaine de la table SEMAINE

    +

    un label pour le 1er jour de la semaine et un label pour le dernier jour de la semaine

    qui s'afficheront uniquement en fonction de la sélection du ComboBox,

    et bien sure (pour voir si j'ai compris) dans la table DCHANTIERS, un champs semaine_id

    Cordialement


    • Modifié CHRIS86260 mercredi 29 janvier 2014 10:21
    mercredi 29 janvier 2014 10:19
  • Il n'y a pas vraiment besoin d'avoir les semaines dans une table.
    On peut remplir le combobox dans une boucle FOR.
    N'oubliez l'année. Ça n'arrive pas le cas d'avoir besoin de compléter ce rapport en janvier pour décembre passée?
    Ou l'inverse?

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 29 janvier 2014 10:47
  • Non les rapport sont fait soit au jour le jour ou en fin de semaine, ça dépend des chefs de chantiers,

    Donc pour la structure, je la modifierais cette après midi et vous ferais des capture détailler, si vous le voulez

    Cordialement,

    mercredi 29 janvier 2014 10:53
  • Hé Hé, a force de réfléchir, je viens de voir une erreur sur ma proposition de structure de la table DCHANTIERS, et oui, vu que toutes les donnée du rapport s'applique jour par jour, il va y avoir plus de colonne... je fais et je vous montre...

    Cordialement

    mercredi 29 janvier 2014 13:57
  • Il n'y a pas vraiment besoin d'avoir les semaines dans une table.
    On peut remplir le combobox dans une boucle FOR.
    N'oubliez l'année. Ça n'arrive pas le cas d'avoir besoin de compléter ce rapport en janvier pour décembre passée?
    Ou l'inverse?


    Oui mais si je fais une recherche de rapport par semaine, il faudra bien qu'elle soit enregistrer quelque part ?

    ou il existe d'autre solution ?

    mercredi 29 janvier 2014 14:17
  • Donc la structure est faites mais mon ecran n'est pas assez grand pour faire une capture, elle sera donc partielle mais sera la même pour tous les jours de la semaine...

    A prendre en compte qu'à partir de lundi jusqu'à lun_divers, j'ai fais la même pour les autres jour de la semaine

    je n'ai pas su quoi mettre pour le type de donnée concernant id_intervenants et id_chantiers

    Cordialement

    mercredi 29 janvier 2014 14:24
  • id_intervenants et id_chantiers sont des entiers.

    Dans la table chantiers vous avez

    Chantier_Id  Chantier_Nom

    1                    Le premier Chantier.

    Dans D_chantier, pour une ligne sur ce chantier vous allez avoir 1.

    Pareil por les intervenants.

    Toujours, pour les nombres d'heures, si vous acceptez 2.5 heures (2 heures et 30 minutes)  je vous suggère de les définir comme Decimal.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 29 janvier 2014 15:02
  • Bon ça y est j'ai rentrer les sites et les noms dans les tables... comment ça se passe au niveau des relation ?

    Cordialement,

    PS : j'ai été un peu long à répondre, il a fallut que je m'absente...

    mercredi 29 janvier 2014 17:07
  • J'aurais une question (grande question) au sujet de l'USF pour la rédaction des rapport ?
    mercredi 29 janvier 2014 17:10
  • Je ne sais pas quoi utiliser en fonction de ce que je voudrais, alors je vais m'expliquer :

    En reprenant votre idée d'avoir un bouton pour l'ajout d'un ou plusieurs intervenants.

    L'USF serait divisé en 3 parties :

    Une TableLayoutPanel 5 colonnes et 2 ligne,un bouton pour l'ajout intervenant, une combobox pour le nom du responsable, une combobox le numéro de la semaine et les labels Du...AU..., ce TableLayoutPanel sera en haut de l'USF

    Ensuite, une parti a gauche de l'USF avec les intervenants au fur et a mesure de la selection, je détail :

    lors du clique sur le bouton, une ListBox s'ouvre avec sélection multiple et un bouton pour valider, une fois validé, les intervenant se retrouve sur la parti gauche de l'USF

    A droite de la parti gauche, sera représenté la section 2 du rapport on l'on rentrera les infos puis une parti en bas de l'USF pour tout les totaux...

    Heure total de la semaine

    Nombre total d'accès en ZC et nombre total d'heure en ZC

    Total TRX penible

    Total prime de poste

    Total heure de nuit

    Mais pour réalisé cette mise en forme, je cherche quel élément utiliser...

    Merci,

    Cordialement

    mercredi 29 janvier 2014 17:58
  • Bonjour Aurel,

    Donc concernant mon USF pour rédiger les rapports, je cherche encore quoi utiliser, y a tellement de contrôle...

    De plus comment faire ? je m'explique :

    Après la sélection des intervenants, il faudrait que plusieurs onglet se créé sur la partie gauche de l'USF...mais la parti principal qui est le rapport doit être adapter par onglet (je ne suis pas très clair mais je ne sais pas quel terme utiliser).

    Puis la partie haute ou l'on choisi le nom du responsable puis la semaine soit pour toute la session en cour... donc voilà j'étudie la chose...

    Auriez-vous une piste ?

    Cordialement

    jeudi 30 janvier 2014 07:49
  • Je ne comprends plus. Maintenait vous parlez d'une sélection multiple pour les intervenants. Donc c’est 1 intervenant ou plusieurs intervenants ?

    Pour la création des divers onglets, vous les créez en mode concepteur et utilisez la propriété Visible = true/false pour les cacher, afficher selon vos besoins.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 08:02
  • En fait, je parle de sélection de plusieurs intervenant pour :

    exemple:

    sous excel on créé plusieurs feuille et on selectionne la feuille voulu pour remplir le rapport

    je voudrais le même concept sur mon application, c'est à dire qu'après avoir choisi quel intervenants on souhait faire les rapport, il me créé plusieurs onglets avec le nom des intervenants et leur rapport associé, mais si c'est compliqué à mettre en place dans ce cas :

    un TableLayoutPanel pour le nom du responsable et la semaine + les dates, puis un bouton "ajouter un intervenant", on choisi l'intervenant et on rempli son rapport, mais il faudrait que cela reste simple d'utilisation.

    N'hésitez pas, je m'explique très mal des fois, reprenez moi...

    Cordialement

    jeudi 30 janvier 2014 08:11
  • Et une autre chose : à ce moment, on doit seulement faire la saisie des informations. Plus tard on va utiliser ces informations pour créer un rapport.
    Cordialement,

    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 08:13
  • Je vais essayer de dessiner ce que verrait, ça sera plus simple à comprendre,

    cordialement

    jeudi 30 janvier 2014 08:13
  • Et voici,

    J'espère que c'est compréhensible ;)

    Cordialement

    jeudi 30 janvier 2014 08:29
  • Et une autre chose : à ce moment, on doit seulement faire la saisie des informations. Plus tard on va utiliser ces informations pour créer un rapport.


    Oui oui, enfin si on se comprend, on saisi toutes les infos et à la fin, on clique sur un bouton pour créer les rapport...
    jeudi 30 janvier 2014 08:40
  • Si j'ai bien compris cette fois ci, pourquoi faire deux fois (presque) la même chose:
    Vous sélectez un sous-ensemble d'intervenants et après vous sélectez un intervenant. Avec Excel ça c'était imposé par l'architecture, mais ici, à mon avis, ça complique les choses inutile.
    Vous avez la liste, sélectez 1 intervenant et affichez l’écran de saisie des données.
    Plus tard, on va créer les rapports et les afficher en place des écrans de saisie.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 08:47
  • Bien on va essayer comme vous le dites, peut être que je ne vois pas la même chose, mais vous avez surement raison...

    En faite ce que vous me dite c'est comme dans le schéma, mais sans les choisir avant, ils seront directement dans l'USF ?

    Cordialement

    jeudi 30 janvier 2014 08:53
  • Oui. C'est ca.


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 09:02
  • Et bien vendu alors ;)

    Alors une TableLayoutPanel pour la parti haute de l'USF, un TabControl pour les intervenants puis pour les totaux un second TableLayoutPanel ?

    Cordialement,

    jeudi 30 janvier 2014 09:05
  • Par-contre si sur un chantier on est une vingtaine, il va falloir jongler pas mal avec la liste car on est 140 ouvrier dans la société, ce sera pratique pour la personne qui fera les saisie en fin de semaine, mais pour celui qui les fait au jour le jour il aura tout intérêt d'être organisé.

    Cordialement

    jeudi 30 janvier 2014 09:08
  • Dans ce cas,  encore un TextBox qui permet de filtrer les noms de la liste d'intervenants. Il commence à taper Jean et dans la liste il aura tous les noms qui contiennent Jean.

    Le TableLayoutPanel c’est bon, mais vous pouvez expérimenter avec des autres Panel.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 09:25
  • Pour le textbox, bonne idée,

    Y a tellement de panel que j'ai du mal à choisir... mais je vais faire ça et vous mettre ce que j'ai choisi y compris la mise en page, je réaliserais également l'écran de saisie et comme ça vous pourrez me dire si on était sur la même longueur d'onde ;)

    Cordialement,

    jeudi 30 janvier 2014 09:50
  • Un FlowLayoutPanel ?

    Cordialement

    jeudi 30 janvier 2014 10:01
  • Oui, ça peut être:

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.flowlayoutpanel(v=vs.110).aspx

    Ici vous avez des détails sur plusieurs contrôles :

    http://msdn.microsoft.com/fr-fr/library/System.Windows.Forms(v=vs.110).aspx


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 10:12
  • Petite question, si, dans la TextBox on entre le nom de l'intervenant, il faudra également un bouton "creer fiche" si elle n'existe pas et "ouvrir fiche en cour" si une est deja existante ?

    Cordialement

    jeudi 30 janvier 2014 10:20
  • Pas vraiment besoin.
    Apres choisir l'intervenant et la semaine dans l'année on fait une recherché dans la BD.
    Si ‘il existe on l'affiche pour la modification (si on veut ça), sinon on ajoute une.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 10:30
  • A oui, donc apres avoir choisi le nom, il cherchera automatiquement dans la base si tel semaine tel intervenant à un rapport sinon ... nouveau

    Cordialement

    jeudi 30 janvier 2014 10:36
  • Juste pour un avis, qu'en pensez-vous, bon il y a beaucoup de ligne concernant les chantiers, j'aurais voulu en mettre qu'une avec un bouton "+" pour qu'il ajoute une ligne automatiquement, mais je ne sais pas faire, comme beaucoup de chose d'ailleur .... ;-)

    elle n'est pas fini, il manque des petites choses...

    Cordialement

    jeudi 30 janvier 2014 14:22
  • De point de vue programmation sera utile de créer un UserControl avec Chantier, Section, Lundi.....
    De l'autre cote, il y a souvent le cas que le même Intervenaient se trouve dans la même semaine sur plusieurs chantiers?
    Sinon, une seule ligne (ou deux) sera plus ergonomique.
    En plus' les détails en bas s'applique par chantier aussi au seulement par semaine et intervenant?

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 14:35
  • je vous fais une petite démonstration :

    Un intervenant peut faire plusieur déplacement dans la semaine, cette exemple devrait mieux vous montrer le fonctionnement des rapports,

    Cordialement

    jeudi 30 janvier 2014 14:45
  • Dans ce cas c'est bon.

    Utilisez toujours un UserControl qui sera en effet une ligne pour ajouter facilement plusieurs tells lignes:

    http://msdn.microsoft.com/fr-fr/library/vstudio/6hws6h2t(v=vs.110).aspx

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    jeudi 30 janvier 2014 14:52
  • Pour voir si j'ai compris ... ça correspondrais au petit bouton "+" a droite de la première ligne ?

    Je comprend vite mais faut m'expliquer longtemps... (Rire)

    Cordialement

    jeudi 30 janvier 2014 15:00
  • Pour être plus claire  chaque fois vous cliquez le "+" vous ajoutez un seul UserControle qui contiens le Combo pour Chantier, Combo pour section et TextBox pour chaque jour.

    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 15:23
  • Ok, j'étais en train de voir ça, donc j'ai ajouté un UserControl qui aura les même éléments, même format, mais concernant le code ça se passera comment ?
    jeudi 30 janvier 2014 15:31
  • De mémoire, sur l’évènement OnClick du bouton :

    Dim monControle as new UserControl1
    unPanel.Contols.Add(monControle)


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 30 janvier 2014 15:45
  • Donc, j'ai créé mon UserControl, maintenant il faut que je mette un bouton qui,lors de l'evenement "click", ajoutera le usercontrol en dessous, je cherche le code nécessaire... c'est compliqué ça...

    sans demander la solution, auriez vous une piste ? histoire que j'apprenne ;)

    jeudi 30 janvier 2014 15:49
  • Ok donc moi je l'ai appelé ajoutChantier

    ça donnerait donc :

    Dim ajoutChantier As new UserControl1

    rapsaisie.Controls.Add(ajoutChantier)

    jeudi 30 janvier 2014 15:59
  • Hé hé , il veut pas ajouter mon UserControl, mais je l'ai très certainement mal codé...

    Et oui mes compétence sont limité... comme on dis au boulot...

    mes compétences s'arrête là ou le travail commence...

    Un peu d'humour...

    Cordialement,

    jeudi 30 janvier 2014 17:22
  • Aah... mais c'est qu'il faut créer une class...?

    Pour la position et tout...


    jeudi 30 janvier 2014 17:38
  • hé hé...bijour ;)

    Comment vas ce matin... bon ba je suis toujours en train de ramer pour mon UserControl, le code n'affiche pas d'erreur mais ne fonctionne pas... mais c'est normal car à priori, il faut que je créé une class.... mais là je sèche...

    Cordialement

    vendredi 31 janvier 2014 07:47
  • Bonjour

    Vous voyez bien l’UserControl dans le concepteur?
    Pouvez-vous nous montrer le code du votre Contrôle?

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 31 janvier 2014 07:58
  • Voici l'UserControl :

    Et le code du bouton

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim ajoutChantiers As New UserControl
            Me.Controls.Add(ajoutChantiers)
        End Sub

    Cordialement

    vendredi 31 janvier 2014 08:06
  • Mais bon, étant novice, j'ai très certainement mal fais la chose
    vendredi 31 janvier 2014 08:06
  • Votre contrôle (objet/classe) s'appelle ajoutChantier.

    Le code sera :

       Dim mc As New ajoutChantier        
    Me.Controls.Add(mc)

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 31 janvier 2014 08:11
  • A ok, donc si je comprend bien mon erreur en faite, il fallait que je donne le nom mc a mon UserControl ou un autre nom... mon erreur venait de là ?

    Donc maintenant ça fontionne mais il ne se place pas ou il faut, il se met tout en haut de l'USF, il faut donc que je continu le code en lui disant que quand je clique sur le bouton il m'ajoute les UserControl les un en dessous des autres ?

    vendredi 31 janvier 2014 08:16
  • Me.Controls.Add(mc) ajoute un controle dans la forme (Me = forme). Vous devez l'ajouter dans un Panel (dans ced cas FlowLayoutPanel) avec monPanel.Controls.Add(mc).

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 31 janvier 2014 08:31
  • Ok, donc dans mon USF de saisie, j'ajoute des FlowLayoutPanel et modifie mon code de cette maniere :

    Dim mc As New ajoutChantier        
    lenomdupanelajouté.Controls.Add(mc)
    et il s'ajoutera au bon endroit ?

    Cordialement,

    vendredi 31 janvier 2014 08:39
  • Donc j'ai essayer et c'est ça...

    vendredi 31 janvier 2014 08:44
  • Par contre il faut que je mette un bouton a chaque fois... ?
    vendredi 31 janvier 2014 08:45
  • Pourquoi? Il y a des contrôles statiques (le bouton sera toujours 1 seul ) et dynamique (on peut les ajouter pendant l'exécution  du logiciel).
    Le button c'est statique. Les contrôles de type ajoutChantier sont dynamique.

    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 31 janvier 2014 08:54
  • Je crois avoir compris, par exemple si il me faut 7 lignes Chantiers, alors il faut que je crée autant de UserControle que nécéssaires avec le bouton puis j'adapte le code a chaque bouton ?
    vendredi 31 janvier 2014 08:54
  • a j'avais pas vu le message (j'avais pas reactualiser ma page)
    vendredi 31 janvier 2014 08:55
  • Pourquoi? Il y a des contrôles statiques (le bouton sera toujours 1 seul ) et dynamique (on peut les ajouter pendant l'exécution  du logiciel).
    Le button c'est statique. Les contrôles de type ajoutChantier sont dynamique.

    C'est là que je ne comprend pas, car dans le code on dit :

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim mc As New ajoutChantiers
            FlowLayoutPanel4.Controls.Add(mc)
        End Sub
    
    

    Donc il me l'ajoute dans le FlowLayoutPanel4, mais si j'ai un FlowLayoutPanel 5 et 6 et7 ?

    En ce cas il faut une conditions ?

    vendredi 31 janvier 2014 08:58
  • j'ai un petit soucis, donc il s'ajoute bien mais pas comme il le faut j'ai essayer plein de paramètre...mais rien, voici le résultat :

    Rien est aligné... aurais louper un étape, mon UserControl est pourtant fait à l'identique

    vendredi 31 janvier 2014 09:41
  • Essayez avec le button pas dans le Panel, mais a l'extérieur.



    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    • Modifié Aurel Bera vendredi 31 janvier 2014 11:19
    vendredi 31 janvier 2014 11:11
  • Juste une petite question,

    lorsque je créé mon UserControl, il ne faut pas que je mette de panel, vu qu'il y en a un sur l'usf principal.

    Je ne met que les controles (combobox et textbox)

    vendredi 31 janvier 2014 13:38
  • Bon ça y est c’est bon ça fonctionne... mais j'ai du me compliquer la vie quand même au niveau des UserControl ainsi que les codes associé... je vais me documenter la dessus... pour voir si je peux simplifier...

    Mais me reste un soucis, c'est pour les DataSet des combobox chantier, la première fonctionne mais je n'arrive pas a connecter les autres...

    J'ai aussi eu une idée... dans la société on à l'agence ile de france mais aussi aix en provence et interimaire, donc si je rajoute une colonne dans la table "CHANTIERS" et la nomme "agence" on pourrait filter plus facilement, du genre une combobox "Agence" et une Combobox "Nom de l'intervenant" ?

    Bon WE

    Cordialelement

    samedi 1 février 2014 10:27
  • Bonjour Aurel,

    Je suis actuellement en déplacement sur penly, mais je suis toujours (quand j'ai le temps) d'être sur le projet...

    donc...

    le usercontrol fonctionne parfaitement, je faisais une erreur au niveau du code... mais j'ai finalement fini par comprendre...

    Mais comment dois-je faire pour lié le combobox a un dataset (dans le usercontrol) afin qu'il me le reproduise lorsque je clique sur "ajouter" ? j'ai beau essayer mais il m'affiche une ligne blanche (en gros un combobox vide) ?

    ensuite je cherche la solution pour lier chaque TextBox a chaque champs de la base en tenant compte de l'intervenant choisi...?

    Une piste suffira... pas la réponse, il faut que j'apprenne...

    Merci à vous... si petite question ? peut-on se tutoyer ?

    Cordialement,

    Bonne soirée

    mercredi 5 février 2014 17:26
  • Re Bonjour

    On utilise toujours DataSource comme dans la réponse marquée ici:

    http://social.msdn.microsoft.com/Forums/vstudio/en-US/1db2b0ed-35da-457e-b112-de95cdcab6bf/datagridview-combobox-selects-using-displaymember-and-not-valuemember?forum=netfxbcl

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 6 février 2014 15:19
  • Bonjour,

    Hé hé, merci pour le lien... je suis faché avec la langue de shakespeare... je sais que pour développer il faut la connaitre...mais là... mes limites arrive...lol

    Je vais quand même essayer... mais je risque de revenir ;)

    Bonne soirée,

    Cordialement

    jeudi 6 février 2014 18:52
  • Bonjour Aurel,

    Donc j'ai essayé de déchiffrer le lien que vous m'avez envoyé, mais j'avoue ne pas tout comprendre sur la réponse qui est proposé, et google traduction ne m'a pas vraiment aidé... :(

    En faite, lorsque je sélectionne le chantier, le nom de l'intervenant, le numéro de semaine et que ensuite je rentre les valeurs nécessaire, qu'il me les enregistre dans la base.

    Donc je continu à chercher sur google, mais je ne dois pas mettre les bonnes question lors de mes recherches...

    Bonne journée,

    Cordialement

    vendredi 7 février 2014 08:15
  • ReBonjour

    Dans le DataSet, sur le TableAdapter de D_CHANTIER vous ajoutez une requete SQL qui retourne une seule ligne et qui fait un "select * from D_CHANTIER where CHANTIER_ID = @param1 and IntervenantId = @param2 and Semaine = @param3 and Année = @param4".
    Ca va lire les infos qui existent dans la BD. S'il n'existe pas aucune information, on doit ajouter une ligne pour ChantierId, Intervenant, Semaine, Année (unicité sur ces champs!). Les autres on va les saisir dans l’UserControle.

    Cordialement,

     

    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    vendredi 7 février 2014 11:24
  • voila j'ai déja un probleme pour ajouter les group, mais le concepteur est généré bien. je suis débutant et ne comprend pas se exemple.

    jeudi 23 décembre 2021 20:24