Imprimer un crystal report dans une application web

Contenu du snippet

IMPRIMER UN RAPORT EN UTILISANT DES TABLES QUI PROVIENNENT D'UNE BASE DE DONNÉES SÉCURISÉE(SQLSERVER)

Ce code vous explique comment vous authentifier à des tables Sql Server en utilisant Crystal Report dans Visual Studio.net pour une application Web.

Cette authentification est obligatoire, si elle n'est pas faite lorsque qu'un usager tentera de visionner le rapport ou de l'imprimer, il obtiendra l'erreur "Logon Failed".

Source / Exemple :


Vous avez besoin de 
using CrystalDecisions.Shared
using CrystalDecisions.CrystalReports.Engine

//Créer l'instance pour un nouveau rapport
ReportDocument crpt = new ReportDocument();								
//Charger le rapport	
crpt.Load("C:\\Reports\\rapport.rpt");     
									    
//Pour pouvoir utiliser un Crystal Report avec Sql Server on doit s'authentifier à chacune des tables contenues dans le rapport avec un compte d'utilisateur SqlServer. Sinon on obtient l'erreur login failed lorsque que l'on veut utiliser ce rapport.

//Cette boucle permet de parcourir chacune des tables utilisées dans le rapport.	

int i;
		
for (i=0;i <= crpt.Database.Tables.Count - 1;i++) 
{
    
    TableLogOnInfo logOnInfos = new TableLogOnInfo ();

    //Informations requises pour s'authentifier
    logOnInfos.ConnectionInfo.ServerName = "SqlServer";
    logOnInfos.ConnectionInfo.DatabaseName = "NomDeLaBaseDeDonnées";
    logOnInfos.ConnectionInfo.UserID = "NomDutilisateur";
    logOnInfos.ConnectionInfo.Password = "MotdePasse";

    //Appliquer les informations pour la table dans laquelle on est rendu dans la boucle
    crpt.Database.Tables[i].ApplyLogOnInfo(logOnInfos);		
}
						
//On choisi le nom de l'imprimante à utiliser
crpt.PrintOptions.PrinterName = "Office";
						
//Imprimer le rapport(les 4paramètres sont bien expliqués dans l'éditeur de code, c'est genre nombre de copies, page de début et fin...)

crpt.PrintToPrinter(1,false,0,0);

Conclusion :


C'est la première source que j'ajoute dans ce site. Donc, ce n'est p-e pas parfait, car je suis un débutant avec le C#. Par contre , je viens souvent consulter ce site pour obtenir de l'aide, donc je suis content si je peux à mon tour aider quelqu'un.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.