Como passar parâmetros para o Crystal reports para Visual Studio 2010?Parece que eles são ignorados
-
25-09-2019 - |
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.
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}
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.