這是在Visual Studio 2008中正常工作,但由於我已切換到Visual Studio 2010和Crystal Reports for Visual Studio 2010,我傳遞的參數將被忽略。如何將參數傳遞給Visual Studio 2010的Crystal Report?看起來像他們被忽略
它們顯示在報告中,只是在選擇公式時忽略!這是我創建報告和傳遞參數的代碼。
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();
}
當我從設計器運行報告時,它工作得很好。您可以看到參數正在傳遞,因爲我在報告中顯示了它們。
對於我的報道說,從存儲過程運行參數似乎傳遞就好了,它只是所有表組成的。
對於它的價值,這是我的選擇公式:
{employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
最新版本的Crystal Reports即使我只是試圖讓水晶報表提示他們沒有得到傳遞的參數。 – mattruma 2010-11-17 14:53:14
真正奇怪的是,如果我逐步瀏覽代碼,並在運行時查看參數的值,它會正確顯示。 – mattruma 2010-11-17 15:00:08
所以我切換了我的報告使用存儲過程,它的工作......但我不應該這樣做......呃! – mattruma 2010-11-17 21:28:59