IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Gestion des impressions


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 22
    Points : 13
    Points
    13
    Par défaut Gestion des impressions
    Bonjour,

    Actuellement, je travaille sur un logiciel de gestion qui fait appel aux états access afin d'imprimer.
    J'aimerais dorénavant ne plus passer par ces états, mais mettre en forme la page à imprimer directement avec vb.

    Merci pour votre aide.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Sujet vaste s'il est un.

    Mais comme tu ne dis rien de tes réels besoins et de ce que tu as réellement en tête, on ne peut que répondre par des généralités.

    Si tu veux mettre tes rapports en page sans devoir recourir à un programme externe, il existe des composants .net pour la génération de rapports, dont quelques uns sont gratuits.

    Mais en général, mettre un document en forme à partir de zéro avec VB, c'est l'enfer.

    Tu peux toujours commencer avec cela :

    http://www.codeproject.com/Articles/...rinting-in-NET
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Les impressions directes avec vb sont expliquées dans le tuto présenté dans cette page.
    J'ai utilisé le principe pour faire des impressions en C#. Au début cela semble rebutant, mais une fois le principe acquis, ça se fait.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Merci pour votre aide,

    Je précise mon besoin: sur mon logiciel, par exemple quand je vais sur un devis, j'ai des informations concernant le client, les produits de sa commande, le montant.. Je peux imprimer ce devis, mais cela ce fait à partir d'un état access, je souhaite donc maintenant générer ce document directement avec vb.net, sans passer par access, en réutilisant directement les données affichées sur mon logiciel.

  5. #5
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Bonsoir beber12,
    Pourquoi ne pas créer un état .rdlc et utiliser le composant reportviewer pour l'afficher. Ce serait plus simple je trouve.
    N'oubliez pas le tag et

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Bonsoir Callo,

    Ce n'est pas moi qui décide de quelle manière ça doit-être fait et on me demande de le faire comme ça (mise en forme manuelle, utilisation des XPos et YPos)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    J'ai aussi ce problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub btn_imp_Click(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles btn_imprimer.PrintPage
    L'IDE me dit que cet évènement (PrintPage) est introuvable.. Faut peut-être un "Imports" (sachant que j'ai celui là déjà : Imports System.Drawing.Printing)?

    Merci pour votre aide

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par beber12 Voir le message
    J'ai aussi ce problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub btn_imp_Click(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles btn_imprimer.PrintPage
    L'IDE me dit que cet évènement (PrintPage) est introuvable.. Faut peut-être un "Imports" (sachant que j'ai celui là déjà : Imports System.Drawing.Printing)?

    Merci pour votre aide
    Ben non, le contrôle bouton n'a pas d'évènement PrintPage.

    Un objet de type PrintDocument pourra gérer l'évènement PrintPage.

    Un exemle légérement modifié de MSDN
    Je le lance depuis un menu mais depuis un bouton c'est pareil.
    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
        Private printFont As Font
        Private streamToPrint As System.IO.StreamReader
     
        Private Sub PrintDocumentToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles PrintDocumentToolStripMenuItem.Click
            Try
                streamToPrint = New System.IO.StreamReader("d:\data\fic.txt")
                Try
                    printFont = New Font("Arial", 10)
                    Dim prdoc As New System.Drawing.Printing.PrintDocument()
                    AddHandler prdoc.PrintPage, AddressOf Me.pd_PrintPage
                    prdoc.Print()
                Finally
                    streamToPrint.Close()
                End Try
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
     
        ' L'évènement PrintPage est envoyé pour chaque page qui doit être imprimée.
        Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As System.Drawing.Printing.PrintPageEventArgs)
            Dim linesPerPage As Single = 0
            Dim yPos As Single = 0
            Dim count As Integer = 0
            Dim line As String = Nothing
     
            ' Calcule le nombre de ligne par page.
            linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)
     
            ' Iprime chaque ligne du fichier.
            While count < linesPerPage
                line = streamToPrint.ReadLine()
                If line Is Nothing Then Exit While
                yPos = ev.MarginBounds.Top + count * printFont.GetHeight(ev.Graphics)
                ev.Graphics.DrawString(line, printFont, Brushes.Black, ev.MarginBounds.Left, yPos, New StringFormat())
                count += 1
            End While
     
            ' d'autre lignes?, une autre page à imprimer.
            If (line IsNot Nothing) Then ev.HasMorePages = True Else ev.HasMorePages = False
        End Sub
    Vu que j'ai testé sur un fichier, je laisse ev.MarginBounds.Left pour positionner chaque début de ligne.
    Si tu as plusieurs éléments à mettre sur une ligne il faudrat calculer leurs emplacements ; remplacer "ev.MarginBounds.Left" par xpos, avec xpos = ev.MarginBounds.Left + calcul de l'emplacement voulu
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup pour ton aide rv26t, ça m'avance bien!

    Par contre, j'aimerais récupérer les données à partir de ma base de données; pas à partir d'un fichier..

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des impressions avec AIX
    Par passou dans le forum AIX
    Réponses: 1
    Dernier message: 19/05/2009, 10h28
  2. [Conception] Gestion des impressions
    Par fofovi72 dans le forum Général Java
    Réponses: 1
    Dernier message: 10/12/2007, 16h55
  3. [Débutant] - VB6 - Gestion des impressions
    Par LSG-Serval dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 22/08/2006, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo