Bonjour ! Alors j'ai actuellement un problème vraiment gênant !

J'ai un datagridview qui contient une multitude de données, le problème c'est que après la requête SQL, j'ai un tableau que je modifie pour avoir une belle mise en forme ! Le problème c'est que je lis le tableau pour le copier dans un PDF, mais le code me copie le datagridview sans les modifs que j'ai fais juste après... Du coup normalement j'ai ceci :

http://www.cjoint.com/doc/16_06/FFwh...Z_sfesfesf.PNG

Mais ça me donne cela :

http://www.cjoint.com/doc/16_06/FFwhr72NOaZ_open.PNG

L'ordre des colonnes est perdu, le format des dates, heures, arrondis avant la virgule...

Voilà mon code, ceci est mon bouton qui lance l'écriture dans le PDF :

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
 Private Sub Bt_calcul_Click(sender As System.Object, e As System.EventArgs) Handles Bt_calcul.Click
        If Form4_Ticket.Dtgdv_ticket.ColumnCount = 0 Then
            MsgBox("Veuillez choisir une entité et lancer une recherche svp")
            Exit Sub
        Else
            Dim pdfTable As New PdfPTable(Form4_Ticket.Dtgdv_ticket.ColumnCount)
            pdfTable.DefaultCell.Padding = 3
            pdfTable.HorizontalAlignment = Element.ALIGN_CENTER
            pdfTable.DefaultCell.NoWrap = True
 
            For Each column As DataGridViewColumn In Form4_Ticket.Dtgdv_ticket.Columns
                Dim cell As New PdfPCell(New Phrase(column.HeaderText))
                cell.BackgroundColor = New iTextSharp.text.BaseColor(240, 240, 240)
                pdfTable.AddCell(cell)
            Next
 
            Dim i As Integer = 0
            For Each row As DataGridViewRow In Form4_Ticket.Dtgdv_ticket.Rows
                If Not Form4_Ticket.Dtgdv_ticket.Rows.Count = i + 1 Then
                    For Each cell As DataGridViewCell In row.Cells
                        If Not cell.Value.ToString = vbNullString Then
                            Dim cellPDF As New PdfPCell(New Phrase(cell.Value.ToString()))
                            pdfTable.AddCell(cellPDF)
                        Else
                            Exit For
                        End If
                    Next
                    i = i + 1
                Else
                    Exit For
                End If
            Next
 
            Dim widths(Form4_Ticket.Dtgdv_ticket.Columns.Count - 1) As Integer
            For Each col As DataGridViewColumn In Form4_Ticket.Dtgdv_ticket.Columns
                widths(col.Index) = col.Width
            Next
            pdfTable.SetWidths(widths)
 
            Dim folderPath As String = "C:\Users\degecom\Desktop\PDF TEST"
            If Not Directory.Exists(folderPath) Then
                Directory.CreateDirectory(folderPath)
            End If
            Using stream As New FileStream(folderPath & "\test.pdf", FileMode.Create)
                Dim pdfDoc As New Document(PageSize.A2, 10.0F, 10.0F, 10.0F, 0.0F)
                PdfWriter.GetInstance(pdfDoc, stream)
                pdfDoc.Open()
                pdfDoc.Add(pdfTable)
                pdfDoc.Close()
                stream.Close()
            End Using
 
            AxAcroPDF1.src = "C:\Users\degecom\Desktop\PDF TEST\test.pdf"
        End If
    End Sub
Et mes modifs du datagridview qui sont bien sûr avant le bouton.

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
        Dtgdv_ticket.Columns("Type").DisplayIndex = 1
        Dtgdv_ticket.Columns("T.actiontime / 60").HeaderText = "Duré ticket (min)"
        Dtgdv_ticket.Columns("TT.actiontime / 60").HeaderText = "Duré tache (min)"
        Dtgdv_ticket.Columns("date").DefaultCellStyle.Format = "d"
        Dtgdv_ticket.Columns("T.actiontime / 60").DefaultCellStyle.Format = "n0"
        Dtgdv_ticket.Columns("TT.actiontime / 60").DefaultCellStyle.Format = "n0"
        Dtgdv_ticket.Columns("name").HeaderText = "Titre"
        Dtgdv_ticket.Columns("date1").HeaderText = "Date ticket"
        Dtgdv_ticket.Columns("content").HeaderText = "Description ticket"
        Dtgdv_ticket.Columns("content1").HeaderText = "Description tache"
        Dtgdv_ticket.Columns("date1").HeaderText = "Date tache"
        Dtgdv_ticket.Columns("date2").HeaderText = "Heure de la tache"
 
        'Dtgdv_ticket.DefaultCellStyle.WrapMode = DataGridViewTriState.True
        Dtgdv_ticket.Columns("date").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader
        Dtgdv_ticket.Columns("date1").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader
        Dtgdv_ticket.Columns("date2").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader
        Dtgdv_ticket.Columns("T.actiontime / 60").AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
        Dtgdv_ticket.Columns("TT.actiontime / 60").AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
        Dtgdv_ticket.Columns("Type").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader