6
votes

Comment exporter des rapports Crystal dans les formats PDF, HTML et DOC à l'aide de C # Code dans ASP.NET?

J'ai conçu un rapport sur mon site Web ASP.NET, je dois désormais fournir des options à exporter ce rapport dans formats PDF, HTML et DOC , comment puis-je réaliser cela?

Crystal Signaler a un bouton pour le faire, mais je tente de sauvegarder ce rapport Son enregistré comme format .aspx comme je le vois dans la page Web ASP.NET.


0 commentaires

3 Réponses :


1
votes

Vous devez le faire par vous-même: Créez une liste déroulante avec les formats que vous souhaitez et un bouton pour effectuer un publication pour l'exportation.

Ceci est un exemple pour le .NET 1.1 / CR9. Lorsque vous faites un publication sur les éléments suivants:

  1. Attribuer à votre rapport de classe de classe Valeur de la propriété myReport.exporToption.exportDestinationType = cristaldecisions.shared.exportdestinationtype.diskfile;
  2. Si vous souhaitez exporter vers .pdf, procédez comme suit: myReport.exportoption.exportformattype = cristaldecisions.shared.exportformattype.sharedocformat; Vous pouvez également choisir wordforwindows , < Code> richtext , Excel , html40 et plus.
  3. Alors procédez comme suit:

    cristaldecisions.shared.SiskfilerestinationSoSoptionSOPTIONSOPTIONS = NouveauxFilerestitions DiskFileDetitions ();

    fileoption.diskfilename = "somempfilename";

    myReport.destinationOptions = fichieroption;

    myReport.export ();

    Vous pouvez en trouver plus sur ExporterOptions classe ici .

    et Voici un exemple pour VS 2005 / .NET 2


7 commentaires

sa donnant à la suite d'une erreur 'CrystalDecisions.CrystalReports.Engine.reportdocument' ne contient pas de définition pour "DestinationOptionsOs" et aucune méthode d'extension "DestinationOptions" Accepter un premier argument de type 'CrystalDecisions.CrystalReports.Engine.reportdocument "pourrait être trouvé (sont Vous manquez une directive ou une référence d'assemblage?)


De plus, si je commente cette déclaration, il jette une exception: la connexion a échoué. \ NDétails: CRDB_ADOPLUS: Référence d'objet non définie sur une instance d'objet. \ RERROR dans le fichier D: \\ Utilisateurs \\ Myuser \\ Appdata \\ local \\ Temp \\ CrystalReport {199bad00-9417-4101-BE3-FF63B72B66B3} .rpt: \ NUNABLE à Connecter: Connexion incorrecte sur les paramètres. Où j'utilise une sécurité intégrée


Devinez, c'est parce que c'est un exemple écrit dans VS2003 / .NET 1.1 / CR9 il y a longtemps. J'ai ajouté un lien pour l'article avec exemple pour .NET 2.


Et en ce qui concerne l'exception, vous devez vérifier la météo à laquelle le processus .NET fonctionne (le plus probable que le service réseau) a correctement accès au dossier Temp.


Je pense que ce problème est parce que je suis des données contraignantes pour signaler mon fichier .CS et sans utiliser l'expert de la base de données dans le rapport Crystal, j'ai ajouté cette ligne de code myReport.exporttoDisk (exportFormatType.Portsabledocformat, "D: \\ Report.pdf") ; Son amende fonctionnant mais je devais lier le rapport à nouveau. Maintenant, je ne sais pas ce qui pourrait être la solution pour éviter cela!


Merci Man pour la solution, bien que ce n'était pas utile à 100%, mais vous m'avez certainement fourni une bonne approche!


Je t'en prie. En ce qui concerne l'exportation d'un fichier, jetez un coup d'œil à path.gettempfilename ( goo.gl/96kvq ) - Fournit un chemin et un nom où le fichier temporaire peut être écrit à coup sûr, et path.gettempaath () ( goo.gl/ib23p < / a>) - Le chemin où les fichiers temporaires d'utilisateur de fil peuvent être écrits. N'oubliez pas de les supprimer après que l'exportation soit terminée ou par d'autres moyens.




2
votes

Essayez ceci:

protected void btnExport_Click(object sender, EventArgs e)
{
    // Stop buffering the response
    Response.Buffer = false;
    // Clear the response content and headers
    Response.ClearContent();
    Response.ClearHeaders();
    try
    {
        string senderID = ((ImageButton)sender).ID;
        if (senderID == "btnPdf")
            reportDocument.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, Page.Title);
        else if (senderID == "btnXls")
            reportDocument.ExportToHttpResponse(ExportFormatType.ExcelRecord, Response, true, Page.Title);
        else if (senderID == "btnDoc")
            reportDocument.ExportToHttpResponse(ExportFormatType.WordForWindows, Response, true, Page.Title);
        // There are other format options available such as Word, Excel, CVS, and HTML in the ExportFormatType Enum given by crystal reports
    }
    catch (Exception ex)
    {
       //error management

    }
}


0 commentaires