Controller
[HttpPost]
public ActionResult GerarRelatorio(FormCollection f)
{
List<Procedimento> procedimentos = new List<Procedimento>();
for (int i = 0; i < 1000000; i++)
{
procedimentos.Add(new Procedimento {
DataProcedimento = new DateTime(2012,01,01),
MesAnoReferencia = "01/2012",
NomeProcedimento = "Procedimento teste",
Quantidade = i,
ValorProcedimento = Convert.ToDecimal(i)
});
}
Beneficiario b = new Beneficiario {
CodigoBeneficiario = "45454",
Idade = "22",
Nome = "Beneficiário Teste",
Plano = "Standard",
TipoAssociado = "T"
};
Detalhe d = new Detalhe { beneficiario = b, Procedimentos = procedimentos };
Relatorio r = new Relatorio {
periodoInicial = new DateTime(2012,2,01),
periodoFinal = new DateTime(2012,04,01)
};
r.empresa = new Empresa {
Codigo = 1,
Nome = "empresa teste"
};
r.usuario = new Usuario {
Codigo = 1,
Nome = "Usuário teste"
};
List<Detalhe> detalhes = new List<Detalhe>();
detalhes.Add(d);
r.detalhes = detalhes;
var pdf = new ViewAsPdf
{
ViewName = "Teste",
//FileName = f["nomeEmpresa"] + ".pdf",
PageSize = Size.A4,
IsGrayScale = true,
Model = r,
PageMargins = new Margins{Bottom = 5, Left = 5, Right = 5, Top = 5},
};
return pdf;
}
View
model Relatorios.Models.Relatorio
@{
ViewBag.Title = "Teste";
}
<h2>Teste</h2>
@Model.empresa.Codigo
@Model.empresa.Nome
@Model.periodoFinal
@Model.periodoInicial
@foreach (var d in @Model.detalhes) {
<p>@d.beneficiario.Nome</p>
foreach (var p in @d.Procedimentos) {
<p>
@p.DataProcedimento |
@p.MesAnoReferencia |
@p.NomeProcedimento |
@p.Quantidade |
@p.ValorProcedimento
</p>
}
}
Lembrando que os códigos são apenas de teste