none
Création de Report (Crystal report) dans visual studio 2012 RRS feed

  • Question

  • Bonjour,

    Créant une application utilisant un reportViewer, je souhaiterais insérer dans mon rapport une image.

    Cette image est :

    - Pour le rapport, elle est une source externe.

    - Où se trouve l'image ? Le chemin complet de l'image est stocké dans un champ d'une base de données.

    Voici donc mon problème :

    Ayant créé un dataset typé, lors que je veux afficher le contenu du champ dans mon rapport ( et donc le contenu du champ qui correspond au chemin de mon image). Cela fonctionne parfaitement, c'est-à-dire qu'il m'affiche bien le chemin par exemple : d:\test.jpg.

    Mais moi ce que je veux, ce n'est pas d'afficher le chemin mais l'image elle-même, alors j'y insère un objet de type image, je met la source en "External" et en "value" : =First(Fields!img.Value, "soc"). Cependant rien ne s'affiche.

    Merci de répondre à ma question.

    Bien à vous.

    • Type modifié Aurel Bera vendredi 15 février 2013 14:08 Discussion
    • Type modifié Aurel Bera lundi 18 février 2013 07:11 Question
    lundi 11 février 2013 14:00

Réponses

  • Bonjour,

    Merci pour vos solutions/exemples, mon problème est maintenant résolu, après quelques modif. voici mon code pour ce qui aurait le même problème par la suite :

    Je travaille avec un dataset typé :

    this.tbimageTableAdapter.Fill(this.Database1DataSet.tbimage);
                try
                {
                    DataRow drow;
                    //dt.Columns.Add("Image", System.Type.GetType("System.Byte[]")); --> pas la peine dans mon cas, je l'ai créé dans mon dataset typé
                    drow = Database1DataSet.tbimage.NewRow();

                    FileStream fs;
     
                    BinaryReader br;

                    if (File.Exists("d:/test.jpg")) //--> ceci est un code test pour tester si une de mes images se trouve sur cette partition
                    {
                        fs = new FileStream("d:/test.jpg", FileMode.Open);
                    }
                    else
                    {
                       
                        fs = new FileStream("d:/test.jpg"/*, FileMode.Open);
                    }

                    br = new BinaryReader(fs);

                    byte[] imgbyte = new byte[fs.Length + 1];

                    imgbyte = br.ReadBytes(Convert.ToInt32((fs.Length)));
                    drow["image_stream"] = imgbyte;

                    Database1DataSet.tbimage.Rows.Add(drow);

                    br.Close();

                    fs.Close();

                    reportViewer1.LocalReport.ReportPath = Application.StartupPath + @"\Report1.rdlc";

                    this.reportViewer1.RefreshReport();
                }
                catch (Exception ex)
                {

                    MessageBox.Show(ex.Message);

                }
            }

    Voilà en espérant que ça peut aider.


    • Modifié Laureyns b dimanche 17 février 2013 17:37
    • Marqué comme réponse Aurel Bera lundi 18 février 2013 07:11
    dimanche 17 février 2013 17:36

Toutes les réponses