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

SDK Discussion :

[CR9] afficher et imprimer depuis VB, on avance


Sujet :

SDK

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 40
    Points : 28
    Points
    28
    Par défaut [CR9] afficher et imprimer depuis VB, on avance
    Bonjour à tous,

    Voilà mon projet avance bien, j'ai mon état ok sous Crystal Report.

    Super bon à présent faut l'ouvrir depuis une application VB : j'utilise Visual Basic 6 (je début dessus ça va rien arranger)

    --> j'ai donc crée un nouveau projet

    --> j'ai déclaré dans les références "Crystal Report Viewer control 9" (CRVIEWER9Lib)


    Voici mon premier bout de code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Crystal As New CRViewer9
     
    Private Sub Form_Load()
     
     
    Crystal.ReportSource = "c:\test.rpt"
     
     
    End Sub
    VB me retourne pour "c:\test.rpt", type incompatible.




    Si vous avez 5 minutes pour me filer un coup de main, ça m'aiderait vraiment car je galère depuis hier la dessus et je trouve vraiment très peu d'infos sur le net :/

    Merci !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Explicit
    Dim crxApplication As New CRAXDRT.Application
    Public Report As CRAXDRT.Application
    Public FormFrom As String
    Public Crystal As CRViewer9
     
     
    Private Sub form_load()
     
     
    Dim crxDatabaseTable As CRAXDRT.DatabaseTable
    Dim crxParameterField As CRAXDRT.ParameterFieldDefinition
    Dim crxFormulaField As CRAXDRT.FormulaFieldDefinition
    Set Report = crxApplication.OpenReport("c:\test.rpt", 1)
    Je viens de tester ça et idem ça coince :/ --> "type incompatible"

  3. #3
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    C'est plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Report As CRAXDRT.Report
    Tu avais mis Application

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Super ! Merci !
    Sais tu où je peux me documenter sur les fonctions ?

    je cherche à afficher mon état à présent je pense que c'est la fonction Viewreport ....


    Encore merci

  5. #5
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Juste un extrait de mon code pour l'impression :
    Mode 0 = ecran
    Mode 1 = Impression directe
    Mode 2 = Export

    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
        Select Case Mode
        Case 0
     
             Report.PaperOrientation = Orientation
             Set Form = New edt_CrystalReport
             Set Form.Edition = Me
             Form.Show
             hWnd = Form.hWnd
             DoEvents
     
             If Modal Then
                Do While IsWindow(hWnd)
                   DoEvents
                Loop
             End If
     
        Case 1
             Report.SelectPrinter Printer.DriverName, Printer.DeviceName, Printer.Port
             Err = 0
             Report.PaperOrientation = Orientation
             If PageDebut > PageFin Then
                Report.PrintOut False, Copies, CopiesTriées, 1, 32000
             Else
                Report.PrintOut False, Copies, CopiesTriées, PageDebut, PageFin
             End If
             If Err = 0 Then
             ElseIf Err = 20545 Then
                ' Demande annulée
                MsgBox "Opération annulée !", vbExclamation
             Else
                MsgBox "Erreur inattendue !" & Err.Description, vbExclamation
             End If
        Case 2
             With Report.ExportOptions
                  .CharFieldDelimiter = ""
                  .CharStringDelimiter = ""
                  .DestinationType = crEDTNoDestination
                  .DiskFileName = ""
                  .ExcelTabHasColumnHeadings = False
                  .ExchangeDestinationType = crExhangeFolderType
                  .FormatType = crEFTText
             End With
             Err = 0
             Report.Export True
        End Select
    Edt_crystal report est la feuille qui contient le viewer et dans le load de edtcrystalreport, je passe le report au viewer ..

    Bonne continuation.

    PS : désolé, je n'ai pas le temps de t'expliquer le code ligne par ligne ...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Un grand merci à toi : de mon côté j'ai beaucoup avancé.

    Il me reste encore un petit truc qui coince (je vais chercher mais bon si tu as la réponse ...) : au lancement de l'édition il ne met pas à jour les données :-/

  7. #7
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Mais de rien ...
    C'est normal car tu ne lui transmet pas l'emplacement des données,
    donc il ne fait qu'éditer les données contenues dans l'etat.
    Pour le reste penche toi sur les instructions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CrwTable.SetLogOnInfo DataSource, Dossier.BaseSQL, Dossier.UserName, Dossier.PassWord
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CrwTable.Location = xxxxxxx
    il te faut au préalable énumérer les tables contenues dans l'état pour affecter l'emplacement et la connectivité à chacune d'elle.

    Aussi, tu pourrais si tu voulais entièrement reconstruire et repasser la requête à ton état par le report.SqlQueryString
    A+

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    J'ai trouvé un moyen bien plus simple pour mon problème de "refresh" de l'état : sous Crystal Report, menu fichier

    --> il faut décocher "Enregistrer les données avec l'état"


    Voilà

  9. #9
    Membre émérite
    Avatar de L.nico
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Points : 2 679
    Points
    2 679
    Par défaut
    Tu as raison mais il y a un problème.
    car tes données seront rafraichies par rapport à la source de donnée d'origine de l'etat.
    Mais que fais-tu si la source de tes données changent et que tu as 300 etats à modifier.
    Tu modifies les 300 ?? Ben non ...
    C'est pour cela qu'on réaffecte dynamiquement la source de donnée à l'etat juste avant
    son éxecution.
    A+

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Dans mon cas j'ai une base access avec une base et une dizaine de requête.

    Mon programme VB :

    1- Je renseigne une plage de compte et une plage de date
    2- Je lance le traitement depsusi VB (mes requêtes)
    3- J'affiche l'état et je l'imprime

    Voilà c'est tout ! Donc un seul état voir peut être deux à l'avenir.


    Je garde à coin l'affectation dynamique je regarde ça un peu plus tard car mon projet est ulra urgent.


    Merci

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

Discussions similaires

  1. [Report Manager][.NET]Comment afficher ou imprimer un état déjà enregistré
    Par FRED.G dans le forum Autres outils décisionnels
    Réponses: 5
    Dernier message: 24/10/2018, 11h51
  2. [CR 9]Afficher un état depuis une page WEB
    Par fguitch dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 19/05/2006, 17h02
  3. [Image] Afficher une image depuis serveur distant
    Par grinder59 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/05/2006, 10h45
  4. afficher un JDialog depuis une classe JDialog
    Par koolway dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 31/03/2006, 14h47
  5. Comment afficher un MessageBox depuis une fenêtre réduite ?
    Par cyberma dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/07/2005, 19h16

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