كيفية تمرير المعلمات إلى Crystal Report for Visual Studio 2010؟ يبدو أنهم يتم تجاهلهم
-
25-09-2019 - |
سؤال
كان هذا يعمل بشكل صحيح في Visual Studio 2008 ، ولكن نظرًا لأني تحولت إلى Visual Studio 2010 و Crystal Reports for Visual Studio 2010 ، يتم تجاهل المعلمات التي تم تمريرها.
يعرضون في التقرير ، تم تجاهلهم فقط عندما يتعلق الأمر بصيغة التحديد! فيما يلي الرمز الخاص بي لإنشاء التقرير وتمرير المعلمات.
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 for Visual Studio 2010.
نصائح أخرى
عندما تقول "لا يتم تمريرهم" ، ما الذي يتم تمريره؟ هل هم فارغون؟
يمكنك مراجعة المعلمات نفسها ، ومحاولة إعطائهم اسمًا مختلفًا ، شيء فريد إضافي. يمكن أن يكون هناك شيء ما يجري مع بعض إعدادات التقارير الأخرى أو الطريقة التي يتم بها تعريف المعلمات.