none
comment recupérer et imprimer le contenu d'un dataGridView RRS feed

  • Question

  • Bonsoir à tous, j'ai besoin d'aide pour imprimer le contenu d'un DataGridView .

    J'ai filtré un daset qui m'affiche les données voulu dans un DataGridView et je ne sais pas comment faire l'impression sur papier

    Merci! pour votre aide

    mardi 12 novembre 2013 14:30

Réponses

Toutes les réponses

  • Bonjour,

    Souhaitez vous imprimer le DataGridView tel quel (comme une copie d'écran) ? Ou alors imprimer le contenu de votre DataSet via un rapport Crystal Reports ou ReportViewer ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Marqué comme réponse Aurel Bera lundi 18 novembre 2013 08:00
    mardi 12 novembre 2013 23:15
    Modérateur
  • Bonjour

    La solution en ce qui concerne l'impression c'est d’utiliser un PrintDocument:

    Et ici vous avez un exemple: 

    http://www.codeproject.com/Articles/28046/Printing-of-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.


    • Modifié Aurel Bera vendredi 15 novembre 2013 09:28
    • Marqué comme réponse Aurel Bera lundi 18 novembre 2013 08:00
    vendredi 15 novembre 2013 09:28
  • 

    onjour,

    Private Sub Aperçu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            PrintDocument1.DefaultPageSettings.Landscape = True' orientation paysage
            PrintPreviewDialog1.Document = PrintDocument1
            PrintPreviewDialog1.ShowDialog()
    End Sub

    Private Sub imprime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles imprime.Click
            PrintDocument1.DefaultPageSettings.Landscape = True 'paysage
            PrintDocument1.Print()
        End Sub

    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
           'nombre de lignes 
           Dim nblignes As Integer = CInt(PrintDocument1.DefaultPageSettings.PrintableArea.Height.ToString / DataGridView1.Rows(1).Height.ToString)
            'calcule la hauteur de la grille
            DataGridView1.Height = (DataGridView1.Rows(1).Height * nblignes)
            Dim bm As New Bitmap(Me.DataGridView1.Width, Me.DataGridView1.Height)
            DataGridView1.DrawToBitmap(bm, New Rectangle(e.PageSettings.HardMarginX, e.PageSettings.HardMarginY, Me.DataGridView1.Width, Me.DataGridView1.Height))
            e.Graphics.DrawImage(bm, 0, 0, (e.PageBounds.Width - e.PageSettings.HardMarginX), (e.PageBounds.Bottom - e.PageSettings.HardMarginY)) ' ajuste la grille à l'imprimante
        End Sub

    Private Sub PrintDocument1_EndPrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.EndPrint
            MessageBox.Show("fin d'impression")
        End Sub

    samedi 8 février 2014 16:26