Passer des paramêtres à Crystal report

Résolu
cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009 - 12 déc. 2005 à 17:11
psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008 - 5 janv. 2006 à 11:45
Bonjour

Sous VS 2005, comment passer des paramêtres à CR ?

j'ai utlisé plusieurs méthodes et aucune ne fonctionne :

méthode 1

oRpt = new
ReportDocument
();






oRpt.Load(
"C:\\projet\\rptetat1.rpt");


RVFacture.ReportSource =oRpt;


ParameterField chParametres = new ParameterField();


ParameterFields tbParametres = new ParameterFields();


ParameterDiscreteValue dvValeur = new ParameterDiscreteValue();


// nom champ parametre est chCopie
chParametres.ParameterFieldName = "chCopie";


dvValeur.Value = "COPIE";


chParametres.CurrentValues.Add(dvValeur);

tbParametres.Add(chParametres);

/ RVfacture est mon reportviewer


RVFacture.ParameterFieldInfo = tbParametres;

Méthode 2


oRpt =
new
ReportDocument();


oRpt.Load(
"C:\\projet\\rptetat1.rpt");


RVFacture.ReportSource =oRpt;



oRpt.SetParameterValue(
"chCopie",
"COPIE");

Méthode 3

oRpt = new
ReportDocument
();






oRpt.Load(
"C:\\projet\\rptetat1.rpt");


RVFacture.ReportSource =oRpt;



ParameterValues currentParameterValues =
new
ParameterValues();



ParameterDiscreteValue parameterDiscreteValue =
new
ParameterDiscreteValue();


parameterDiscreteValue.Value =
"COPIE";


currentParameterValues.Add(parameterDiscreteValue);



ParameterFieldDefinitions parameterFieldDefinitions = oRpt.DataDefinition.ParameterFields;



ParameterFieldDefinition parameterFieldDefinition = parameterFieldDefinitions[
"chCopie"];


parameterFieldDefinition.ApplyCurrentValues(currentParameterValues);



Quelqu'un peut me dire koi faire ?

merci
A voir également:

7 réponses

LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 7
13 déc. 2005 à 09:55
OK, et il faudrait ajouter le paramètre avant d'affecter ton rapport à ton objet RVFacture ?
Comme ça :

oRpt = new ReportDocument
();
oRpt.Load( "C:\\projet\\rptetat1.rpt"
);
oRpt.SetParameterValue( "chCopie", "COPIE"
);
RVFacture.ReportSource = oRpt;

Ca change quelque-chose ?
3
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 7
13 déc. 2005 à 05:34
Salut

Moi j' utilise la méthode 2 ( qui fonctionne très bien ! ) donc je m'demande :

As-tu bien ajouté "chCopie"
dans la liste de paramètres de ton rapport ?
( pas par le code, mais à travers le mode design !!! )
0
cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009
13 déc. 2005 à 09:28
oui je l'ai bein ajouté, il apparait dans ma liste ParameterField.
j'ai laisser les paramètres : type string, et discreteValue
0
cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009
13 déc. 2005 à 10:37
Merci

Dans cet ordre là ça marche

oRpt =
new
ReportDocument();


oRpt.Load(
"C:\\projet\"rptetatt1..rpt");


oRpt.SetDataSource(dsResultat);


oRpt.SetParameterValue(
"chCopie",
"");


RVFacture.ReportSource = oRpt;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008
3 janv. 2006 à 09:59
J'ai un léger problème avec cette méthode. Lors de l'éxécution de l'impression, crystal semble ouvrir une fenêtre qui demande les paramètres (que je passe pourtant comme indiqué au dessus). Je me démène depuis plusieurs jours dessus mais sans résultat. J'ai spsé les champs en range dans un dernier espoir. En vain. Ca m'ennui, je trouve crystal vraiment barbare et je ne vois pas d'autre solution pour imprimer. Quelqu'un aurait la réponse à mon problème ?

L'homme était,est et sera un éternel apprenti
0
cs_titi66 Messages postés 120 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 3 mars 2009
4 janv. 2006 à 11:59
Bonjour

As tu bien mis les instructions dans le meme ordre,lorsque j'ai eu des soucis, je me suis rendu compte que cela etait important...
J'avais inversé les 3° et 4° ligne et il m'affichait une fenetre pour saisir mon paramètre à l'exécution.

oRpt = new
ReportDocument();
oRpt.Load(
"C:\\projet\"rptetatt1..rpt");


oRpt.SetDataSource(dsResultat);


oRpt.SetParameterValue(
"chCopie",
"");


RVFacture.ReportSource = oRpt;
0
psycho81 Messages postés 84 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 17 février 2008
5 janv. 2006 à 11:45
Autant pour moi, c'est un paramètre manquant que j'avais oublié de passer et crystal me demandait ce qu'il devrait contenir. Simple omission de ma part. Je vois cependant que crytal fait des choses ...; bizarre. Si le dataset est mis avant les paramètres, le rapport plante. Je trouve çà particulièrement étrange et ... compliqué pour un produit qui coute une somme relativement rondelette. Déjà avec une aversion pour Crystal en VB6, ma deception est encore plus grande dans la .NET.

Désolé de faire mon boulet mais je suis tout de même content que mon rapport marche

L'homme était,est et sera un éternel apprenti
0
Rejoignez-nous