Bonjour à tous,

j'ai un rapport crystal qui recupère des donnée d'une base de donnée et auquel je voudrai ajouté une variable venant de mon logiciel sous visual studio 2008 sans pour autant passer par la base de donnée ...

j'ai essayé 3 solutions mais sans succès... :

1ere solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
ReportDocument oRpt = new ReportDocument();
 
oRpt.Load(@"C:\_sources\rje\trunk\Sources\PointNet\RjeConduc\SEPCH023.rpt");
 
oRpt.SetParameterValue("affaire", "36885S");
 
suiviBudget.GetCrystalReportViewer1().ReportSource = oRpt;
cette solution m'affiche une fenetre de saisie (alors que je ne veux rien saisir )
puis une erreur...

solution 2 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
//CR Variables                
ParameterFields crParameterFields;
ParameterField crParameterField;
ParameterValues crParameterValues;
ParameterDiscreteValue crParameterDiscreteValue;
 
 
crParameterFields = suiviBudget.GetCrystalReportViewer1().ParameterFieldInfo;
 
//Access the specified parameter from the collection
crParameterField = crParameterFields["affaire"];
 
//Get the current values from the parameter field.  At this point
//there are zero values set.
crParameterValues = crParameterField.CurrentValues;
 
//Set the current values for the parameter field
crParameterDiscreteValue = new ParameterDiscreteValue();
crParameterDiscreteValue.Value = frmsuivibudget.AffaiId;
 
//Add the second current value for the parameter field
crParameterValues.Add(crParameterDiscreteValue);
 
//Set the modified parameters collection back to the viewer so that
//the new parameter information can be used for the report.
suiviBudget.GetCrystalReportViewer1().ParameterFieldInfo = crParameterFields;
pareil que la première.

solution 3 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
report.Load(@"C:\_sources\rje\trunk\Sources\PointNet\RjeConduc\SEPCH023.rpt");
                report.ParameterFields["affaire"].CurrentValues.AddValue(frmsuivibudget.AffaiId);
Cette solution ne fait rien du tout ...

quelqu'un sait si je dois ajouté quelque chose pour qu'une de ces solutions fonctionne ?

Merci de m'avoir lu..