Dans les applications Web, nous ne pouvons pas exporter de rapports comme les applications Windows car le programme est exécuté côté serveur. Lorsque l'exportation est exécutée, les résultats sont également côté serveur. Alors, comment pouvons-nous réaliser une exportation complète côté client ? En fait, ce n'est pas difficile. La méthode est la suivante : exportez le rapport vers un fichier de rapport temporaire pré-créé sur un certain site Web, puis utilisez la commande réponse.redirect() pour pointer l'URL du navigateur vers l'emplacement du rapport, de sorte que le navigateur de l'utilisateur Il essaiera de télécharger le fichier qui vient d'être exporté et le fichier sera téléchargé sur le client, obtenant ainsi l'effet dont nous avons besoin. Une partie du code est la suivante :
public string ExportReport()
{
ExportOptions creo = new ExportOptions();
DiskFileDestinationOptions crdo = new DiskFileDestinationOptions();
string FileName = Request.PhysicalApplicationPath + "ExportFileExap.xls"
//Définir les options d'exportation
;
creo = Myrpt.ExportOptions ;
creo.ExportFormatType = ExportFormatType.Excel;
creo.ExportDestinationType = ExportDestinationType.DiskFile;
//Définir les options du fichier disque
crdo.DiskFileName = FileName;
creo.DestinationOptions = crdo;
//Exporter le rapport
MonRpt.Export();
renvoie le nom du fichier ;
}
bouton vide privéExport_Click (expéditeur de l'objet, System.EventArgs e)
{
chaîne NomFichier = ExportReport();
Response.Redirect(Replace(FileName,Request.PhysicalApplicationPath + "ExportFile",""));
}
Il est à noter que lors de l'exportation vers le Web, vous devez avoir l'autorisation de créer des fichiers dans le répertoire d'exportation. Si les autorisations sont insuffisantes, une erreur « L'accès au fichier de rapport est refusé... » apparaîtra. Laissez simplement l'utilisateur ASPNET (l'utilisateur système généré automatiquement lors de l'installation du .NET Framework) disposer des autorisations "d'écriture" dans le fichier de répertoire d'exportation.