Bonjour,
Je suis en cours de TESTS pour passer de Crystal 8 à Crystal XI et je rencontre un problème en ce qui concerne le passage de variables depuis un programme VB6.
Auparavant dans VB6 nous posions l'ocx Crystl32.ocx sur la feuille et pour attaquer les variables posées sur nos Reports cela se faisait de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CrystalReport1.Formulas(0) = "Version='" + VersionVB + "'"
où Version est le nom de la variable du Report (en fait il s'agit d'une formule vide dans le Report) et VersionVB est la variable VB que l'on passe.
Avec Crystal Report XI l'ocx Crystl32.ocx n'existe plus, nous somme donc obligé de passer pas le CrViewer, voici ce que cela donne:
Déclaration:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Public WithEvents m_Report As CRAXDRT.Report
Public m_App As New CRAXDRT.Application
Programme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Set m_Report = m_App.OpenReport("S:\MAGASIN\TEST.RPT", 1)
CrystalReport1.ReportSource = m_Report
m_Report.RecordSelectionFormula = "{@Version}='" + VersionVB + "'"
Et c'est là où se situe le problème ... pas moyen, j'ai mis @ ou pas ...(car j'ai vu dans Crystal XI que quand on rappel les formules il y a un @
Mais dans les deux cas soit le programme me dit
Ce nom de champ est inconnu" avec l'@ ou "langage basic non pris en charge
(un truc comme ça, je l'ai eu qu'une fois) et sans l'@ ça passe mais cela ne fonctionne pas dans le report ...
Je me demande si j'attaque la bonne propriété RecordSelectionFormula...
Il n'y a vraiment rien de documenté sur le net à ce sujet et je ne sais pas quel bouquin acheter pour faire le tour du sujet Crystal XI ...
Merci pour votre aide
SEB.