Visualizador De Relatórios De Cristal ... ASP.net
Estou a tentar adicionar um visualizador de relatórios de cristal a um ... asp.net aplicação web. Estamos usando relatórios que foram criados para a nossa aplicação desktop para que eles já são criados e funcionais. Estamos conectando ao mesmo banco de dados com a mesma consulta em ambas as plataformas e o banco de dados e consulta é configurado no desenhador de relatórios.
Aqui está uma antevisão de um dos relatórios do Visual Studio Pro 2015 no asp.net projecto:
acrescentei a seguinte linha aos Meus Relatórios.página aspx:
<CR:CrystalReportViewer ID="crptViewer" runat="server" AutoDataBind="true" />
adicionei uma pasta "Crystalreportviewers13" à raiz da pasta da aplicação com o conteúdo da instalação do relatório crystal.
adicionei o seguinte à minha web.ficheiro de configuração:
<configuration>
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null"/>
<section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<rptBuildProvider>
<add embedRptInResource="true"/>
</rptBuildProvider>
<crystalReportViewer>
<add key="ResourceUri" value="/crystalreportviewers13" />
</crystalReportViewer>
</crystalReports>
</businessObjects>
eu tentei várias estratégias no código por trás com base em diferentes sugestões de estouro de pilha. Eis o que tentei até agora:
No Botão, Carregue Em:
public partial class Reports : System.Web.UI.Page
{
ReportDocument rptDocument;
protected void Page_Load(object sender, EventArgs e)
{
string stack = "Page_Load()(Reports.aspx.cs)";
try
{
if (Session["report"] != null)
{
crptViewer.ReportSource = Session["report"];
}
}
catch (Exception EX)
{
IOClass.appendLog("Error in " + stack, EX.Message);
}
}
//Button Click
protected void generateReport(object sender, EventArgs e)
{
rptDocument = new ReportDocument();
rptDocument.Load(Server.MapPath("~/Crystal/UserListing.rpt"));
rptDocument.SetParameterValue("Company", 1);
Session["report"] = rptDocument;
}
}
E Em Carga:
public partial class Reports : System.Web.UI.Page
{
ReportDocument rptDocument;
protected void Page_Load(object sender, EventArgs e)
{
string stack = "Page_Load()(Reports.aspx.cs)";
try
{
rptDocument = new ReportDocument();
rptDocument.Load(Server.MapPath("~\\Crystal\\UserListing.rpt"));
crptViewer.ReportSource = rptDocument;
//I have tried with and without the following:
//crptViewer.DataBind();
//and
//crptViewer.RefreshReport();
}
catch (Exception EX)
{
IOClass.appendLog("Error in " + stack, EX.Message);
}
}
}
Quando a página carregar em ambos os casos isto é o que eu recebo:
estou a fazer registo de excepções na função de carga e não tenho quaisquer excepções.
Alguma ideia do que estou a fazer de errado? Avise-me se puder fornecer mais alguma informação. Obrigado pelo seu tempo. 0
Author: James Sumner, 2017-03-28