none
reportViewer no mvc 3 RRS feed

  • Pergunta

  • Estou fazendo um projeto em mvc 3 e estou tendo dificuldade em gerar relatórios, tenho algumas dúvidas :

    1 - O melhor de usar reportviewer ou Crystal, o crystal ainda tem a limitação de qtos usuários podem ver o mesmo relatório simultaneamente ?

    2 - Atualizei o meu VS2010 com o sp1 e para usar o razor e acho que isso tb atualizou o reportViewer onde encontro tutoriais sobre report viewer ?


    Junior
    quarta-feira, 18 de maio de 2011 12:58

Respostas

Todas as Respostas

  • Dá uma olhada nesse post do Laércio (MUITO BOM):

    http://social.msdn.microsoft.com/Forums/pt-BR/vsreportingpt/thread/a96182b5-3781-4dbb-9733-65af62d1efec


    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    quarta-feira, 25 de maio de 2011 14:11
  • estou usando MVC3 mas para os relatorios criei views em aspx e adicionei o reportviewer.

    Criei uma base de dados chamada SampleDB no Microsoft SQL server 2008.

    criei uma tabela chamada Customer_Orders

    Codigo da minha view:

    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

    <%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>

    <!DOCTYPE html>
    <script runat="server">

        protected void Page_Load(object sender, EventArgs e)
        {
            string caminho = Server.MapPath("~/Reports/CrystalReport1.rpt");
            CrystalDecisions.CrystalReports.Engine.ReportDocument rptDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            System.Data.DataTable dt = new System.Data.DataTable();
            // Just set the name of data table
            dt.TableName = "Crystal Report Example";
            dt = getAllOrders(); //This function is located below this function
           
            // Your .rpt file path will be below
            rptDoc.Load(caminho);
            //set dataset to the report viewer.
            rptDoc.SetDataSource(dt);
            CrystalReportViewer1.ReportSource = rptDoc;
        }

        public System.Data.DataTable getAllOrders()
        {
            string sql = "select * from Customer_Orders where Cust_ord_id <= 10";
            //Connection string replcae 'databaseservername' with your db server name
            string sqlCon = "data source = 10.10.10.250\\SQLEXPRESS;Initial Catalog=SampleDB;User ID=sa;Password=""";
            System.Data.SqlClient.SqlConnection Con = new System.Data.SqlClient.SqlConnection(sqlCon);
            System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, Con);
            System.Data.DataSet ds = null;
            System.Data.SqlClient.SqlDataAdapter adapter;
            try
            {
                Con.Open();
                //Stored procedure calling. It is already in sample db.
                //cmd.CommandText = "getAllOrders";
                //cmd.CommandType = System.Data.CommandType.StoredProcedure;
                cmd.Connection = Con;
                ds = new System.Data.DataSet();
                adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);
                adapter.Fill(ds, "Users");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                cmd.Dispose();
                if (Con.State != System.Data.ConnectionState.Closed)
                    Con.Close();
            }
            return ds.Tables[0];
        }
    </script>
    <html>
    <head runat="server">
        <title>ViewPage1</title>
    </head>
    <body style="height: 680px">
      
        <form id="form1" runat="server">
        <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
            AutoDataBind="true" />
        </form>
      
    </body>
    </html>

    do HomeController:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;

    namespace MvcApplication3.Controllers
    {
        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                ViewBag.Message = "Welcome to ASP.NET MVC!";

                return View();
            }

            public ActionResult About()
            {
                return View();
            }

            public ActionResult ViewPage1()
            {
                return View();
            }
        }
    }

    e tenho o report criado com crystal report.

    inseri um form no index.cshtml que contem um botao para visualizar o report. O report sai na tela sem nenhum proble mas os botoes no toolbar nao funcionam. o botao de imprimir ao ser clicado faz o refresh da pagina, o de export mostra as opcoes mas nao export o relatorio para nenhum outro formato.

    Entrei para a url acima postado por Tiago_F mas as paginas dos vidoes nao estao ativas.

    por favor me ajudem Urgente se tem alguma solucao para o meu problema. ou alguma outra forma de fazer um relatorio usando crystal reports em MVC3.

    Agradeco antecipadamente pela ajuda

    Banucho Cassamo

    contacto: banucho.cassamo@gmail.com ou banucho.cassamo@database.co.mz ou ainda banucho_cassamo@hotmail.com

    -



    sábado, 8 de outubro de 2011 09:20