Como gerar um PDF a partir de uma definição de relatório incorporado sem servidor ou UI?
-
02-07-2019 - |
Pergunta
É possível que um autônomo executável para gerar um relatório e sua saída será em formato PDF (ou uma das outras opções de exportação disponíveis a partir do visualizador de relatórios), sem exibir o controle ReportViewer?
A definição do relatório deve ser incorporado no executável e não deve utilizar o serviço Web do Reporting Services.
Solução
Na verdade, você não precisa de um ReportViewer em tudo, você pode diretamente instanciar e usar um LocalReport:
LocalReport report = new LocalReport();
report.ReportPath = "templatepath";
// or use file from resource with report.ReportEmbeddedResource
// add parameters, datasource, etc.
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;
byte[] bytes;
bytes =report.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);
// save byte[] to file with FileStream or something else
Outras dicas
Você não tem que mostrar o próprio controle.
ReportViewer rv = new ReportViewer();
rv.LocalReport.ReportPath = "templatepath";
// or use file from resource with rv.LocalReport.ReportEmbeddedResource
// add parameters, datasource, etc.
Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;
byte[] bytes;
bytes = rv.LocalReport.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);
// save byte[] to file with FileStream or something else
No entanto, pode renderizar somente PDF e XLS (como controle ReportViewer não pode exportar para o Word e outros como Reportig Serviço pode).
Eu esqueci de mencionar que o código acima é C #, usando o framework .NET e controle ReportViewer. Confira GotReportViewer para um início rápido.
Você pode passar um relatório .rdlc diretamente ao pdf com os parâmetros? Eu tenho dois dropdownlists que eu puxar o meu relatório com. Eu não posso obter os parâmetros para o trabalho ao exportar automaticamente para pdf. Aqui está o erro que eu recebo: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:. Um ou mais parâmetros necessários para executar o relatório não foram especificados
Os dropdownlists funciona quando eu uso o reportviewer, mas eu quero pular essa etapa. Eu também pode obter meus dados para ir diretamente para um pdf, se ele não tem nenhum parâmetro. Meus dropdownlists são chamados ddlyear e ddlmonth.