Comment passer des paramètres à Crystal Report pour Visual Studio 2010? On dirait qu'ils sont ignorés
-
25-09-2019 - |
Question
fonctionnait correctement dans Visual Studio 2008, mais depuis que je suis passer à Visual Studio 2010 et Crystal Reports pour Visual Studio 2010, mes paramètres passés sont ignorés.
Ils affichent dans le rapport, tout simplement ignoré quand il vient à la formule de sélection! Voici mon code pour créer le rapport et en passant 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();
}
Quand je lance le rapport du designer il fonctionne très bien. Vous pouvez voir les paramètres sont passés comme je les affiche dans mon rapport.
Pour mes rapports qui exécutent des procédures stockées les paramètres semblent passer très bien, il est seulement ceux composés de toutes les tables.
Pour ce que ça vaut la peine, voici ma sélection formule:
{employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
La solution
Cela a été résolu avec la dernière version de Crystal Reports pour Visual Studio 2010.
Autres conseils
Quand vous dites « ils ne sont pas passés », ce qui ne se passé? Sont-ils en blanc?
Vous pouvez revoir les paramètres eux-mêmes, et juste pour des grimaces, essayez de leur donner un nom différent, quelque chose de plus unique. Il pourrait y avoir quelque chose loufoque passe avec un autre paramètre de rapport ou la façon dont les paramètres sont définis.