2008-10-21 5 views
0

J'ai un problème avec Crystal Reports 8. Lors de l'exportation d'un rapport de mon application, Crystal Reports se bloque parfois. La fenêtre de progression reste juste, indiquant X des enregistrements X exportés.Pourquoi Crystal Reports 8 gèle-t-il?

  1. Les rapports plus petits avec moins de données sont plus susceptibles de geler.
  2. Les stations de travail plus rapides (P4, Core2) ont tendance à geler beaucoup plus souvent, parfois à chaque seconde. Sur les postes de travail plus anciens (< P2) aucun gel ne se produit du tout, ou au moins une fois tous les un ou deux jours.
  3. Le format d'exportation (rtf, pdf, html, rpt) n'influence pas le comportement de congélation.
  4. Le même rapport peut être exporté avec succès plusieurs fois avec exactement les mêmes données, mais il finira par geler.
  5. Pas de gel se produit sous Windows Vista (!)

Y at-il un moyen d'arrêter cela ou au moins un moyen de prédire un gel?

+0

Vous pourriez vouloir publier votre code. Assez drôle, je suis en train de mettre à jour une application CR8 vers CR XI, et j'ai eu des problèmes de gel avec XI, alors que CR8 fonctionnait parfaitement bien. – anon6439

Répondre

2

Après une longue recherche, nous avons finalement recherché la source vers un appel WaitForSingleObject(?, INFINITE). Il semble que CR8 a quelques erreurs de synchronisation qui deviennent évidentes sur les postes de travail rapides.

Il est en quelque sorte lié à la fenêtre de progression, et les animations dans Vista semblent atténuer le problème. Théoriquement, la solution serait de patcher le fichier problématique et de remplacer le WaitForSingleObject par un paramètre de temporisation.

+0

Puis-je vous demander comment vous avez identifié cela comme la cause du problème? Je rencontre un problème similaire lors d'une exportation en masse de milliers de fichiers CR8.5. – MartW

+0

J'ai utilisé ProcessMonitor pour afficher la callstack de chaque thread. –

1

CR 8 est un produit assez ancien, vous voudrez peut-être vérifier qui le possède maintenant (Business Objects encore?) Pour les mises à jour (correctifs pour v8 en particulier). Cela pourrait être quelque chose qu'ils ont réparé dans le passé avec une version de service.

+0

Oui, nous l'avons fait (CR 11). Mais malheureusement, nous devons fournir un support pour certains de nos produits existants. –

+0

Désolé, je devrais clarifier. Je ne voulais pas dire mise à niveau vers la dernière version, je voulais dire mises à jour dans la façon de correctifs à la version 8 du produit. –

+0

Ok, désolé, j'aurais dû lire plus attentivement ... Nous avons déjà essayé, sans succès. –