none
Comment lancer un assembly contenant un état Crystal Report SAP ? RRS feed

  • Question

  • Bonjour,

    j'ai une application avec de nombreux programmes qui sont lancés via des assembly. Le programme principal a un mdiForm avec un menu qui lorsque qu'on clique sur un item du menu charge un assembly/executable en mdiChildren.

    Certains programmeS doivent donner lieu a des éditions/états. Pour cela j'utilise Crystal Report SAP livré avec VS2010. Chose un peu gênante, les composants CR SAP ne sont utilisables que dans la version 3.5 du Framework .Net et j'utilise le Framework 4 pour mon menu principal et tous mes autres programmes lancés en mdiChildren.

    Pour ne pas intégrer de contrôles Crystal Report dans chaque programme devant faire une édition, j'ai crée une application d'édition fonctionnant sur Framework 3.5 à laquelle j'envoie un dataset de données et toutes les informations pour créer le report.

    Je charge donc l'assembly de ce programme d'édition en mdiChildren depuis mon mdiForm principal comme pour tous mes autre programmes.

    Le programme se plante ("application menumdi a cessé de fonctionner") sur la fonction "SetDataSource" de mon ReportDocument lorsque je lance une édition depuis le mdiForm. Alors que le programme d'édition fonctionne parfaitement tout seul sans passer par le menu.

    Avez vous une idée ?

    Merci d'avance

    jeudi 8 décembre 2011 09:35

Réponses

  • Bonjour,

    vérifier que dans les propriétés de votre projet, vous ciblez bien le framework 4 (complet) et non le framework 4 client profil. Crystal report doit sans doute utiliser des librairies qui ne sont pas présentes dans le client profil d'ou le message.

    Cordialement

    jeudi 8 décembre 2011 13:58
    Modérateur
  • Je crois effectivement qu'installer le framework 4 complet sera plus pratique que d'avoir à utiliser à la fois le profil client 4 et le framework 3.5.

    Voir peut-être si il n'y aurait pas une mise à jour chez SAP. Je pense qu'il pourrait s'agir d'un problème qui survient lorsque le fournisseur ne respecte pas totalement le principe de séparation entre le mode "design" et le mode "runtime" (qq chose du style un attribut "design time" appliqué sur des classes "runtime" ce qui du coup impose l'utilisation du framework complet).

    Certains ont du faire des mises à jour pour corriger ce point et permettre l'utilisation du profile client...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    jeudi 8 décembre 2011 16:15
    Modérateur
  • Je n'ai finalement pas trouvé la source du problème mais j'ai pu le résoudre grâce au Sp2 Crystal Report for VS2010 (sorti récemment) disponible ici https://forums.sdn.sap.com/thread.jspa?threadID=2085554&tstart=0

    J'ai fait la mise à jour dans mon environnement de développement, j'ai recompilé mon programme d'édition puis je l'ai déployé avec le nouveau runtime CR disponible sur le même lien. Tout fonctionne correctement (module lancé en autonome ainsi que par mon menu mdi)

     

    mercredi 21 décembre 2011 16:26

Toutes les réponses

  • Bonjour,

    Ce qui m'interpelle est que CR serait livré avec VS 2010 mais incompatible avec le runtime 4.0 ?! Je creuserais plutôt de ce côté car cela me parait vraiment bizarre.

    http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e06b8953-a62b-2d10-38b9-ca71f747e2b1?QuickLink=index&overridelayout=true semble indiquer que c'est possible (mais il y a peut-être qq chose à mettre dans le fichier config).


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    jeudi 8 décembre 2011 12:41
    Modérateur
  • En effet Patrice cela semble bizarre, mais lorsque je crée une nouvelle solution en framework 4.0 et que je me met en mode designer, je vois dans l'onglet Reporting de la boîte à outils "Les contrôles dans cette catégorie ne son pas disponible pour .NET Framework 4 ClientProfile"

    Je vais lire ce document pour voir si mon problème peut être résolu en passant mon programme d'édition en 4.0.

    jeudi 8 décembre 2011 13:23
  • Bonjour,

    vérifier que dans les propriétés de votre projet, vous ciblez bien le framework 4 (complet) et non le framework 4 client profil. Crystal report doit sans doute utiliser des librairies qui ne sont pas présentes dans le client profil d'ou le message.

    Cordialement

    jeudi 8 décembre 2011 13:58
    Modérateur
  • Je crois effectivement qu'installer le framework 4 complet sera plus pratique que d'avoir à utiliser à la fois le profil client 4 et le framework 3.5.

    Voir peut-être si il n'y aurait pas une mise à jour chez SAP. Je pense qu'il pourrait s'agir d'un problème qui survient lorsque le fournisseur ne respecte pas totalement le principe de séparation entre le mode "design" et le mode "runtime" (qq chose du style un attribut "design time" appliqué sur des classes "runtime" ce qui du coup impose l'utilisation du framework complet).

    Certains ont du faire des mises à jour pour corriger ce point et permettre l'utilisation du profile client...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    jeudi 8 décembre 2011 16:15
    Modérateur
  • Tout d'abord merci pour ces infos.

    @nikho : en passant mon module d'édition en framework 4 complet au lieu de client profile, et en ajoutant dans app.config (comme le disais Patrice) :

      <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" />
      </startup>

    les contrôles Crystal Report SAP sont bien disponibles et j'ai pu donc pleinement intégrer mon module avec l'ensemble de mon projet qui était en framework 4. (ceci est déjà un bon point)

    @Patrice : en regardant de plus prés votre lien sur SAP Crystal Report, je me suis rendu compte d'une chose dans le tableau "Data Source Connectivity"

    [ Name ]                      [ Provider ]   [ 32-bit(1) ]   [ 64-bit(1) ]  [ Unicode Support ]
    [ Field Definitions(4) ]  [ N/A ]         [ Yes ]           [ No ]            [ Yes ]

    (4) The data source connectivity is deprecated and will be discontinued in a future release.

    Si je comprends bien, la méthode que j'utilise pour créer mes états en envoyant un dataset à mon contrôle CR SAP ne serait pas supporter sur 64bits ?

    A partir de là, voici les tests que j'ai réalisé (malheureusement sans pouvoir résoudre mon problème) :

    sur un poste client 32 bits avec framework 4 + runtime CR SAP + toutes les dll de CR visibles dans mon module d'édition (CrystalDecisions.CrystalReports.Engine.dll, CrystalDecisions.ReportSource.dll, CrystalDecisions.Shared.dll, CrystalDecisions.Windows.Forms.dll, FlashControlV71.dll) que je ne retrouvais pas sur le poste

    > Avec l'ancienne version de mon module d'édition sous Framework 3.5

    • lancement du programme seul (sans être appelé via le chargement d'un assembly depuis le mdiForm principal) et sans chargement des données (via SetDataSource) > OK, les contrôles CR SAP Viewer se charge bien
    • lancement du programme seul (sans être appelé via le chargement d'un assembly depuis le mdiForm principal) avec chargement des données > OK, les contrôles CR SAP Viewer se charge bien ainsi que le report avec les données
    • lancement du programme via le chargement d'un assembly depuis le mdiForm principal et sans chargement des données > OK, les contrôles CR SAP Viewer se charge bien
    • lancement du programme via le chargement d'un assembly depuis le mdiForm principal et avec chargement des données > ERREUR , le programme "nom de mon mdiForm" a cessé de fonctionner (l'erreur semblant venir de la ligne SetDataSource)

    > Avec la nouvelle version de mon module d'édition sous Framework 4.0

    • lancement du programme seul (sans être appelé via le chargement d'un assembly depuis le mdiForm principal) et sans chargement des données (via SetDataSource) > OK, les contrôles CR SAP Viewer se charge bien
    • lancement du programme seul (sans être appelé via le chargement d'un assembly depuis le mdiForm principal) avec chargement des données > ERREUR, le module d'édition a cessé de fonctionner
    • lancement du programme via le chargement d'un assembly depuis le mdiForm principal et sans chargement des données > OK, les contrôles CR SAP Viewer se charge bien
    • lancement du programme via le chargement d'un assembly depuis le mdiForm principal et avec chargement des données > ERREUR , le programme "nom de mon mdiForm" a cessé de fonctionner (l'erreur semblant toujours venir de SetDataSource)

     

    Bien sur, sur mon poste de développement tout fonctionne correctement (Windows 7 32 bits Visual Studio 2010 + framework 4 + SAP CR for VS2010)

    Patrice : concernant votre second message, vous pensez que SAP devrait fournir une  mise à jour de leurs contrôle pour version client profile 4 de .net ?

    Concrètement, que se passe t'il sur le poste client lorsque le module d'édition utilise le framework 4 complet ? Est ce qu'il faut que j'installe autre chose sur le poste client pour que cela fonctionne (chose qui pourrait expliquer le fait que même sans passer par le mdiForm, mon module sous .Net 4 complet ne fonctionne plus)

    vendredi 9 décembre 2011 15:23
  • Bonjour,

    Il est important comprendre les différences entre les versions complètes et les versions client profile. Sur la page MSDN concernant le .NET Framework Client Profile on voit que :

     

    .NET Framework 4 Client Profile est un sous-ensemble du .NET Framework 4 optimisé pour les applications clientes.Il fournit des fonctionnalités pour la plupart des applications clientes, notamment Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF), et des fonctionnalités ClickOnce.Cela permet d'accélérer le déploiement et de réduire le package d'installation pour les applications qui ciblent le .NET Framework 4 Client Profile.

     

    et que :

     

    Si vous ciblez .NET Framework 4 Client Profile, vous ne pouvez pas référencer un assembly qui n'est pas inclus dans .NET Framework 4 Client Profile. À la place, vous devez cibler .NET Framework 4.Pour plus d'informations, consultez Dépannage des erreurs de ciblage du .NET Framework.

    Vérifiez aussi la liste des assemblys dans .NET Framework Client Profile.

     

    Autres discussions sur le sujet :

     

    http://stackoverflow.com/questions/3579951/net-framework-4-0-client-profile-vs-net-framework-4-0

    http://stackoverflow.com/questions/2759228/difference-between-net4-client-profile-and-full-framework-download

    http://blogs.msdn.com/b/jgoldb/archive/2010/04/12/what-s-new-in-net-framework-4-client-profile-rtm.aspx

     

    Comme les rapports SAP sont aussi utilisés dans les applications ASP.NET qui ne sont pas gérées par .NET Framework Client Profile, je crois que ces contrôles ne seront pas disponibles que dans la version complète de .NET Framework.

     

    Puis, il est difficile analyser les erreurs reçues lors de votre lancement via la mdiForm, vu que le message est assez générale. Si vous pouvez nous donner des messages complétés il sera plus facile vous répondre a votre dernier question.

     

    Cordialement,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mardi 13 décembre 2011 09:32
  • Je n'ai finalement pas trouvé la source du problème mais j'ai pu le résoudre grâce au Sp2 Crystal Report for VS2010 (sorti récemment) disponible ici https://forums.sdn.sap.com/thread.jspa?threadID=2085554&tstart=0

    J'ai fait la mise à jour dans mon environnement de développement, j'ai recompilé mon programme d'édition puis je l'ai déployé avec le nouveau runtime CR disponible sur le même lien. Tout fonctionne correctement (module lancé en autonome ainsi que par mon menu mdi)

     

    mercredi 21 décembre 2011 16:26
  • Merci à vous, ce thread m'aura permis par la même occasion d'homogénéiser mon appli en passant tout en framework 4
    jeudi 22 décembre 2011 09:06