Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports > SDK
SDK Forum sur l'utilisation de Crystal Reports par des API (VB, C++, Delphi, Java, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2004, 16h55   #1
Membre à l'essai
 
Inscription : novembre 2004
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 40
Points : 20
Points : 20
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 :
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 !
Falconpage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2004, 17h45   #2
Membre à l'essai
 
Inscription : novembre 2004
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 40
Points : 20
Points : 20
Code :
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"
Falconpage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2004, 17h56   #3
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
C'est plutôt :

Code :
Public Report AS CRAXDRT.Report
Tu avais mis Application
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2004, 18h02   #4
Membre à l'essai
 
Inscription : novembre 2004
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 40
Points : 20
Points : 20
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
Falconpage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2004, 11h58   #5
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
Juste un extrait de mon code pour l'impression :
Mode 0 = ecran
Mode 1 = Impression directe
Mode 2 = Export

Code :
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 ...
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2004, 16h53   #6
Membre à l'essai
 
Inscription : novembre 2004
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 40
Points : 20
Points : 20
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 :-/
Falconpage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2004, 17h08   #7
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
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 :
CrwTable.SetLogOnInfo DataSource, Dossier.BaseSQL, Dossier.UserName, Dossier.PassWord
et

Code :
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+
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2004, 08h59   #8
Membre à l'essai
 
Inscription : novembre 2004
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 40
Points : 20
Points : 20
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à
Falconpage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2004, 09h22   #9
Modérateur
 
Avatar de L.nico
 
Homme Nicolas LAURET
Chef de projet en SSII
Inscription : novembre 2003
Messages : 1 024
Détails du profil
Informations personnelles :
Nom : Homme Nicolas LAURET
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2003
Messages : 1 024
Points : 1 744
Points : 1 744
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+
__________________
Modérateur Business Intelligence / Windev

A lire avant de poster
Si vous avez obtenu la réponse à votre question alors cliquez sur le bouton
L.nico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2004, 11h46   #10
Membre à l'essai
 
Inscription : novembre 2004
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 40
Points : 20
Points : 20
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
Falconpage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h48.


 
 
 
 
Partenaires

Hébergement Web