2009-09-04 8 views
0

Nous avons développé un ensemble de rapports de cristaux (pas mon idée) qui doivent recréer des exemples de formulaires PDF que nous avons reçus. Nous avons importé des images d'arrière-plan (provenant du fichier PDF d'origine) pour chaque page du rapport, puis nous avons déplacé nos champs de données par dessus. Maintenant, malgré les images d'origine que nous utilisons pour les arrière-plans relativement petits, le fichier rpt est extrêmement volumineux (environ 50 Mo). C'est un peu gênant, mais maintenant, quand nous déployons sur le serveur, nous constatons que nous obtenons des erreurs intermittentes de mémoire en essayant d'exécuter le rapport.Crystal Reports - Exception de mémoire insuffisante

Quelqu'un at-il des idées sur:

  1. Une meilleure façon de le faire.

  2. Une raison pour laquelle ce fichier de rapport est si volumineux (et comment le réduire).

  3. Une idée de la raison pour laquelle nous obtenons les erreurs de mémoire insuffisante.

+0

Quelle version de Crystal Reports? – MartW

+0

Fichier de rapport de 50 m. Foutu! – dotjoe

+0

C'est la version installée avec Visual Studio 2008. Et oui 50M - c'est une douleur qui fige. – Paddy

Répondre

0

Wow, méchant. Êtes-vous en mesure de diviser ces rapports afin qu'il n'y ait qu'une seule image par rapport? Si ce n'est pas le cas, alors vous devrez regarder le chargement des images dans le rapport via le code. Enregistrer des images dans les rapports eux-mêmes semble toujours grossir massivement un Crystal Report (comme s'il les stocke en interne sous forme de TIFF ou autre), mais il existe probablement des moyens de le faire via le code en utilisant des images plus petites. Cet exemple de code pourrait aider:

https://www.sdn.sap.com/irj/boc/index?rid=/library/uuid/f02cd85d-cf66-2b10-878d-9337242838f0

+0

C'est l'approche que nous envisageons de prendre. Rend la conception du rapport un peu plus gênant, mais il semble que c'est nécessaire. Merci pour le lien - l'un des rares qui pointe vers le site SAP, plutôt que l'ancien site des objets métier morts. – Paddy

0

Probablement, ces erreurs proviennent des images elles-mêmes. Bien que vous puissiez les transmettre en tant que petits fichiers JPG au rapport, il se peut que le rapport lui-même les traduise en bitmaps, ce qui peut être énorme. Étape 1: recréer le rapport sans aucune image pour s'assurer que les images causent la taille énorme. Si la taille descend par ex. 5 Mo, vous savez avec certitude que les images vont causer le problème et doivent trouver un moyen de contourner ceux-ci.

Pour résoudre ce problème, vous devez trouver un moyen de dire au rapport de stocker ces images avec une compression JPG afin de réduire à nouveau la taille. Cependant, je ne sais pas si cela est possible avec Crystal Reports et/ou votre projet.

(Dans le pire des cas, votre rapport est non seulement le stockage de ces images en tant que bitmaps, mais il aurait aussi les étirer à une taille qui couvre toute la page, ce qui les rend encore beaucoup plus grand!)

+1

J'ai déjà parcouru le processus de vérification que les images causent les problèmes. Je ne vois aucun moyen dans les rapports de cristal pour lui dire comment stocker l'image, ce qui est un peu gênant ... – Paddy

+0

Donc, vous devez réduire la taille de ces images en quelque sorte. Ou ajoutez plus de mémoire au serveur. Utilisez-vous un serveur 32 bits ou un serveur 64 bits? Si 64 bits, l'application Web est-elle également conçue en 64 bits, y compris Crystal Reports? –