Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


...

  • Langue standard
    • USER_LANGUAGE
    • USER_LANID, PROCUSER_LANID
    • PC_USELANG_ID, PR_PC_USELANG_ID

La valeur de ces paramètres dépend de

  • l'initialisation de la langue dans la gestion des rapports (cf. Choix de la langue)
  • la langue définie dans le lanceur d'impression (PC_inPrintLaunch)
  • Langue d'installation
    • INSTALLATION_LANGUAGE
    • INSTALLATION_LANID
  • Langue de la société
    • COMPANY_LANGUAGE
    • COMPANY_LANID
  • Autres
    • OUTPUT_MODE, mis à jour par le lanceur d'impression pour le mode (preview, print ou export)

...

Les paramètres individualisés peuvent être défini de deux manière :

  • Ajouter un paramètre dans le rapport qui sera géré par Crystal Reports lors de l'exécution de celui-ci (fenêtre de demande des paramètres Crystal).
  • Ajouter un paramètre standard (PARAMETERX) et le gérer via la gestion des paramètres de l'objet des Rapports.

...

Wiki Markup
SetOnlyPrinterName = \[True | False\] permet de désactiver la mise à jour du bac et du papier et de conserver les autres valeurs définies.
Utile dans certaines circonstances pour conserver les valeurs par défaut des paramètres d'impression du driver et que le changement de bac ou de papier provoque une modification de ceux-ci.
\\

...

Les services du PrintServer doivent utiliser un fichier de configuration propre pour éviter toutes collisions avec l'ERP. Le paramètre AUTOCONNECT doit être égal à 1 pour éviter l'affichage d'une boîte de dialogue pour la connexion.

...

Comment enregistrer une CRUFL x86 (Crystal Report User Function Library), par exemple pour une font code-barres, pour le client runtime x64. Attention, l'utilisateur doit disposer de droits d'administration pour pouvoir enregistrer des informations dans la Registry Windows

...

Wiki Markup
Exemple : regsvr32 \[path\]\CruflXxx.dll

...

Wiki Markup
Windows Registry Editor Version 5.00 \[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{*}{_}\{00000000-0000-0000-0000-000000000000\}{_}{*}\] "AppID"="{*}{_}\{00000000-0000-0000-0000-000000000000\}{_}{*}" \[HKEY_CLASSES_ROOT\WOW6432Node\AppID\{*}{_}\{00000000-0000-0000-0000-000000000000\}{_}{*}\] @="{*}{_}CruflFullname_* 64-32 surrogate" "DllSurrogate"=""

...

De manière générale, voici les questions à poser lorsqu'un problème d'impression est remonté par un client :

  • Rapport standard ou individualisé
    • Le rapport fonctionne-t-il dans l'éditeur de rapport ?
  • Si le rapport est individualisé, est-ce que le rapport standard fonctionne (ou un équivalent) ?
  • Utilisation de Crystal Server ou Crystal Runtime
    • Vérifier la valeur de la configuration PC_REP_PRINTLAUNCH_VERSION
  • Quelles versions de Crystal sont installées ?
    • Crystal Server
    • Crystal Runtime
    • Crystal Editor
  • Est-ce que le problème est identique pour l'aperçu, l'impression et l'exportation ?
  • Est-ce que le problème est reproductible depuis d'autres objets ?
  • Est-ce que le problème est reproductible avec d'autre utilisateurs ?
  • Est-ce que le problème est reproductible sur d'autres postes pour la version Desktop ?

...

Si le format de papier n'est pas supporté par le bac spécifié (par exemple un format A3 sur un bac A4) alors le pilote de l'imprimante change automatiquement pour un bac adapté, ou celui par défaut.

...

Il faut utiliser une font unicode comme Arial unicode MS. Une font non unicode comme Arial ne fonctionne pas correctement.

...

Si le rapport utilise des fonts 'exotique', l'export PDF peut ne pas fonctionner. Par contre si la font n'est pas installé sur le poste, l'export peut tout de même fonctionner mais CR utiliser une font de remplacement.

...

CR sauvegarde dans le rapport des informations liées à l'imprimante, même si 'No printer' est spécifié dans les options du rapport. Ces informations sont parfois utilisées pour initialiser l'imprimante. Dans certains cas cela provoque des erreurs (Duplex sur imprimante fax). Modifier le rapport en sélectionnant une imprimante qui fonctionne, sauvegarder, puis remettre 'No printer' et sauvegarder à nouveau.

...

Lors du chargement du rapport, CR se connecte à l'imprimante spécifié sur le rapport ou/et sur celle par défaut du poste. Si ces imprimantes ne sont pas accessibles ou hors connexion, il arrive que CR prenne beaucoup de temps pour exécuter le rapport (probablement à cause d'un Timeout). Changer ou supprimer l'imprimante du rapport (No Printer) ou celle par défaut du poste résout ce problème.
Vérifier également les fonctions externes appelées via des CallDBFunctions. Une exportation du rapport depuis le designer au format "Report Definition" permet d'obtenir un texte affichant la plupart des composants du rapport. Cela permet ainsi de faciliter l'identification des formules. Pour davantage de précision, il faut faire des tests à tâtons en supprimant des sections du rapport petit à petit jusqu'à ce qu'on mette le doigt sur celle qui prenait du temps. Une fois identifiée, observer tous les composants de la section, les formules ( y compris celles qui sont utilisées dans les formatages ) ainsi que les sous-rapports.
Après l'identification de la cause, reste à trouver une solution alternative pour améliorer les performances. Selon le cas, adapter la source de données ( procédure, vue ) ou passer de plusieurs tables à une vue ou encore de vérifier que les CallDbFunctions ne se fassent que lorsqu'elles sont nécessaires et pas de manière systématique.

...

Une erreur de la librairie u2lcom.dll à l'exécution d'un rapport peut provenir d'une font pour les codes-barres qui n'est pas installé sur le poste. Si le rapport utilise une formule pour les code-barres et que la font correspondante n'est pas installée, le rapport peut même se planter.

...

La longueur maximale d'un texte en retour d'une fonction UFL est limitée comme suit :

  • 510 pour CR2008 et supérieur
  • 254 pour CRXI.

La seule solution est de découper le résultat par blocs (par exemple 500 caractères) et reconstruire le texte ensuite

...

Pour des questions de performances, le nombre d'éléments d'une liste de valeurs (LOV) est limité à 1000. Cette limite peut être augmentée en renseignant une valeur dans la base des registres.
Emplacement de base

  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Business Objects\Suite 12.0\Crystal Reports\DatabaseOptions\LOV
  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\SAP BusinessObjects\Suite XI 4.0\Crystal Reports\DatabaseOptions\LOV

Clé de registre

  • MaxRowsetRecords (DWORD) = {integer}

...

Image Removed

  • Installer une nouvelle version du runtime ( CRRuntime_64bit_13_0_24 et le nouveau pc_reportPlugin.dll )
  • Si cela n'est pas possible :
    • Plusieurs options à tester si cela apparaît en client/serveur avec CR runtime :
      • Changer l'alignement horizontal pour spécifier "justifié" dans le format du champ ou,
      • Changer la marge de droite du paragraphe dans le format du champ pour indiquer 0.2 cm p.ex. ou,
      • Indiquer une imprimante au niveau du rapport. Attention, cela peut avoir des effets de bord, notamment concernant l'impression recto-verso.
    • Vérifier que le champ soit suffisamment large pour afficher son contenu.
    • Pour les grands champs comme les CLob ou d'une longueur de 4'000 caractères, cocher l'option Can grow pour qu'il puisse être affiché sur plusieurs lignes.
    • Vérifier si le problème persiste après avoir indiqué une police standard comme Arial.

...

La police de caractère code-barres doit être présent là où le rapport est exécuté :

  • Client lourd (Desktop)
    • ProConcept 11.1
      • Sur le poste client si l'utilisateur démarre ProConcept localement (par exemple avec un raccourci sur le bureau)
        • Même si les binaires se trouvent sur un serveur distant, l'exécution se fait localement
      • Sur le serveur TS si l'utilisateur ouvre une session TS ou RDP
    • ProConcept 11.2
      • Dépend de la valeur de la configuration PC_REP_PRINTLAUNCH_VERSION
        • Default, Crystal12, CrystalWeb: Voir Client léger
        • Crystal12_Client : Voir Client lourd > ProConcept 11.1
  • Client léger (Web)
    • ProConcept 11.1
      • Sur le serveur où est exécuté Glassfish
    • ProConcept 11.2
      • Sur le serveur où est exécuté Crystal Server

Remarque pour l'exportation de documents PDF depuis un rapport :

  • Les polices de caractère ne sont pas incluses dans le document.
  • La police de caractère code-barres doit être présente là où le document est ouvert, sinon une police de substitution sera utilisée.

...

Wiki Markup
Des erreurs apparaissent systématiquement : 
com.businessobjects.report.web.shared.WebReportingException: Le visualiseur n'a pas pu traiter un évènement. Impossible d'extraire la source du rapport de l'objet état. \[CRSDK00000957\] ---- Error code:0 \[CRWEB00000119\]
\\
Par contre, en desktop, cela fonctionne.
\\
=> Essayer avec un autre browser ou en mode de navigation privé. Si cela fonctionne vider complètement le cache ( cookies et autres ).
\\
Résolution : Il faut vider le cache de Chrome ( F12 et clic droit sur le bouton refresh, sélectionner l'option empty cache and hard reload ).
\\

...

La configuration PC_REPORT_SERVER_URL doit être renseignée. Ceci peut apparaître quand il y a un problème de DNS / que la machine ne connait pas son propre nom externe.
Exemple de valeur pour cette configuration : http://<server>:<port>/SolvaxisCRServer/

...

Vérifier que le CRAS est lancé par un utilisateur défini ayant les droits sur les imprimantes et pas localsystem. Il faut que cela soit le même que celui de Glassfish pour éviter les malentendus.
Le log peut alors afficher : The server failed to change print options.
Est-ce que l'utilisateur ayant démarré le service CRAS a accès à l'imprimante spécifiée dans le rpt, dans pcs_report, dans le printlaunch ?

...

Vérifier que les regional settings de l'utilisateur qui lance le CRAS sont corrects et redémarrer ce service après tout changement.
En cas d'utilisation de la fonction VAL() pour un CallDBFunction, par exemple dans le cas du DOC_STD_2 et le taux TVA, si les paramètres régionaux susmentionnés et le profil NLS lié à la langue de l'utilisateur sont incompatibles, le taux peut être tronqué.
Les fonctions externes de la Crufl retournent des Strings qui ont un séparateur décimal pour les nombres correspondant à celui de la langue de l'utilisateur. Par contre, Crystal Reports, pour convertir via VAL() la chaîne de caractères en numérique va se baser sur les regional settings. Si l'un utilise la virgule et l'autre le point, ça ne fonctionne pas, idem en cas de séparateur des milliers différent.
Lorsque l'utilisateur travaille avec le runtime standalone ( CrystalRTStandalone ), le problème reste entier : il faut avoir une cohérence entre les regional settings et les NLS parameters faute de quoi les conversions sont incorrectes.
Pour rappel, il existe 3 possibilités pour la gestion des formats dans Crystal :

  • Fixe, en spécifiant le format voulu dans le rapport
  • Valeur par défaut du système, en indiquant cela pour le champ. Dans ce cas, ce sont les regional settings du poste qui sont utilisés avec CrystalRTStandalone, ceux du service CrystalRAS pour CrystalRT et ceux du pays de la société/langue de l'utilisateur pour CrystalWeb
  • Selon inifile/préférences utilisateurs si on utilise les paramètres ad hoc dans les formules de formattage

...

Pour les formats de papier spéciaux qui ne sont pas ISO ( A4, C5, A3, … ), il est préférable d'indiquer au niveau du rapport que la taille du papier est dissociée. Ainsi c'est la taille indiquée sur le rapport qui est prise en considération et non pas la source qui n'est pas forcément gérée par la machine virtuelle java.

En cas de problème d'orientation en web pour des étiquettes ou qu'aucune autre solution n'est trouvée, il reste la possibilité d'utiliser le printserver pour imprimer ces éléments. Dans ce cas, c'est comme avec l'utilisation de BarTender, Nicelabel ou autre Loftware, c'est une procédure stockée qui doit être appelée pour générer le contenu de l'instruction à envoyer ( donc pas disponible via le bouton Imprimer ).

Si, en client lourd 11.03, l’impression des étiquettes se fait sans difficulté, la solution printserver et crystalRT est à utiliser. Si cela ne fonctionnait pas non plus en client lourd, la seule solution est d’utiliser un logiciel tiers ( barTender, NiceLabel, etc. ). 

Image Removed

Etiquettes / mauvaise orientation

En client lourd, lorsque la configuration PC_REP_PRINTLAUNCH_VERSION = 'CRYSTALRT', en fonction des imprimantes et des étiquettes, il arrive que celles-ci soient mal orientées, portrait à la place de paysage.
En dernier recours, il est possible de désactiver complètement toutes les options de mise en page avec des fichiers de configuration :

  • PC_ExeComObjLauncher.exe.config
  • PC_ExeComObjLauncher_TS.exe.config

La casse des noms des fichiers n'est pas important
Les deux fichiers doivent exister et contenir les mêmes instructions
Contenu :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="DisableApplyPrintOptionsOnReports" value="reportname.rpt" />
</appSettings>
</configuration>
Plusieurs rapports peuvent être renseignés dans l'attribut value, ils doivent être séparés par une virgule. Par Exemple :
value="DOC_ETIQUETTES_POS.rpt,DOC_IND_ETI_POS.rpt"

...

Vérifier la variable d'environnement ORACLE_HOME pour le user utilisé pour lancer le service CRAS. Celle-ci ne doit pas exister ou pointer sur le répertoire du client Oracle 32 bits.
Redémarrer le service après correction.
Solvaxis Crystal Report Server
An error occurred while processing the report, see below for further information.
Exception Message:
com.crystaldecisions.sdk.occa.report.lib.ReportSDKLogonException: Logon failed.

Wiki Markup
Details:  \[Database Vendor Code: 12557 \]

...

Wiki Markup
Details:  \[Database Vendor Code: 12557 \]

...

Wiki Markup
Details:  \[Database Vendor Code: 12557 \]---- Error code:-2147217393 \[CRSDK00000000\] Error code name:dbLogonFailed

...

Activer l'option suivante dans les options du rapport:
Image Removed

...

Un nouveau setup indépendant des autres produits ( CRAS, designer ) doit être installé pour éviter les problèmes de textes tronqués ( 11.02.R.31 ? ).
Si l'on installe le runtime, la PC_ReportPlugin.dll est modifiée. Si on remplace la dll et que celle-ci est incompatible avec le niveau de patch, il y aura des erreurs liées à Hydra qui apparaissent :
2.3 Module Name : Hydra_Core_D22.bpl
2.4 Module Version: 6.0.93.1189
2.5 Type : EOleException
2.6 Message : Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
En cas de problème, il faut remettre la dll originale en place qui n'utilisera pas le nouveau runtime.

...

Ceci apparaît fréquemment lorsque le format du papier n'est pas correct. Si l'imprimante a une taille de papier au format Letter par défaut et que rien n'est spécifié dans PC_REPORT, on arrive à cette situation.
Dans ce cas, soit modifier le format par défaut de l'imprimante ou spécifier PaperSize=A4 au niveau de PC_REPORT.
Entre la version runtime et la version java, il y a des comportements légèrement différents notamment en regard avec les marges. De ce fait, les formulaires BVR doivent souvent être retouchés pour adapter le positionnement des champs de quelques millimètres.

Caractères non imprimés, mais aperçu correct

Problème identifié en utilisant une jvm 11 (possible uniquement en conjonction avec Tomcat)
Seuls les champs qui ont un format dans lequel sont spécifiées des indentations au niveau du paragraphe apparaissent. Concerne des rapports Finance ( document, balance.Remonté par Tronico en test Tomcat ).

...

Dès 11.02.R.31, un nouveau WAR a été déployé qui permet d'avoir davantage d'informations. Les logs se trouvent dans <PCS_ROOT_PATH\\Web\Server\glassfish\glassfish\domains\<INSTANCE_NAME>\logs\proconcept.
Pour définir le niveau de log souhaité, il faut, dans la console Glassfish, au niveau Logger Settings de server-config, ajouter un logger ch.proconcept.report.ReportLogger et spécifier le niveau ( par défaut INFO, mettre FINEST pour avoir tout le détail de debug ).
Les erreurs suivantes peuvent apparaître :

  • ReportRecord.init Ex: The server failed to change print options
    • Vérifier la configuration du rpt dans le designer, un paramètre est peut-être en cause, comme une imprimante mal définie ou des éléments manquants

...

Wiki Markup
com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: Le document est en cours de fermeture.---- Error code:-2147215349 \[CRSDK00000005\] Error code name:docNotReady. Probablement que l'utilisateur a fermé la fenêtre de crystal avant la fin du traitement
Wiki Markup
com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: L'agent serveur a dépassé le délai d'attente.---- Error code:-2147217401 \[CRSDK00000000\] Error code name:agentTimeout. L'utilisateur a certainement trop tardé à effectuer une action dans son browser.

Erreur de connexion au serveur

Wiki Markup
\{DATE\} \{HOUR\}:00|AVERTISSEMENT\[\{2AD35A50-EC1C-4F43-92E5-22A45E8CABC5\} \{USER\} \{$PCS\}\appl\ACS_ACCOUNTING_STRUCTURE\RPT\ACS_ACCOUNTING_PLAN.rpt\] ReportRecord.checkMissingParameters Ex: Unable to log on: Could not connect to server \{servername\}.  Please check that the server name is correct, and that the server is running.
Pour déterminer l'origine et la source de l'erreur, il faut démarre le CRAS en ligne de commande à la place du service. Voir le chapitre _Lancement du CRAS en ligne de commande{_}.

...

  • Résolutions :
    • SAP recommande de redémarrer le service CRAS régulièrement
    • Installer le CRAS SP7
  • Temporairement :
    • Configurer une tâche planifiée pour redémarrer le CRAS quotidiennement

...

En cas de problème avec le CRAS (par exemple avec les licences), l'exécution en ligne de commande permet d'avoir un message d'erreur indiquant plus précisément le problème.

  1. Lancer le "Central Configuration Manager" depuis le menu de Windows.
  2. Stopper si nécessaire le service avec le bouton ou via un clic droit.
  3. Ouvrir les Properties du service.
  4. Copier la ligne de commande du lancement du service. Image Removed
  5. Ouvrir un CMD en mode administrateur.
  6. Exécuter la ligne de commande en supprimant préalablement le param. -service: "\\200WS265DWA\C$\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\crystalras.exe" -service -name 200WS265DWA.RAS -ipport 1566 -restart devient: "\\200WS265DWA\C$\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\crystalras.exe" -name 200WS265DWA.RAS -ipport 1566 -restart
  7. Une icône apparaît dans la zone de notification en bas à droite.

...

A la ligne de commande du service, ajouter "-trace" voire "-crpetrace7" ( prud
ence, le volume de logs est impressionnant ).

Timeout

En cas de plantage après 10 minutes d'exécution d'un rapport volumineux, modifier la commande de lancement du CRAS pour ajouter le paramètre -requesttimeout nnnnnn.

  • Arrêter le service depuis ProConcept CrystalServer ou Central Configuration Manager
  • Modifier la commande de lancement en ajoutant à la fin : -requesttimeout
    • La valeur est indiquées en millisecondes 1200000 => 20 minutes
  • Démarrer le service

...

Des clés dans la base de registres de versions précédentes existent. Procéder à la désinstallation complète et nettoyer la registry, principalement les clés KeycodeDefinitions qui pointent vers des répertoires obsolètes.
Voir dans :

...

Version minima

11.02

Theme/Function

Environnement/Rapports

Object

PC_REPORT Services/Environnement/Rapports)

View file
nameFAQ Crystal Report Vis220 OperationDocumentation.pdf
height250