Pergunta

Esta foi a funcionar correctamente no Visual Studio 2008, mas desde que eu mude para o Visual Studio 2010 e o Crystal Reports para Visual Studio 2010, meu passados parâmetros são ignorados.

Eles são exibidos no relatório, apenas ignorado quando se trata da fórmula de seleção!Aqui é o meu código para criar o relatório e passando os parâmetros.

 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 eu executar o relatório da designer ele funciona muito bem.Você pode ver os parâmetros são passados como eu demonstro em meu relatório.

alt text

Para meus relatórios que são executados a partir de procedimentos armazenados os parâmetros parecem passar muito bem, é apenas o que composto de todas as tabelas.

Por que vale a pena, aqui é a minha fórmula de seleção:

 {employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
Foi útil?

Solução

Isso foi resolvido com a mais recente versão do Crystal Reports para Visual Studio 2010.

Outras dicas

Quando você diz "eles não têm passado", o que é que se passou?Eles estão em branco?

Você pode analisar os parâmetros próprios, e apenas sorri para, tentar dar-lhes um nome diferente, algo extra exclusivo.Não poderia ser algo pateta acontecendo com alguns outros relatório de configuração ou a forma como os parâmetros são definidos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top