Passer des paramêtres à Crystal report [Résolu]

cs_titi66 120 Messages postés mercredi 14 janvier 2004Date d'inscription 3 mars 2009 Dernière intervention - 12 déc. 2005 à 17:11 - Dernière réponse : psycho81 88 Messages postés mardi 4 mai 2004Date d'inscription 17 février 2008 Dernière intervention
- 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
Afficher la suite 

7 réponses

Répondre au sujet
LUDINSKI 441 Messages postés mardi 2 décembre 2003Date d'inscription 22 mai 2012 Dernière intervention - 13 déc. 2005 à 09:55
+3
Utile
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 ?
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de LUDINSKI
LUDINSKI 441 Messages postés mardi 2 décembre 2003Date d'inscription 22 mai 2012 Dernière intervention - 13 déc. 2005 à 05:34
0
Utile
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 !!! )
Commenter la réponse de LUDINSKI
cs_titi66 120 Messages postés mercredi 14 janvier 2004Date d'inscription 3 mars 2009 Dernière intervention - 13 déc. 2005 à 09:28
0
Utile
oui je l'ai bein ajouté, il apparait dans ma liste ParameterField.
j'ai laisser les paramètres : type string, et discreteValue
Commenter la réponse de cs_titi66
cs_titi66 120 Messages postés mercredi 14 janvier 2004Date d'inscription 3 mars 2009 Dernière intervention - 13 déc. 2005 à 10:37
0
Utile
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;
Commenter la réponse de cs_titi66
psycho81 88 Messages postés mardi 4 mai 2004Date d'inscription 17 février 2008 Dernière intervention - 3 janv. 2006 à 09:59
0
Utile
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
Commenter la réponse de psycho81
cs_titi66 120 Messages postés mercredi 14 janvier 2004Date d'inscription 3 mars 2009 Dernière intervention - 4 janv. 2006 à 11:59
0
Utile
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;
Commenter la réponse de cs_titi66
psycho81 88 Messages postés mardi 4 mai 2004Date d'inscription 17 février 2008 Dernière intervention - 5 janv. 2006 à 11:45
0
Utile
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
Commenter la réponse de psycho81

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.