Bonjour j'espère que le titre est assez clair ...

Mais au cas ou je décrit xD :
Dans un formulaire, j'ai un datagridview qui se base sur une datatable "Fiche de frais".
j'ai donc mon datagridview qui s'affiche avec le nom des colonnes ...
et l'utilisateur peut saisir les informations.

Et là 2 grandes questions:
- (Après avoir appuyer sur un bouton OK ...) comment envoyer les données saisies vers la datatable afin de remplir mon rapport CrystalReport ?

Mon brouillon:
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
    'Traitement des informations saisies et génération du rapport
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim nbLigne = DataGridView1.RowCount
        'for each nbligne ... supprimer 
        Dim MyDA As New Data
        Dim ds As New Divers
        Try
            'MyDA.'Fill(ds.Tables("listeCanaux"))
        Catch ex As InvalidOperationException
            MsgBox("Erreur pendant l'insertion des données dans la table temporaire (FicheDeFrais) !", 32, "Isis")
            Me.Close()
        End Try
 
        Dim report As New DocumentFicheFrais
        'report.SetDataSource(ds)
        report.DataDefinition.FormulaFields("DateDeb").Text = "'" + MaskedTextBox1.Text + "'"
        report.DataDefinition.FormulaFields("DateFin").Text = "'" + MaskedTextBox2.Text + "'"
        report.DataDefinition.FormulaFields("UserName").Text = "'" + TextBox1.Text + "'"
        report.DataDefinition.FormulaFields("Centre").Text = "'" + TextBox2.Text + "'"
        Afficher_Etats.Show()
        Afficher_Etats.CRV.ReportSource = report
    End Sub
- Comment activer des contrôles sur les saisies dans le datagridview :
j'ai fait une sorte de gestion des dataerror, toutefois y a t'il un moyen plus simple (plus propre) pour gérer ces saisies ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
    'Gestion des erreurs du datagrid (format des cellules,envoie des données dans le rapport)
    Private Sub DataGridView1_DataError(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles DataGridView1.DataError
        Select Case DataGridView1.Columns(e.ColumnIndex).DataPropertyName
            Case "Date"
                MessageBox.Show("Format error DATE")
            Case "Parking", "Repas", "Hotel", "Divers"
                MessageBox.Show("Format error DECIMAL")
        End Select
    End Sub