Ich habe einen CrystalReportViewer, der einen Bericht zeigt. Ich übergebe zwei Parameter, die die Daten ändern. Dies funktioniert, es sei denn, Sie versuchen, den Bericht weiter zu vertiefen, woraufhin er auf die Standardparameter zurückgesetzt wird.CrystalReportViewer vergessen Parameter
Es ist ein bisschen wie das Reportviewer-Element aktualisiert sich selbst und vergisst alles. Ich hatte eine page_init-Methode, die versuchte, die Werte zurück zu schieben, aber ich bekam Objektreferenzfehler, also hatte ich es wahrscheinlich falsch gemacht.
Was sollte ich noch versuchen? Bitte beachten Sie folgenden Code:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["ReportSource"] != null)
{
CrystalReportViewer1.ReportSource = (ReportDocument)Session["ReportSource"];
}
else
{
ReportDocument reportDocument = new ReportDocument();
reportDocument.Load(Server.MapPath("~/Report/In Out.rpt"));
reportDocument.SetDatabaseLogon("user", "pass" ,@"server", "db"); //removed credentials for stackoverflow!
CrystalReportViewer1.ReportSource = reportDocument;
Session["ReportSource"] = reportDocument;
}
}
protected void butReport_Click(object sender, EventArgs e)
{
ReportDocument reportDocument = new ReportDocument();
reportDocument.Load(Server.MapPath("./Report/In Out.rpt"));
reportDocument.SetDatabaseLogon("user", "pass" ,@"server", "db"); //removed credentials for stackoverflow!
///Load Session variables with values from web-controls
Session["@FromDate"] = ConvertToDateTime(Request.Form["StartDate"]);
Session["@ToDate"] = ConvertToDateTime(Request.Form["EndDate"]);
reportDocument.SetParameterValue("Start", Session["@FromDate"]);
reportDocument.SetParameterValue("End", Session["@ToDate"]);
CrystalReportViewer1.ReportSource = reportDocument;
}
Mein CR eingebettet ist als
<div align="center">
<asp:TextBox ID="StartDate" runat="server" type="date" placeholder="e.g. 31/12/2014" ></asp:TextBox>
<asp:TextBox ID="EndDate" runat="server" type="date" placeholder="e.g. 31/12/2014" ></asp:TextBox>
<asp:button runat="server" id="Submit" type="button" value="Show Report" Text="View Report" onclick="butReport_Click" /></div>
<div>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
AutoDataBind="True" EnableDatabaseLogonPrompt="False"
GroupTreeImagesFolderUrl="" Height="940px"
ToolbarImagesFolderUrl="" ToolPanelWidth="200px" Width="1411px"
EnableParameterPrompt="False" ReuseParameterValuesOnRefresh="True"
ReportSourceID="CrystalReportSource1" />
<CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
<Report FileName="Report\In Out.rpt">
</Report>
</CR:CrystalReportSource>
</div>
Sie weisen das Objekt, das nach dem Klick auf die Schaltfläche vorbereitet wurde, niemals der Sitzungsvariablen zu. Der Page_Load-Code bereitet die Parameter nicht vor, und der Schaltflächenklickcode verwendet weder das Objekt aus der Sitzung noch das Ergebnis der Sitzung. Es gibt nichts, was Ihr vorbereiteter Gegenstand tatsächlich behält. – Nyerguds
OK. Ich bin neu in all dem, kannst du auf den Fehler hinweisen und hilfst du mir mit einem Beispielcode? –
Nun, Sie Licht genau angeben möchten, was "Objekt Referenzfehler" Sie bekommen ... – Nyerguds