Envoie de données à un CrystalReport

Résolu
maxelpiratos Messages postés 43 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 30 janvier 2006 - 3 janv. 2006 à 10:42
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 - 4 janv. 2006 à 10:57
Bonjour,

Voilà je suis embété car j'ai dans mon CrystalReport deux champs de paramètre (selectnom et selectemail) que je veux faire remplir par une requete à partir d'un formulaire. Pour l'instant je passe les valeurs directement mais ca ne marche pas et je ne comprend pas pourquoi. voici le code :


//liste des parametres à passer


ParameterFields myParameterFields =
new ParameterFields();



// parametre


ParameterField myParameterField_nom;


ParameterField myParameterField_email;



// valeur du parametre


ParameterDiscreteValue myDiscreteValue_nom;


ParameterDiscreteValue myDiscreteValue_email;


myParameterField_nom =
new ParameterField();


myDiscreteValue_nom =
new ParameterDiscreteValue();


myParameterField_nom.ParameterFieldName = "selectnom"; //nom du champs dans mon CrystalReport


myDiscreteValue_nom.Value = "jameau"; //nom que j'essaie d'envoyer au Crystal


myParameterField_nom.CurrentValues.Add(myDiscreteValue_nom);


myParameterFields.Add(myParameterField_nom);



// on donne la liste des parametre au viewver



this.crystalReportViewer1.ParameterFieldInfo = myParameterFields;

si quelqu'un à une idée! merci d'avance!!!

3 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
4 janv. 2006 à 09:09
Je sais pas trop , ca m'a l'air bien , je te mets un exemple testé de passage de paramètre. J'imagine que tu as du vérifier trois fois le nom du champs et le fait que ce champs soit bien un champs de paramètre dans ton état. Si tu dis que ca ne marche pas, cela signifie donc qu'il te demande ces valeurs quand tu lances l'appercu, sinon , si il n'y a rien ,c'est que le passage de paramètre est bon et que le problème est ailleurs.

//liste des parametres à passer


ParameterFields myParameterFields =
new ParameterFields();



// on définit le paramètre à passer au viewer pour la personalisation



// parametre


ParameterField myParameterField;



// valeur du parametre


ParameterDiscreteValue myDiscreteValue;





myParameterField =
new ParameterField();


myDiscreteValue =
new ParameterDiscreteValue();


myParameterField.ParameterFieldName = "ChampsFiltre";


myDiscreteValue.Value = Perso;


myParameterField.CurrentValues.Add(myDiscreteValue);


myParameterFields.Add(myParameterField);


// on donne la liste des parametre au viewver


crViewList.ParameterFieldInfo = myParameterFields;



// on défint l'état que doit afficher le viewer


etat =
new ecrList();



// on donne la source de l'état


etat.SetDataSource(pList);



//on dit au viewer que c'est cet état qu'il faut afficher


crViewList.ReportSource =
this.etat;


Be happy , by
Tao
3
maxelpiratos Messages postés 43 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 30 janvier 2006
4 janv. 2006 à 10:30
bonjour,



merci de ta réponse, j'ai encore une petite question, je n'ai pas mis la partie



// on défint l'état que doit afficher le viewer




etat =
new ecrList();




// on donne la source de l'état




etat.SetDataSource(pList);




//on dit au viewer que c'est cet état qu'il faut afficher




crViewList.ReportSource =
this.etat;





parce que je ne la comprend pas bien et pourtant ca marche quand meme!

pourquoi doit on définir l'état que doit afficher le viewer? c dans le
cas ou on en crait plusieurs dans des classes différentes?



merci d'avance!
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
4 janv. 2006 à 10:57
quand tu lances l'appercu avant impression, tu lui donne bien le nom de l'état que tu veux imprimer
donc tu doit bien avoir quelque part, tu ne l'as peut etre pas écrit dans le code, tu l'as spécifié au niveau du design et donc, le code a été généré automatiquement.

pour ca :


// on donne la source de l'état


etat.SetDataSource(pList);

Quand j'affiche mon appercu avant écran, je ne lance pas de requete, j'ai déjà chargé et travaillé sur les données à imprimer, donc, je lui spécificie que la source de données est ma datatable qui est déjà rempli.

Tu n'as donc pas forcément besoin de ca si tu charges tes données depuis une bdd lors du lancement de l'état.


Be happy , by
Tao
0
Rejoignez-nous