Crystal report [Résolu]

Signaler
Messages postés
12
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
30 septembre 2008
-
Messages postés
12
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
30 septembre 2008
-
Bonjour à tous

J'utilise visual basic 6 avec crystal report 8.5
Dans crystal report, j'ais créer un rapport externe avec une table sqlserveur rattacher à un DNS
Lorsque je veux changer la source DNS par programmation, crystal me génére toujours une erreur en me disant qu'il utilise mon ancien DNS, les tables dans le rapport son toujours associé à l'ancien DNS.

Voici mon code source

Dim rdApp                   As CRAXDRT.Application
Dim rpt                     As CRAXDRT.Report

Set rdApp = CreateObject("CrystalRuntime.Application")
Set rpt = rdApp.OpenReport(CheminRapport)
SetLocation rpt
CRViewer1.ReportSource = rpt
CRViewer1.ViewReport

Public Sub SetLocation(ByVal rpt As CRAXDRT.Report)
    Dim crxReportObjects            As CRAXDRT.ReportObjects
    Dim crxSection                  As CRAXDRT.Section
    Dim crxSections                 As CRAXDRT.Sections
    Dim crxSubreport                As CRAXDRT.Report
    Dim crxSubreportObj             As CRAXDRT.SubreportObject
    Dim crxTable                    As CRAXDRT.DatabaseTable
    Dim crxTables                   As CRAXDRT.DatabaseTables
    Dim ReportObject                As Object
    Dim Compteur                    As Integer
   
   
    For Each crxTable In rpt.Database.Tables
        crxTable.SetLogOnInfo NomDNS, NomBaseDonnees, NomID, MotPasse
    Next


    Set crxSections = rpt.Sections
    For Each crxSection In crxSections
        Set crxReportObjects = crxSection.ReportObjects
        For Each ReportObject In crxReportObjects
            If ReportObject.Kind = crSubreportObject Then
                Set crxSubreportObj = ReportObject
                Set crxSubreport = crxSubreportObj.OpenSubreport
                Set crxTables = crxSubreport.Database.Tables
                For Compteur = 1 To 50
                   Set crxTable = crxTables.item(Compteur)
                   crxTable.SetLogOnInfo NomDNS, NomBaseDonnees, NomID, MotPasse                Next Compteur
            End If
        Next ReportObject
    Next crxSection
    Exit Sub
Erreur:
End Sub

Merci de votre aide !!

Nymrolda

2 réponses

Messages postés
37
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
20 mai 2016
1
Salut !

J'utilise Crystal Report 9 pour mes rapports et je me connecte directement à la base de donnée (pas de DNS), mais peut-être ton problème est le même que celui que j'avais au début ....

Ton rapport garde en mémoire les paramêtres de connections que tu a utilisé pour créer ton rapport ???

si oui, personnelement j'utilise ceci:                         CrRep.DataBase.Tables(1).ConnectionProperties.DeleteAll

à placer après le chargement du rapport, puis il faut redéclarer toute tes tables utilisée (petit example)

          Set CrRep = CrAppl.OpenReport(App.Path & "\Reports\TH-receipt.rpt")
                        CrRep.DataBase.Tables(1).DllName = "ado.dll"
                        CrRep.DataBase.Tables(1).ConnectionProperties.DeleteAll
                        CrRep.DataBase.Tables(1).ConnectionProperties.Add "Provider", RemoteProvider
                        CrRep.DataBase.Tables(1).ConnectionProperties.Add "Data Source", RemoteServer
                        CrRep.DataBase.Tables(1).ConnectionProperties.Add "User ID", User
                        CrRep.DataBase.Tables(1).ConnectionProperties.Add "Password", Pwd                        
                        CrRep.DataBase.Tables(1).ConnectionProperties.Add "Initial Catalog", Caissedb
                        CrRep.DataBase.Tables(1).Location = Caissedb & ".dbo.caisse"

bien sûr RemoteProvider, RemoteServer, User;Pwd, Caissedb sont des variables...

à voir si tu peux faire quelque chose de semblable avec une connection DNS ?!?

éventuellement une piste à suivre...

à+
JD.
Messages postés
12
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
30 septembre 2008

Merci pour ton aide
J'ais réussi à corriger le problème

Nymrolda