Usuário com melhor resposta
Relatório no Crystal Report em um aplicação MVC

Pergunta
-
Bom dia,
Pessoal estou tentando criar em meu projeto C# Windows Form um relatório dentro do Crystal que vai funcionar como um recibo para o cliente e nele deve conter os dados do cliente bem como os itens da venda entre outro o meu problema esta em gerar esse relatório em MCV pois precisava que esses dados viessem de métodos das classes e não diretamente do banco de dados se puderem me ajudar
- Editado Michelmax1 quinta-feira, 11 de dezembro de 2014 11:29 erro de digitação
Respostas
-
Na Controller você busca o relatorio e o prepara para ser apresentado, no Form vai ter que ter um controle do Crystal reports para apresentar o relatório.
http://csharp.net-informations.com/crystal-reports/csharp-crystal-reports-stepbystep.htm
http://www.devmedia.com.br/codificacao-e-resultado-final-do-projeto-relatorios-com-crystal-reports-em-windows-forms-com-c-parte-2/22239
- Marcado como Resposta Michelmax1 quinta-feira, 11 de dezembro de 2014 19:29
Todas as Respostas
-
O mesmo relatório que você usar na aplicação Windows Forms pode também ser usada no Asp.Net MVC, a diferença é que você vai apresentar como PDF na página WEB
public ActionResult DetailsReport() { ReportClass rptH = new ReportClass(); rptH.FileName = Server.MapPath("~/Content/Reports/CrystalReport.rpt"); rptH.Load(); //GetAllCustomers() return a list of Custom type rptH.SetDataSource(ToDataTable<Customer>(Customer.GetAllCustomers())); Stream stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); return File(stream,"application/pdf"); } //Cast the list<T> to DataTable type private DataTable ToDataTable<T>( List<T> data) { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T)); DataTable table = new DataTable(); for (int i = 0; i < props.Count; i++) { PropertyDescriptor prop = props[i]; table.Columns.Add(prop.Name, prop.PropertyType); } object[] values = new object[props.Count]; foreach (T item in data) { for (int i = 0; i < values.Length; i++) { values[i] = props[i].GetValue(item); } table.Rows.Add(values); } return table; }
-
-
-
-
Na Controller você busca o relatorio e o prepara para ser apresentado, no Form vai ter que ter um controle do Crystal reports para apresentar o relatório.
http://csharp.net-informations.com/crystal-reports/csharp-crystal-reports-stepbystep.htm
http://www.devmedia.com.br/codificacao-e-resultado-final-do-projeto-relatorios-com-crystal-reports-em-windows-forms-com-c-parte-2/22239
- Marcado como Resposta Michelmax1 quinta-feira, 11 de dezembro de 2014 19:29