Domanda

Funzionava correttamente in Visual Studio 2008, ma da quando sono passato a Visual Studio 2010 e Crystal Reports per Visual Studio 2010, i miei parametri passati vengono ignorati.

Visualizzano nel rapporto, semplicemente ignorati quando si tratta della formula di selezione! Ecco il mio codice per la creazione del report e il passaggio dei parametri.

 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();
    }

Quando eseguo il rapporto dal designer, funziona bene. Puoi vedere che i parametri vengono passati mentre li sto visualizzando nel mio rapporto.

alt text

Per i miei rapporti che vanno dalle procedure memorizzate i parametri sembrano passare bene, sono solo quelli composti da tutte le tabelle.

Per quello che vale, ecco la mia formula di selezione:

 {employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
È stato utile?

Soluzione

Questo è stato risolto con l'ultima versione di Crystal Reports per Visual Studio 2010.

Altri suggerimenti

Quando dici "non vengono passati", cosa viene superato? Sono vuoti?

Potresti rivedere i parametri stessi e solo per i sorrisi, provare a dare loro un nome diverso, qualcosa di extra unico. Potrebbe esserci qualcosa di sciocco in corso con qualche altra impostazione del report o nel modo in cui sono definiti i parametri.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top