Ich habe mehrere Crystal Reports in Checkboxlist, so dass Benutzer mehrere Berichte gleichzeitig drucken/anzeigen können.Zeigen mehrere Crystal Reports in Schleife
Momentan verwende ich Sitzung, um das Berichtsdokument zu übergeben, aber die meiste Zeit wird der Sitzungswert ersetzt, bevor dem Crystal Report zugewiesen wird. Daher enthalten mehrere Berichte dieselben Daten. Ich habe auf jede Schleife eine Verzögerung von 3 Sekunden angewendet, aber keine zuverlässige Lösung. Und auch Bild wird nicht in Berichten angezeigt.
Gibt es eine elegante Technik, dies zu tun?
Oder
Was wird für die Variable Session alternativ sein?
JQuery:
$.each(chkBoxarr, function (index, value) {
var w = window.open();
$.ajax({
type: "POST",
url: "PrintReports",
traditional: true,
data: { id: value},
datatype: "json",
success: function (data) {
w.document.write(data);
},
error: function() {
alert("Error");
}
});
});
Controller:
public ActionResult PrintReports(id)
{
ReportDocument rpt = new ReportDocument();
rpt.Load("~/ReportFileName.rpt");
HttpContext.Session["rpt"] = rpt;
return Redirect("~/Viewer.aspx");
}
Viewer.aspx.cs
Page_Init(object sender, EventArgs e)
{
var rpt = System.Web.HttpContext.Current.Session["rpt"];
CrystalReportViewer1.ReportSource = (ReportDocument)rpt;
}
Vielen Dank für Ihre Anregung hängt von Ihrer Crystal Version variiert; Gibt es einen Weg ohne Sessionen zu benutzen? –
Ich verstehe Ihren Standpunkt nicht ganz, können Sie etwas ausarbeiten? –
welchen Code möchten Sie – Rakin