none
Chamar o Relatório do Crystal Report numa pagina RRS feed

  • Pergunta

  • Boa tarde a todos gostaria que alguem me ajudasse nesse problema tenho um pagina em crystal que quero chama-la numa aspx assim esta o codigo

    aspx

    <%@ Page Title="" Language="C#" MasterPageFile="~/ProjetoClaro.Master" AutoEventWireup="true" CodeBehind="Relatorio.aspx.cs" Inherits="ProjetoClaro.Relatorio1" %>
    <%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" />

    </asp:Content>

    CS

                                                   

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using CrystalDecisions.ReportSource;
    using CrystalDecisions.Shared;
    using CrystalDecisions.CrystalReports.Engine;
    using System.IO;
    using CrystalDecisions.ReportSource;
    using CrystalDecisions.Shared;
    using CrystalDecisions.CrystalReports.Engine; 

    namespace ProjetoClaro
    {
        public partial class Relatorio1 : System.Web.UI.Page
        {
            CrystalDecisions.CrystalReports.Engine.ReportClass relatorio = new CrystalDecisions.CrystalReports.Engine.ReportClass();
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    CarregaRelatorio();
                }
            }

            private void CarregaRelatorio()
            {

                    //Título da página
                    Page.Title = "Relatório";
                    //Conexão com o banco de dados

                    SqlConnection con = null;
                    Conexao myConexao = new Conexao();
                    con = myConexao.getConexaoBD();
                    con.Open();
                    SqlCommand Cmd = con.CreateCommand();
                    //Select que retorna 06 produtos
                    Cmd.CommandText = "EXEC SP_RELATORIOSLA";
                    SqlDataAdapter Da = new SqlDataAdapter(Cmd);
                    DataTable dt = new DataTable();
                    Da.Fill(dt);
                    con.Close();
                    //Local que está o relatório
                    relatorio.FileName = Server.MapPath("Relatorio.rpt");
                    //Define o DataDource do Relatório
                    relatorio.SetDataSource(dt);
                    //Visualiza o relatório
                    CrystalReportViewer1.ReportSource = relatorio;
                    CrystalReportViewer1.DataBind();

            }       
        }
    }

    porem quendo passar a pagina ficar em branco

    segunda-feira, 26 de agosto de 2013 18:53

Respostas

  • Hiago geralmente faço assim:

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CrystalDecisions.CrystalReports.Engine; using IASD.CMS.Management.school.students.report; using IASD.CMS.Management.treasury.tour.transporter.report; using IB = IASD.CMS.Business; namespace IASD.CMS.Management.treasury.tour.reports.insurance.report { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {

    //Estancia Relatório rpt ReportDocument crReportDocument = new ReportDocument(); //estancia dataset dsInsuranced dsRelatorio = new dsInsuranced(); //mergia dataset com meu datasourse dsRelatorio.dtTrav.Merge(IB.Traveler.ListDTtravellerInsurance(int.Parse(Request.QueryString[0]), int.Parse(Request.QueryString[1]), int.Parse(Request.QueryString[2]))); int counts = dsRelatorio.dtTrav.Rows.Count; IB.Tour var = IB.Tour.ListTourBySchoolItem(int.Parse(Request.QueryString[0]), int.Parse(Request.QueryString[1])); IB.Tour var2 = IB.Tour.ListTourItem(int.Parse(Request.QueryString[2]), int.Parse(Request.QueryString[0]), int.Parse(Request.QueryString[1])); //mostra onde esra o arquivo .rot crReportDocument.Load(Server.MapPath("crInsurance.rpt")); //mostra qual dataset vai preencher o .rpt crReportDocument.SetDataSource(dsRelatorio);

    //parametros Core.Util.RelatorioCrystal.SetParameter("Total", crReportDocument, counts.ToString()); Core.Util.RelatorioCrystal.SetParameter("Tour", crReportDocument, var2.Name); Core.Util.RelatorioCrystal.SetParameter("Escola", crReportDocument, var.Adress); //crReportDocument.DataDefinition.FormulaFields["entidade"].Text = "\"" + UsuarioAutenticado.Entidade + "\""; //crReportDocument.DataDefinition.FormulaFields["codigo"].Text = "\"" + UsuarioAutenticado.Codigo + "\""; //crReportDocument.DataDefinition.FormulaFields["nome"].Text = "\"" + UsuarioAutenticado.Nome + "\""; //crReportDocument.DataDefinition.FormulaFields["periodo"].Text = "\"" + PeriodoAtual.Desc_Periodo + "\""; //crReportDocument.DataDefinition.FormulaFields["valor_total"].Text = "\"" + Session["Valor_Total"].ToString() + "\""; //Utilizando Viewer // crPrintPreview.ReportSource = crReportDocument; //Utilizando exportação para pdf BinaryReader stream = new BinaryReader(crReportDocument.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.BinaryWrite(stream.ReadBytes(Convert.ToInt32(stream.BaseStream.Length))); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); } } }


    Espero que ajude.


    Moizés Cerqueira | MCP / MCTS SQL SERVER

    • Marcado como Resposta Hiago da Silva quarta-feira, 28 de agosto de 2013 18:16
    quarta-feira, 28 de agosto de 2013 18:10

Todas as Respostas

  • aspx

    <%@ Page Title="" Language="C#" MasterPageFile="~/ProjetoClaro.Master" AutoEventWireup="true" CodeBehind="Relatorio.aspx.cs" Inherits="ProjetoClaro.Relatorio1" %>
    <%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" />

    </asp:Content>



    terça-feira, 27 de agosto de 2013 14:50
  • Lucas Boa tarde você apenas deu ctrl C ctrl V no que eu tinha feito mais não explico o porque do erro 
    terça-feira, 27 de agosto de 2013 18:42
  • Hiago geralmente faço assim:

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CrystalDecisions.CrystalReports.Engine; using IASD.CMS.Management.school.students.report; using IASD.CMS.Management.treasury.tour.transporter.report; using IB = IASD.CMS.Business; namespace IASD.CMS.Management.treasury.tour.reports.insurance.report { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {

    //Estancia Relatório rpt ReportDocument crReportDocument = new ReportDocument(); //estancia dataset dsInsuranced dsRelatorio = new dsInsuranced(); //mergia dataset com meu datasourse dsRelatorio.dtTrav.Merge(IB.Traveler.ListDTtravellerInsurance(int.Parse(Request.QueryString[0]), int.Parse(Request.QueryString[1]), int.Parse(Request.QueryString[2]))); int counts = dsRelatorio.dtTrav.Rows.Count; IB.Tour var = IB.Tour.ListTourBySchoolItem(int.Parse(Request.QueryString[0]), int.Parse(Request.QueryString[1])); IB.Tour var2 = IB.Tour.ListTourItem(int.Parse(Request.QueryString[2]), int.Parse(Request.QueryString[0]), int.Parse(Request.QueryString[1])); //mostra onde esra o arquivo .rot crReportDocument.Load(Server.MapPath("crInsurance.rpt")); //mostra qual dataset vai preencher o .rpt crReportDocument.SetDataSource(dsRelatorio);

    //parametros Core.Util.RelatorioCrystal.SetParameter("Total", crReportDocument, counts.ToString()); Core.Util.RelatorioCrystal.SetParameter("Tour", crReportDocument, var2.Name); Core.Util.RelatorioCrystal.SetParameter("Escola", crReportDocument, var.Adress); //crReportDocument.DataDefinition.FormulaFields["entidade"].Text = "\"" + UsuarioAutenticado.Entidade + "\""; //crReportDocument.DataDefinition.FormulaFields["codigo"].Text = "\"" + UsuarioAutenticado.Codigo + "\""; //crReportDocument.DataDefinition.FormulaFields["nome"].Text = "\"" + UsuarioAutenticado.Nome + "\""; //crReportDocument.DataDefinition.FormulaFields["periodo"].Text = "\"" + PeriodoAtual.Desc_Periodo + "\""; //crReportDocument.DataDefinition.FormulaFields["valor_total"].Text = "\"" + Session["Valor_Total"].ToString() + "\""; //Utilizando Viewer // crPrintPreview.ReportSource = crReportDocument; //Utilizando exportação para pdf BinaryReader stream = new BinaryReader(crReportDocument.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.BinaryWrite(stream.ReadBytes(Convert.ToInt32(stream.BaseStream.Length))); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); } } }


    Espero que ajude.


    Moizés Cerqueira | MCP / MCTS SQL SERVER

    • Marcado como Resposta Hiago da Silva quarta-feira, 28 de agosto de 2013 18:16
    quarta-feira, 28 de agosto de 2013 18:10
  • Muito obrigado Moizés valeu a ajuda.
    quarta-feira, 28 de agosto de 2013 18:17
  • Geralemnte passo dados via querystring e recupero nesta págona

    Moizés Cerqueira | MCP / MCTS SQL SERVER

    quarta-feira, 28 de agosto de 2013 18:22