Cela fonctionnait correctement dans Visual Studio 2008, mais depuis que j'ai basculé vers Visual Studio 2010 et Crystal Reports pour Visual Studio 2010, mes paramètres passés sont ignorés.Comment transmettre des paramètres à Crystal Report pour Visual Studio 2010? On dirait qu'ils sont ignorés
Ils s'affichent dans le rapport, juste ignorés quand il s'agit de la formule de sélection! Voici mon code pour créer le rapport et passer les paramètres.
private void Prepare()
{
var reportDocument = new ReportDocument();
string reportPath = string.Format(
"{0}\\{1}",
Globals.FormPath,
this.FormTemplate.Filename);
reportDocument.Load(reportPath);
ParameterDiscreteValue parameter;
foreach (var control in this.FormTemplateFieldControls)
{
switch (control.FormTemplateField.DataType)
{
case FormFieldDataType.Date:
this.AddParameterForDateTime(
reportDocument,
control.FormTemplateField.Name,
(DateTime)control.EditValue);
break;
case FormFieldDataType.DateTime:
this.AddParameterForDateTime(
reportDocument,
control.FormTemplateField.Name,
(DateTime)control.EditValue);
break;
case FormFieldDataType.Time:
this.AddParameterForDateTime(
reportDocument,
control.FormTemplateField.Name,
(DateTime)control.EditValue);
break;
case FormFieldDataType.Guid:
this.AddParameterForGuid(
reportDocument,
control.FormTemplateField.Name,
(Guid)control.EditValue);
break;
default:
this.AddParameterForString(
reportDocument,
control.FormTemplateField.Name,
control.EditValue.ToString());
break;
}
}
this.SetConnectionInfo(reportDocument);
var frm = new FormViewer();
frm.Report = reportDocument;
frm.ShowDialog();
frm.Dispose();
this.Close();
}
Lorsque j'exécute le rapport du concepteur, cela fonctionne très bien. Vous pouvez voir que les paramètres sont passés car je les affiche dans mon rapport.
Pour mes rapports qui vont de procédures stockées semblent les paramètres à passer très bien, il est juste ceux composés de toutes les tables.
Pour ce que ça vaut la peine, voici ma formule de sélection:
{employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
Même si j'essaie simplement laisser rapidement Crystal Reports pour les paramètres ne sont pas passés. – mattruma
Ce qui est vraiment bizarre, c'est que si je parcours le code, et regarde les valeurs des paramètres au moment de l'exécution, il s'affiche correctement. – mattruma
Donc, j'ai changé mon rapport pour utiliser une procédure stockée et cela a fonctionné ... mais je ne devrais pas avoir à faire cela ... pouah! – mattruma