Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports
Crystal Reports Forum d'entraide sur Crystal Reports. Avant de poster --> FAQ Crystal, Tutoriels Crystal
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 02/12/2004, 11h45   #1
Nouveau Membre du Club
 
Inscription : juin 2003
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 38
Points : 32
Points : 32
Par défaut [Crystal 7] Error in file links

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:
Code :
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:

Code :
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:
Citation:
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.
Stoune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2004, 13h21   #2
Membre du Club
 
Avatar de Isa31
 
Inscription : octobre 2004
Messages : 246
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 246
Points : 66
Points : 66
Salut
Quand tu fais un état avec CR il te faud définir la base de donnée dans le report ou alors la passer en paramètre, ça fait un moment que je n'utilise plus CR, donc je ne sais plus comment on le passe. Mais je sais qu'il y a un paramètre pour la changer.
Isa31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2004, 13h49   #3
Nouveau Membre du Club
 
Inscription : juin 2003
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 38
Points : 32
Points : 32
Salut, et merci pour ta reponse.

Dans vb, j'ai effectivement la possibilité d'utiliser
Code :
1
2
3
CrystalReport1.DataSource
'ou encore
CrystalReport1.DataFiles
Mais le probleme, c'est que si je fais ca, ca signifie que dans mon report, je n'ai plus de database definie, et je vois pas comment je peux dire a mon formula field (ou a la limite un Database field) d'utiliser la database passer en paramètres, mais de bien prendre les bons champs des bonnes tables que j'aurais défini...(je sais pas si c'est tres clair la)

Et s'il faut créer tout mon report a la volée, en lui passant tout les fields etc, ca va etre bien chi**t aussi, je crois que je prefere encore faire autant de fichier que de bqse de données si c'est ca...

Maintenant, s'il ya une solution simple pour changer le datasource de mes fields, je suis preneur a 200%!
Stoune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2004, 13h50   #4
Membre du Club
 
Avatar de Isa31
 
Inscription : octobre 2004
Messages : 246
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 246
Points : 66
Points : 66
Non moi je passais en plus le nom de la table dans le code, mais j'en avais une qui été mise par défaut dans le report, tu n'as rien à recréer, tu fais comme tu le disais au début, tu n'as qu'a modifier la façon dont tu passe le nom de la base.
Isa31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2004, 14h15   #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
et si tu essaies ça !! (syntaxe crystal) :

Code :
1
2
3
IF {?DATABASE} = 'COLOMBO' then {Audit_Trail_Ref.PrevValue}; 
IF {?DATABASE} = 'NOBILE' then {RefNobile.PrevValue}; 
IF {?DATABASE} = 'POLO' then {RefPolo.PrevValue};
ou tu peux utiliser un select case (syntaxe basic) :

Code :
1
2
3
4
5
6
7
8
SELECT Case {?DATABASE}
          Case 'COLOMBO'
                  Formula = {Audit_Trail_Ref.PrevValue}
          Case 'NOBILE'
                  Formula = {RefNobile.PrevValue}
          Case 'POLO'
                  Formula = {RefPolo.PrevValue}
End SELECT
juste pour voir si le problème persiste ....
__________________
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 02/12/2004, 15h21   #6
Nouveau Membre du Club
 
Inscription : juin 2003
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 38
Points : 32
Points : 32
Salut L.Nico

Ta premiere solution ne fonctionne pas, c'est meme pire on dirait, parceque meme pour la table qu'il arrive a linker, le report n'affiche plus les records...

Pour ta deuxieme solution, je n'ai pas bien compris, ce serait dans mon code VB que j'integre cette fonction, et qui irait modifier les formulas enregistrer dans mon fichier rpt?

Pour isa31, j'ai essayé aussi de passer la database en paramètres depuis le code VB, mais ca n'a pas l'air de marcher mieux non plus...

Je laisse encore le sujet ouvert au cas ou, mais je crois que je vais me résigner a faire un report par database et comme ca au moins ca fonctionnera...

Merci en tout cas
Stoune est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h39.


 
 
 
 
Partenaires

Hébergement Web