none
Apercu avant impression Etat Access RRS feed

  • Question

  • Bonjour,

    Je cherche a obtenir un apercu avant impression d'un etat provenant d'une base access. J'ai trouve qu'il fallait utiliser l objet printdocument mais je n arrive pas a "passer" mon etat access dans cet objet.

    Pouvez vous me donner une ou des pistes ?

    Par avance merci.

    Thierry

    vendredi 17 avril 2015 13:08

Réponses

  • Bonjour,

    oui, j'ai corriger mon code du dépassement de la ligne à l’aperçu avant  impression :

    voici en image :

    voici mon code :

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            PrintPreviewDialog1.Document = PrintDocument1
            CType(PrintPreviewDialog1, Form).WindowState = FormWindowState.Normal
            PrintPreviewDialog1.Size = New System.Drawing.Size(900, 700)
            PrintPreviewDialog1.PrintPreviewControl.AutoZoom = False
            PrintPreviewDialog1.PrintPreviewControl.Zoom = 0.75
            PrintPreviewDialog1.ShowDialog()
        End Sub
    
        Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            e.Graphics.DrawString(RichTextBox1.Text, New Font("Microsoft Sans Serif", 8, FontStyle.Regular), Brushes.Black, New Rectangle(20, 20, e.Graphics.VisibleClipBounds.Width - 40, e.Graphics.VisibleClipBounds.Height - 40))
        End Sub

    cordialement,

    zorro591,

    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    • Marqué comme réponse Capricorne83 jeudi 28 mai 2015 15:21
    mercredi 27 mai 2015 16:47
  • re.... c'est bon ca fonctionne.... voila le code....

    Select Case ComboEdition.Text
                Case "ETA_Sagas"
                    Dim cn As New OleDb.OleDbConnection
                    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files (x86)\Video2014\video2014.mdb;Jet OLEDB:Database Password=XXXXXXXX;"
                    cn.Open()
                    Dim DataAdapterVideo2015 As New OleDb.OleDbDataAdapter
                    Dim Req As New OleDb.OleDbCommand("SELECT FILMS.Film_nom, SAGAS.Saga_Nom, FILMS.Film_Annee FROM SAGAS INNER JOIN FILMS " _
                    & " ON SAGAS.NumSaga = FILMS.numsaga GROUP BY Sagas.saga_nom, Films.Film_Nom, " _
                    & " FILMS.Film_Annee HAVING (((SAGAS.Saga_Nom)<>'Pas de Saga')) ORDER BY FILMS.Film_Annee", cn)
                    Dim TableEdition As New DataTable
                    DataAdapterVideo2015.SelectCommand = Req
                    DataAdapterVideo2015.Fill(TableEdition)
                    Dim BindingSourceVideo2015 As New BindingSource
                    BindingSourceVideo2015.DataSource = TableEdition
                    Dim Report2015 As New ReportDataSource("DataSet1", TableEdition)
                    ReportViewer1.LocalReport.ReportPath = "C:\Program Files (x86)\Video2014\Temp\sagas.rdlc"
                    ReportViewer1.LocalReport.DataSources.Clear()
                    ReportViewer1.LocalReport.DataSources.Add(Report2015)
                    ReportViewer1.RefreshReport()
            End Select

    • Marqué comme réponse Capricorne83 mardi 21 avril 2015 16:54
    mardi 21 avril 2015 16:54

Toutes les réponses

  • Bonjour,

    Voici la solution a ton problème : Apercu avant impression

                                                        Apercu avant impression 2

    Cordialement,

    vendredi 17 avril 2015 14:25
  • Bonjour

    Merci de ta reponse. 

    j'ai opte pour une autre solution. En partant des exemples que tu m'as passe je fais un export en PDF. Le Temps que je trouve ce que je veux. (En fait je souhaite que l'apercu avant impression se fasse dans une form et non dans Access) Je vais creuser le second exemple.

    vendredi 17 avril 2015 15:37
  • Bonjour,

    Voici ce que vous chercher :

    Il faudra ajouter 2 application : PrintPreviewDialog1 + PrintDocument1

    Voici mon codes :

    Public Class Form1
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            RichTextBox1.LoadFile("C:\Users\Downloads\32x32-free-design-icons\readme.txt", RichTextBoxStreamType.PlainText)
        End Sub
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            PrintPreviewDialog1.Document = PrintDocument1
            CType(PrintPreviewDialog1, Form).WindowState = FormWindowState.Normal
            PrintPreviewDialog1.Size = New System.Drawing.Size(900, 700) '<= la taille du form de l'apercu
            PrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0 '<= 100 %
            PrintPreviewDialog1.ShowDialog()
        End Sub
    
        Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            e.Graphics.DrawString(RichTextBox1.Text, New Font("Microsoft Sans Serif", 8, FontStyle.Regular), Brushes.Black, 5, 5)
        End Sub
    End Class

    cordialement,

    samedi 18 avril 2015 14:58
  • Bonjour,

    Merci du coup de main.... je me servirai de cet exemple pour d autres editions. En revanche pour mon etat access.... ca ne fonctionne pas. (je dois sans doute oublier quelque chose.... je n'arrive pas à "lier" le controle  reportviewer avec l etat choisi.)

    Precisions techniques : je suis sous vb 2013 EXPRESS. J'ai trouve cela....

    http://www.vbforums.com/showthread.php?717175-How-to-use-Report-Viewer-with-Visual-Studio-2012-Express

    Je vais regarder.

    Je posterai mon code quand ca fonctionnera....

    mardi 21 avril 2015 16:04
  • re.... c'est bon ca fonctionne.... voila le code....

    Select Case ComboEdition.Text
                Case "ETA_Sagas"
                    Dim cn As New OleDb.OleDbConnection
                    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files (x86)\Video2014\video2014.mdb;Jet OLEDB:Database Password=XXXXXXXX;"
                    cn.Open()
                    Dim DataAdapterVideo2015 As New OleDb.OleDbDataAdapter
                    Dim Req As New OleDb.OleDbCommand("SELECT FILMS.Film_nom, SAGAS.Saga_Nom, FILMS.Film_Annee FROM SAGAS INNER JOIN FILMS " _
                    & " ON SAGAS.NumSaga = FILMS.numsaga GROUP BY Sagas.saga_nom, Films.Film_Nom, " _
                    & " FILMS.Film_Annee HAVING (((SAGAS.Saga_Nom)<>'Pas de Saga')) ORDER BY FILMS.Film_Annee", cn)
                    Dim TableEdition As New DataTable
                    DataAdapterVideo2015.SelectCommand = Req
                    DataAdapterVideo2015.Fill(TableEdition)
                    Dim BindingSourceVideo2015 As New BindingSource
                    BindingSourceVideo2015.DataSource = TableEdition
                    Dim Report2015 As New ReportDataSource("DataSet1", TableEdition)
                    ReportViewer1.LocalReport.ReportPath = "C:\Program Files (x86)\Video2014\Temp\sagas.rdlc"
                    ReportViewer1.LocalReport.DataSources.Clear()
                    ReportViewer1.LocalReport.DataSources.Add(Report2015)
                    ReportViewer1.RefreshReport()
            End Select

    • Marqué comme réponse Capricorne83 mardi 21 avril 2015 16:54
    mardi 21 avril 2015 16:54
  • Bonjour...

    Effectivement ca fonctionne bien. Simplement j'ai un probleme entre l affichage du richtextbox dans ma form et l apercu avant impression. Dans le richtextbox, il y a automatiquement une "retour chariot" lorsque la longueur de la ligne depasse la largeur de la richtextbox. Ce n'est pas le cas pour l apercu et par consequent pour l impression.

    faut il intercepter la longueur de la chaine a imprimer et la "retailler" ou y a t il un autr moyen d y parvenir ?

    Merci.

    mercredi 27 mai 2015 05:17
  • Bonjour,

    oui, j'ai corriger mon code du dépassement de la ligne à l’aperçu avant  impression :

    voici en image :

    voici mon code :

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            PrintPreviewDialog1.Document = PrintDocument1
            CType(PrintPreviewDialog1, Form).WindowState = FormWindowState.Normal
            PrintPreviewDialog1.Size = New System.Drawing.Size(900, 700)
            PrintPreviewDialog1.PrintPreviewControl.AutoZoom = False
            PrintPreviewDialog1.PrintPreviewControl.Zoom = 0.75
            PrintPreviewDialog1.ShowDialog()
        End Sub
    
        Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            e.Graphics.DrawString(RichTextBox1.Text, New Font("Microsoft Sans Serif", 8, FontStyle.Regular), Brushes.Black, New Rectangle(20, 20, e.Graphics.VisibleClipBounds.Width - 40, e.Graphics.VisibleClipBounds.Height - 40))
        End Sub

    cordialement,

    zorro591,

    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    • Marqué comme réponse Capricorne83 jeudi 28 mai 2015 15:21
    mercredi 27 mai 2015 16:47
  • Bonjour,

    Merci, en retouchant les parametres de largeur et hauteur cela a fonctionne correctement.

    jeudi 28 mai 2015 15:21