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 6 et antérieur Discussion :

Comment imprimer de états Crystal report avec le bouton imprimer de commonDialog


Sujet :

VB 6 et antérieur

  1. #1
    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 Comment imprimer de états Crystal report avec le bouton imprimer de commonDialog
    Bonjour,

    J'ai une application sous VB6 avec des états conçus avec Crystal Report 9.2. Je voudrais pouvoir imprimer n'importe lequel de mes états ouvert par le bouton Imprimer du commondialog de windows, pas avec le bouton imprimer de crystal report. Voici le code que j'ai mis sur click du bouton imprimer
    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
     
     
    Private Sub menu_imprimer_Click()
        On Error Resume Next
        If ActiveForm Is Nothing Then Exit Sub
     
     
        With dlgCommonDialog
            .DialogTitle = "Imprimer"
            .CancelError = True
            .Flags = cdlPDReturnDC + cdlPDNoPageNums
            If ActiveForm.rtfText.SelLength = 0 Then
                .Flags = .Flags + cdlPDAllPages
            Else
                .Flags = .Flags + cdlPDSelection
            End If
            .ShowPrinter
            If Err <> MSComDlg.cdlCancel Then
                ActiveForm.rtfText.SelPrint .hdc
            End If
        End With
    End Sub
    La boite de dialogue d'impression s'ouvre mais quand je lance, l'état qui est ouvert n'est pas imprimé. Que faire pour arriver à imprimer mes états avec la boite d'impression du commonDialog ?

    Merci d'avance.
    N'oubliez pas le tag et

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Notre précédente discussion ne t'a pas aidé ?
    http://www.developpez.net/forums/sho...d.php?t=230719

    Je ne pense pas que tu penches vers la bonne solution en faisant cela.
    Montre-nous plutôt comment tu ouvres ton .rpt via VB (utilisation des composants CR)

  3. #3
    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
    Salut Phifi

    Très content de te lire de nouveau.
    Notre précédente discussion ne t'a pas aidé ?
    http://www.developpez.net/forums/sho...d.php?t=230719
    Je finirai dans 8 jours mon programme. Le temps de la compilation venu, je mettrai en pratique tes recommandations et te ferai signe.

    Pour mon problème actuel, voici le code qui ouvre mon état .rpt:
    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
     
    Private Sub Form_Load()
     
    Dim rptReport As New CRAXDRT.Report
    Dim rptRepApp As New CRAXDRT.Application
    Dim rtpViews As CRAXDRT.DatabaseTable
    Dim CRXPFDs As CRAXDRT.ParameterFieldDefinitions
    Dim test As CRAXDRT.ParameterFieldDefinition
     
    Set rptReport = rptRepApp.OpenReport(App.Path & "\Etats\recu.rpt")
     
     
    CRVReport.ReportSource = rptReport
    Screen.MousePointer = vbHourglass
    Dim n As Integer
       n = Int(CaisseRs![num_enr])
    ' Récupère la collection des champs paramètre du rapport
    Set CRXPFDs = rptReport.ParameterFields
    ' Récupère le premier champ paramètre de la collection
    Set test = CRXPFDs.Item(1)
    ' Ajoute la chaîne de caractères au champ paramètre
     test.AddCurrentValue (n)
    CRVReport.ViewReport
    Screen.MousePointer = vbDefault
     
     
    'Plein écran
    Me.Top = 0
    Me.Left = 0
    Me.Width = Screen.Width
    Me.Height = Screen.Height - 400
    CRVReport.Top = 0
    CRVReport.Left = 0
    CRVReport.Width = Me.Width
    CRVReport.Height = Me.Height
    End Sub
    Je reste en stand by. Merci pour tous vos apports.
    N'oubliez pas le tag et

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Juste une question, pourquoi veux-tu utiliser CommonDialog pour imprimer ?

  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
    En fait, c'est d'abord pour pouvoir choisir une imprimante en cas de besoin. Ensuite, j'ai une barre d'outils dans laquelle j'ai un image d'une imprimante sur click de laquelle on pourra aussi lancer l'impression de l'état ouvert et évidement obtenir le même résultat pour en passant par le menu Fichier > Imprimer.
    Mais s'il y a une autre solution plus simple mais efficace, je suis preneur.
    N'oubliez pas le tag et

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Ok donc pour le choix de l'imprimante par le CommonDialog

    Pour ce qui est du bouton d'impression, je reste persuadé que tu devrais avoir avec les composants CR9, un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rptReport.PrintOut(Options...)
    Vérifie avec l'intellisense si tu as une méthode d'impression

  7. #7
    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
    Oui, j'ai effectivement cette méthode d'impression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rptReport.PrintOut(options...)
    N'oubliez pas le tag et

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Et ? ça c'est bon alors ?

  9. #9
    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
    Salut Phifi.
    Merci pour ton aide et ta patience. Mais, pourras-tu me dire concrètement comment exploiter cette méthode pour pourvoir imprimer n'importe lequel de mes états ? Un peu de code me sera vraiment utile. Merci
    N'oubliez pas le tag et

  10. #10
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bon, callo.

    Il faudrait voir à ne pas exagérer.
    Ce forum est un forum d'aide aux développeurs, pas un site d'écriture de code en ligne...

    Ou tu t'y mets et tu étudies VB, ou tu vas poster dans le forum Offres d'emploi pour demander qu'on fasse ton boulot pour toi.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  11. #11
    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
    salut AlainTech

    Veuillez m'excuser. Mais, j'ai besoin de savoir comment imprimer l'état actuellement ouvert. Faudrait-il passer en parmètre le nom de l'état actuellement ouvert?, que faire concrètement pour que le programme sache que c'est l'état actuellement ouvert qu'il faut imprimer ? Et pour ça, je ne sais pas comment écrire cette instruction, raison por laquelle, je demande un bout de code pour m'éclairer. Je ne demande pas qu'on fassse le boulot pour moi. J'ai fait beaucoup de recherches aavant de poster ce sujet.
    N'oubliez pas le tag et

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Ben tu as déjà quasiment tout fait :

    Par exemple, sur un bouton d'impression des reçus (2 exemplaires)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub ImprimRecu_Click
        Dim rptRepApp As New CRAXDRT.Application
        Dim rptReport As New CRAXDRT.Report
        '
        Set rptReport = rptRepApp.OpenReport(App.Path & "\Etats\recu.rpt")
        rptReport.PrintOut NumberOfCopy:=2
        '
        Set rptReport = Nothing
        Set rptRepApp = Nothing
    End sub
    A toi de voir comment définir la portée des composants CR (c'est pas terrible dans mon cas =), comment charger les états etc., rien de bien compliqué

    Je vois pas trop où tu coinces...

  13. #13
    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
    En fait, j'ai une form MDI avec un menu fichier > Imprimer. Le formulaire qui m'ouvre l'état CR avec le composant CRViewer est un MDIChild. J'ai plusieurs états dans mon application. Quand un état est ouvert, je désire l'imprimer via le menu Fichier > Imprimer du MDIForm. Pour ça, il me semble que j dois passer en paramère le nom de l'état. Je comprends tout a fait l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rptReport = rptRepApp.OpenReport(App.Path & "\Etats\recu.rpt")
    Mais le problème c'est qu'il pourra s'agir aussi d'un état facture.rpt. C'est dire que je connais pas à priori le nom de l'état à imprimer.Raison pour laquelle je voudrais savoir comment passer en paramètre le nom de l'état actif. Peux ête que je m'explique mal. Alors s'il faut plus de détails, je ne vais pas hésiter à en donner. Encore une fois merci pour votre patience.
    N'oubliez pas le tag et

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Tu as plusieurs états ouverts en même temps et tu aimerais imprimer celui dont la fenêtre est active ? C'est ça ?

  15. #15
    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
    Effectivement, c'es bien ce que je désire faire
    N'oubliez pas le tag et

  16. #16
    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
    A l'aide s'il vous plait. J'ai cherché sur le net comment savoir l'état dont la fenêtre est active mais en vain. Alors si quelqu'un a une idée, merci de me donner un coup de main.
    N'oubliez pas le tag et

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    T'as essayé .ActiveForm ?

    La difficulté réside dans le fait que plusieurs types de fenêtres peuvent être ouvertes (viewer CR, autres fenêtres...) donc, peut-être qu'il te faudra faire des tests complémentaires pour savoir si l'objet rptReport existe pour la fenêtre active, et auquel cas, récupérer la valeur de celui-ci

Discussions similaires

  1. Imprimer un état Crystal Report à partir de VB 2005
    Par sergio114 dans le forum VB.NET
    Réponses: 2
    Dernier message: 15/11/2010, 16h53
  2. Réponses: 1
    Dernier message: 22/09/2010, 13h37
  3. Réponses: 1
    Dernier message: 31/10/2006, 12h40
  4. [Reporting] Comment créer des états Crystal Report à partir de VB6 ?
    Par Le Pharaon dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/09/2006, 14h20
  5. Création et déploiement d'états Crystal Reports avec VS .NET
    Par Marie-Hélène dans le forum Visual Studio
    Réponses: 0
    Dernier message: 15/07/2004, 12h00

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