jeudi 10 juin 2010

Cyrstal Report "ApplyLogOnInfo" très lent

J'ai migré une application qui utilise Crystal Report qui génère un fichier PDF avec les données de la base SQL Server.

La migration se fait à partir du .NET 1.1 vers .NET3.5.
Depuis la génération du pdf est très lente.
La partie qui est particulièrement lente se trouve dans la boucle:
TableLogOnInfo logOnInfo = new TableLogOnInfo();
for (int i = 0; i < dossierCyrstal.Database.Tables.Count; i++)
{
      //logOnInfo
      logOnInfo.ConnectionInfo.ServerName = [Nom du serveur];
      logOnInfo.ConnectionInfo.DatabaseName = [Nom base de données];
      logOnInfo.ConnectionInfo.UserID = [Nom d'utilisateur];
      logOnInfo.ConnectionInfo.Password = [Mot de passe];
     dossierCrystal.Database.Tables[i].ApplyLogOnInfo(logOnInfo);
}
Après les recherches sur le net, j'ai remplacé la boucle ci-dessous avec deux lignes de code:
      dossierCrystal.DataSourceConnections[0].SetConnection
     ([Nom du serveur], [Nom base de données], [Nom d'utilisateur], [Mot de passe]);
      dossierCrystal.Refresh();

Depuis, la génération s'accélère.

Aucun commentaire:

Enregistrer un commentaire