IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAP Crystal Reports Discussion :

Insertion image dynamique [CR 2008]


Sujet :

SAP Crystal Reports

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Points : 37
    Points
    37
    Par défaut Insertion image dynamique
    Bonjour,
    j'utilise la version de crystal fournie avec VS 2008
    Je fais des rapports avec insertion d'image mais du coup ça me fait des fichiers volumineux.
    Est-il possible d'insérer dynamiquement ces images afin de réduire le volume de mes fichiers ?

    Merci pour vos réponses
    Ikritt

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Pour ma part j'utilise Reporting Services mais je pense que le principe doit être le même :
    Je passe un paramètre supplémentaire à la requête ou proc stock de mon report : IMAGE_PATH (type string)
    Je mets une image sur mon report, indique qu'il s'agit d'une image externe
    Je conditionne son affichage au fait que le paramètre IMAGE_PATH est différent de NULL et n'est pas empty.
    Lors du render de mon report dans une appli web je déclare ma collection de paramètres, et fournis à IMAGE_PATH le lien voulu.

    En espérant que tu puisses appliquer cela à Crystal Reports.

    Edit : euh, après réflexion, je ne vois pas en quoi le fait de charger l'image dynamiquement va rendre le report moins volumineux...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Points : 37
    Points
    37
    Par défaut
    c'est juste pour une histoire de déploiement que je veux insérer l'image dynamiquement.
    Nous faisons beaucoup d'états qui se trouvent dans une dll qui n'arrête pas de gonfler à cause des images que nous insérons.

    je trouve bien ce que tu me dis avec le reporting de microsoft, mais je ne trouve pas la même chose avec Crystal.

    Je continue mes recherches en espérant que quelqu'un pourra m'aider

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    Salut ikritt2

    Je me trouve dans le meme problème que toi. Donc si tu trouve la solution, postes la ici.

    Merci

  5. #5
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 941
    Points : 2 719
    Points
    2 719
    Par défaut
    Citation Envoyé par ikritt2 Voir le message
    c'est juste pour une histoire de déploiement que je veux insérer l'image dynamiquement.
    Nous faisons beaucoup d'états qui se trouvent dans une dll qui n'arrête pas de gonfler à cause des images que nous insérons.
    Bonjour,

    qu'entend tu par "deployer un rapport" ?
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  6. #6
    Membre régulier Avatar de mohamed301084
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2010
    Messages : 104
    Points : 91
    Points
    91
    Par défaut
    En attente de la réponse ....


    Postez si trouvé ..... merci

  7. #7
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 941
    Points : 2 719
    Points
    2 719
    Par défaut
    ben sur CR2008, tu peux indiquer ou se trouve ton image.. et voir passer des paramètres si ton image doit changer en fonction de critères..
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  8. #8
    Membre régulier Avatar de mohamed301084
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2010
    Messages : 104
    Points : 91
    Points
    91
    Par défaut
    Et avec une version de Crystal antérieure à 2008 ?

    J'utilise Crystal Report embedded dans la version Visual Studio 2008.

    Et je n'ai pas du tout cette option...

  9. #9
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 941
    Points : 2 719
    Points
    2 719
    Par défaut
    Citation Envoyé par mohamed301084 Voir le message
    Et avec une version de Crystal antérieure à 2008 ?

    J'utilise Crystal Report embedded dans la version Visual Studio 2008.

    Et je n'ai pas du tout cette option...

    A priori , la version correspondant dans VS2008 est la version 10

    Visual Studio 2008 comes with a bundled version of Crystal Reports called Crystal Reports Basic 2008. CRBasic's version number is 10.5 and is based on the same version (10) that came with Visual Studio 2005.
    Donc effectivement, cette option n'est apparue qu'à partir de la version XI.
    Chez certains Client, pour pouvoir paramétrer les images sur cette version, j'ai utilisé unoutils qui s'appelle cViewImage développé par MindConnection.
    cela fonctionne très très bien, mais.... cela n'est pas gratuit, même si ce n'est pas très cher.

    Fait une recherche sur le Web, tu peux récupérer une version d'évaluation
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  10. #10
    Membre régulier Avatar de mohamed301084
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2010
    Messages : 104
    Points : 91
    Points
    91
    Par défaut
    Merci pour le coup de main.

    J'ai installé le logiciel.


    MAIS je ne trouve pas COM Connectivity pour ajouter le programme ID :

    CViewImage.SingleFile dans l'expert Base de données de mon sous rapport.


    Des idées ?

  11. #11
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 941
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 941
    Points : 2 719
    Points
    2 719
    Par défaut
    Vérifier les options d'installation ??
    Luc

    Disponible - Intervention sur demande tout pays, toutes régions
    Formateur Crystal Reports (toutes versions)
    Contrat de support possible
    N'hésitez pas.... http://paypal.me/lucrascar

  12. #12
    Membre régulier Avatar de mohamed301084
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2010
    Messages : 104
    Points : 91
    Points
    91
    Par défaut
    Malheureusement je n'ai pas le Setup de crystal Report 10.


    Le Crystal Report que j'ai est le Crystal Report incorporé dans Visual Studio.


    Je viens de mettre le CD installation VS 2008 mais aucune section Crystal report n'apparait.


    Mais en installant VS2008, j'avais bien installé tous les composants possibles et imaginables du CD.

    Pour info, j'ai une version VS Professionel.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 25
    Points
    25
    Par défaut possible
    les images dynamique avec crystal report c'est possible

  14. #14
    Membre régulier Avatar de mohamed301084
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2010
    Messages : 104
    Points : 91
    Points
    91
    Par défaut RESOLU
    Effectivement, il est possible d' afficher une image sous crystal report qui sera définie dans le code vb ou c# .net

  15. #15
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 25
    Points
    25
    Par défaut Solution
    Pour afficher une image dynamiquement il faut passer un DATASET fortement typé. je m'explique
    1-Créer un DATASET basé sur la table qui sera rattachée à l'état
    2-Ajouter une colonne à ce DATASET
    3-Nommer cette colonne et changer le type en ByteChar[]
    4-Pour Ajouter le DATASET à crystal report passez par Visual studio ensuite vous pourrez utiliser Crystal Report pour terminer votre état

    Je vous donne ces deux méthodes la première pour remplir le DATASET avec le chemin de l'image et la seconde pour convertir l'image et byte. La seconde méthode est appelé dans la première

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     public void remplirImages(DataTable Dt, string NomCol, int nbc)
            {
                for (int index = 0; index < Dt.Rows.Count; index++)
                {
                    if (!(Dt.Rows[index][nbc].ToString().Equals("")))
                    {
                        string s = Dt.Rows[index][nbc].ToString();
    
                        if (File.Exists(s))
                        {
                            LoadImage(Dt.Rows[index], NomCol, s);
                        }
                        else
                        {
                           // LoadImage(Dt.Rows[index], NomCol, "C\\NoImage.jpg");
                        }
                    }
                    else
                    {
                        //LoadImage(Dt.Rows[index], NomCol, "C\\NoImage.jpg");
                    }
                }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     public void LoadImage(DataRow objDataRow, string strImageField, string FilePath)
            {
                try
                {
                    FileStream fs = new FileStream(FilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                    byte[] Image = new byte[fs.Length];
                    fs.Read(Image, 0, Convert.ToInt32(fs.Length));
                    fs.Close();
                    objDataRow[strImageField] = Image;
                }
     
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
            }

    voici un exemple:

    remplirImages(Dtable, "ImgSrc", 10);

    Dtable=DataTable qui reçoit le DATASET préalablement remplie
    ImgSrc=la colonne créée dans le DATASET. C'est la colonne de type ByteChar[]
    10=la position dans le DATASET du champ contenant l'image.

    Je précise que ce code c'est du C# je l'ai fais et pas de blem ça marche
    Si il y a des incompréhension je suis dispo
    En espérant vous avoir aidés.

  16. #16
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Bonjour ibleseul
    En fait j'ai tester ton code avec du vb.net mais eu jusqu'a present l'image ne s'affiche pas. Je sais pas exactement quel est mon probleme.
    Pour l'enregistrement dans la BD access (Objet OLE) pas de blem l'a dessu mais la franchement je sais plus.
    Voila le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'Fonction pour la requete SQL
     
    Public Class ImpFicheNdongos
     
        Public Function CreateSql() As String
     
     
            Dim sql As String = "SELECT MatriNdongo as Matricule, PrenomNom as Prenom_Nom, DateNaiss as Date_Naissance, LieuNaiss as Lieu_Naissance, Adresse, Telephone, PereName as Nom_Pere, MereName as Nom_Mere, Niveau as NiveauEtude, NomDara as Dahara, NumTof as N°Photo, Longeur, Epaule, Manche, Colle, LongThiaya, Ceinture, Photos as Photo  FROM NDONGOS, DAARAS WHERE NDONGOS.NumDara = DAARAS.NumDara AND NomDara ='" + ListDara.Text + "'"
     
            Return sql
     
        End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ' Code pour charger image que vous avez fourni 
    Public Sub LoadImage(ByVal objDataRow As DataRow, ByVal strImageField As String, ByVal FilePath As String)
            Try
                Dim fs As New FileStream(FilePath, System.IO.FileMode.Open, System.IO.FileAccess.READ)
                Dim Image As Byte() = New Byte(fs.Length - 1) {}
                fs.READ(Image, 0, Convert.ToInt32(fs.Length))
                fs.Close()
                objDataRow(strImageField) = Image
     
            Catch ex As Exception
                MessageBox.SHOW(ex.Message.ToString())
            End Try
        End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    ' Remplir image
     
    Public Sub remplirImages(ByVal Dt As DataTable, ByVal NomCol As String, ByVal nbc As Integer)
            For index As Integer = 0 To Dt.Rows.Count - 1
                If Not (Dt.Rows(index)(nbc).ToString().Equals("")) Then
                    Dim s As String = Dt.Rows(index)(nbc).ToString()
     
                    If File.Exists(s) Then
                        LoadImage(Dt.Rows(index), NomCol, s)
                        ' LoadImage(Dt.Rows[index], NomCol, "C\\NoImage.jpg");
                    Else
                    End If
                    'LoadImage(Dt.Rows[index], NomCol, "C\\NoImage.jpg");
                Else
                End If
            Next
        End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    ' Remplir le report
    Private Sub ListDara_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListDara.SelectedIndexChanged
            Dim objRpt As New Cristal_Fiche_Ndongos()
            Dim db As New DataBase()
     
            Dim query As String = CreateSql()
            Dim query2 As String = CreateSql()
     
            Try
                Dim cn As OleDbConnection = db.connection()
                Dim adepter As New OleDbDataAdapter(query, cn)
                Dim Ds As New DataSetNdongos()
                Dim Dsn As New DataSetNdongos()
     
                adepter.Fill(Ds, "DataTable1")
     
                remplirImages(Ds.DataTable1, "Photo", 16)
     
                objRpt.SetDataSource(Ds)
     
                CrystalReportViewer1.ReportSource = objRpt
     
            Catch oleEx As OleDbException
                MessageBox.Show(oleEx.Message)
     
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
     
        End Sub
    J'espere que vous comprenez a peu pres ce que je veux faire !

  17. #17
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 25
    Points
    25
    Par défaut Solution
    Slt,
    Dans ta requête ne charge pas l'image même (objet OLE) mais plutôt le chemin d'accès à cette image.
    Donc en lieu et place de ton champ photo met le chemin d'accès à l'image et tiens moi informé je reste dispo

    Excuse moi en mettant image je faisais référence au chemin d'accès de l'image.

  18. #18
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Bonjour merci pour la reponse
    En fait il se trouve que le chemin d'acces des photos est tres long. Si je change le type du champ photo de la base en "Texte" ça m'affiche un msg d'erreur a l’insertion qui dit que le champs ne peut pas le contenir

    Je m'explique j'utilise dans un module une fonction que voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Module Module1
        Public chemin As String = CurDir() & "\" & "photos" & "\"
    End Module
    En fait comment je vais charger le chemin de l'image vu que ma table ne peut le contenir.
    Encore une precision j'ai pas une colone de type ByteChar[] dans mon dataset . ça n'existe pas dans ma liste

  19. #19
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 25
    Points
    25
    Par défaut Solution
    Slt,
    Excuse moi tu as raison le type c'est System.Byte[]. Concernant le champ qui doit contenir le chemin de l'image dans la base de données comme c'est une base access met ton champ en Memo au lieu de texte.
    Je suis dispo si tu as d'éventuel question.

  20. #20
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Slt j'ai essayer ce que tu m'a proposé comme solution mais jusqu'a present ça n'affiche pas ! Voila le msg d'erreur
    Incompatibilité de type ne pouvant pas être converti entre SourceColumn 'Photo' et de String et DataColumn 'Photo' de Byte[]

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [FPDF] [Image dynamique] Insertion
    Par Zweihander dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/03/2012, 11h38
  2. Image dynamique avec insertion d'un compteur aléatoire
    Par maitaddi dans le forum Imagerie
    Réponses: 1
    Dernier message: 11/09/2009, 11h07
  3. Insertion d'image dynamique dans un PDF
    Par vg33 dans le forum Autres composants
    Réponses: 5
    Dernier message: 27/10/2008, 10h08
  4. insertion image dynamique
    Par Kenya dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 14/11/2007, 20h33
  5. [CR7] Insérer une image dynamiquement
    Par yoloosis dans le forum SAP Crystal Reports
    Réponses: 12
    Dernier message: 28/07/2003, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo