كيفية تمرير المعلمات إلى Crystal Report for Visual Studio 2010؟ يبدو أنهم يتم تجاهلهم

StackOverflow https://stackoverflow.com/questions/4205541

سؤال

كان هذا يعمل بشكل صحيح في 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();
    }

عندما أقوم بتشغيل التقرير من المصمم ، فإنه يعمل بشكل جيد. يمكنك رؤية المعلمات يتم تمريرها لأنني أعرضها في تقريري.

alt text

بالنسبة لتقاريري التي تعمل من الإجراءات المخزنة ، يبدو أن المعلمات تمر بشكل جيد ، إنها فقط تلك المكونة من جميع الجداول.

لما يستحق ، إليك صيغة الاختيار الخاصة بي:

 {employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
هل كانت مفيدة؟

المحلول

تم حل هذا مع أحدث إصدار من Crystal Reports for Visual Studio 2010.

نصائح أخرى

عندما تقول "لا يتم تمريرهم" ، ما الذي يتم تمريره؟ هل هم فارغون؟

يمكنك مراجعة المعلمات نفسها ، ومحاولة إعطائهم اسمًا مختلفًا ، شيء فريد إضافي. يمكن أن يكون هناك شيء ما يجري مع بعض إعدادات التقارير الأخرى أو الطريقة التي يتم بها تعريف المعلمات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top