In Webanwendungen können wir keine Berichte wie Windows-Anwendungen exportieren, da das Programm auf der Serverseite ausgeführt wird. Wenn der Export ausgeführt wird, liegen die Ergebnisse auch auf der Serverseite vor. Tatsächlich ist dies nicht schwierig: Exportieren Sie den Bericht in eine vorab erstellte temporäre Berichtsdatei auf einer bestimmten Website und verwenden Sie dann den Befehl „response.redirect()“, um die Browser-URL auf den Speicherort des Berichts zu verweisen Der Browser des Benutzers versucht, die gerade exportierte Datei herunterzuladen, und die Datei wird auf den Client heruntergeladen, wodurch der gewünschte Effekt erzielt wird. Ein Teil des Codes lautet wie folgt:
public string ExportReport()
{
ExportOptions creo = new ExportOptions();
DiskFileDestinationOptions crdo = new DiskFileDestinationOptions();
string FileName = Request.PhysicalApplicationPath + "ExportFileExap.xls"
//Exportoptionen festlegen
creo = Myrpt.ExportOptions;
creo.ExportFormatType = ExportFormatType.Excel;
creo.ExportDestinationType = ExportDestinationType.DiskFile;
//Festplattendateioptionen festlegen
crdo.DiskFileName = Dateiname;
creo.DestinationOptions = crdo;
//Bericht exportieren
MyRpt.Export();
return FileName;
}
private void buttonExport_Click(object sender, System.EventArgs e)
{
string FileName = ExportReport();
Response.Redirect(Replace(FileName,Request.PhysicalApplicationPath + "ExportFile",""));
}
Es ist zu beachten, dass Sie beim Exportieren ins Internet über die Berechtigung zum Erstellen von Dateien im Exportverzeichnis verfügen müssen. Wenn die Berechtigungen nicht ausreichen, wird die Fehlermeldung „Zugriff auf die Berichtsdatei verweigert…“ angezeigt. Lassen Sie einfach den ASPNET-Benutzer (den Systembenutzer, der bei der Installation von .NET Framework automatisch generiert wird) über „Schreibberechtigungen“ in der Exportverzeichnisdatei verfügen.