Bonjour à tous,
Je développe actuellement un module pour une application qui permet d'avoir un report de certaines données dans crystal.
Cette application utilise trois bases de données access différentes, selon un paramètres qui lui est passé au démarrage dans la ligne de commande.
Dans ces trois bases de données, il existe des tables similaires sur lesquels se base mon report.
J'ai donc choisi de ne faire qu'un seul report, avec un parameter Field qui s'apelle database, et pour lequel je passe le nom de ma database depuis mon code VB.
C'est a dire:
CrystalReport1.ParameterFields(1) = "Database;" & DBName & ";True"
Comme dans n'importe laquelle des bases je regarde la meme table et les memes champs, j'ai donc mis dans mon report des formulas field, avec leur formules étant de ce type:
1 2 3 4 5 6 7 8
| if {?Database} = 'COLOMBO' then
{Audit_Trail_Ref.PrevValue}
else
if {?Database} = 'NOBILE' then
{RefNobile.PrevValue}
else
if {?Database} = 'POLO' then
{RefPolo.PrevValue} |
Cela fonctionne bien, la formule est valide.
Le probleme est que lorsque la base de donnée n'est pas "colombo", les données ne sont pas affichées dans mon report, et j'obtiens le message suivant:
Error in file links
Warning : Fields in the report from the file "RefPolo" cannot be linked
Je n'ai aucune idée de la provenance de cette erreur.
Depuis crystal, en mode creation, je peux pourtant faire un browse data sur mes champs RefPolo.quelquechose, et j'obtiens bien les données de ma table.
Est ce que cela pourrait provenir du fait que dans chacune des bases les tables possèdent le meme nom, et donc que les alias que j'ai créé pour contourner ce problème sont mal interprétés?
Je n'arrive pas a trouver de solution, au pire des cas, je ferais un fichier par database à utiliser, mais je trouve cela moins "propre"
Merci d'avance pour votre aide.
Partager