Estoy tratando de imprimir un archivo RDLC directamente sin mostrar Microsoft Report Viewer, he seguido el MSDN's example pero ahora, cada vez que llamo al método "Render" de mi instancia de la clase LocalReport arroja el "Uno o más parámetros necesarios para ejecutar el informe no se han especificado". excepción.Uno o más parámetros necesarios para ejecutar el informe no se han especificado
¿Alguien me puede decir qué parámetro es necesario que haya omitido? o ¿cómo puedo encontrar más detalles sobre esta excepción?
LocalReport report = new LocalReport();
report.ReportPath = System.Windows.Forms.Application.StartupPath + "\\" + rdlcFileName;
report.EnableExternalImages = true;
ReportParameter[] reportParams = new ReportParameter[]
{
new ReportParameter("LogoAddress", settings.LogoFileName),
new ReportParameter("FooterValue", settings.InvoicesFooter)
};
report.SetParameters(reportParams);
report.DataSources.Add(new ReportDataSource("Invoice", new PrintableInvoice[] { invoice }));
report.DataSources.Add(new ReportDataSource("InvoiceItem", invoiceItems));
Warning[] warnings;
try
{
string deviceInfo =
"<DeviceInfo>" +
" <OutputFormat>EMF</OutputFormat>" +
" <PageWidth>8.5in</PageWidth>" +
" <PageHeight>11in</PageHeight>" +
" <MarginTop>0.25in</MarginTop>" +
" <MarginLeft>0.25in</MarginLeft>" +
" <MarginRight>0.25in</MarginRight>" +
" <MarginBottom>0.25in</MarginBottom>" +
"</DeviceInfo>";
m_streams = new List<Stream>();
report.Render("Image", deviceInfo, _CreateStream, out warnings);
foreach(Stream stream in m_streams)
stream.Position = 0;
}
catch(Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
y la _CreateStream es:
private Stream _CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)
{
Stream stream = new FileStream(name + "." + fileNameExtension, FileMode.Create);
m_streams.Add(stream);
return stream;
}
respuesta encontrado en: http://social.msdn.microsoft.com/Forums/zh/vsreportcontrols/thread/7cce3c91-f876-417a-81cc-10e10dde0e40 – MilkyWayJoe