Here is my code
Code: Select all
private StiReport ConfigurarStiReportTeste(byte[] arquivoRelatorioPrincipal, IEnumerable<DatasetPdfReportDTO> dados)
{
var report = new StiReport();
report.Load(arquivoRelatorioPrincipal);
report.CacheAllData = true;
report.Dictionary.DataSources.Clear();
foreach (var dado in dados)
{
report.RegData(dado.NomeDicionario, dado.Dados);
}
report.Dictionary.Synchronize();
report.GetSubReport += new StiGetSubReportEventHandler(Report_GetSubReport);
report.Render(false);
return report;
}
//meu Método
private void Report_GetSubReport(object sender, StiGetSubReportEventArgs e)
{
foreach(var dados in dadosSubReports)
{
byte[] arquivoSubrelatorio = ObterArquivoRelatorio(dados.IdentificacaoSubRelatorio);
var subreport = new StiReport();
subreport.Load(arquivoSubrelatorio);
subreport.CacheAllData = true;
subreport.Dictionary.DataSources.Clear();
subreport.RegData(dados.NomeDicionario, dados.Dados);
subreport.Dictionary.Synchronize();
e.Report = subreport;
}
}