Crystal Reports – ReportClass – SetParameterValue Vrs SetDataSource

Após um longo tempo apenas mantendo relatórios em crystal reports, eis que surge a necessidade de um novo relatório.

Datasource construído, tipado. Rpt pronto! Mas esperem aí… O nome do usuário responsável pela emissão deve ser apresentado no cabeçalho deste relatório. E agora? Formula ou Parameter Field?

Sempre achei muito rudimentar a atribuição de valores externos ao relatório via Formula Fields…

ReportClass myReport = new ReportClass();
myReport.DataDefinition.FormulaFields["nomeDoUsuarioCorrente"] =
    string.Format("'{0}'", nomeUsuario);

Observem a diferença quando utilizo para o mesmo fim o Parameter Field…

ReportClass myReport = new ReportClass();
myReport.SetParameterValue("nomeDoUsuarioCorrente", nomeUsuario);

Agora, para encerrar, o motivo da criação deste post. Aquela bobagem que nos faz perder, literalmente, horas distribuindo clicks pelo rpt em design time:

“Por que diabos, ao apresentar o relatório (tempo de execução), o crystal exibe um prompt para ser inserido o valor do parametro – exibido no relatório – se eu já o informei previamente?”

Observem os próximos code snippets e tirem suas próprias conclusões.

ReportClass myReport = new ReportClass();
myReport.SetParameterValue("nomeDoUsuarioCorrente", nomeUsuario);
myReport.SetDataSource(myReportDataSource.GetDataSource());

.

ReportClass myReport = new ReportClass();
myReport.SetDataSource(myReportDataSource.GetDataSource());
myReport.SetParameterValue("nomeDoUsuarioCorrente", nomeUsuario);

Dica do autor: o primeiro snippet apresenta o prompt, o segundo não.

T+

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s