نوشته شده توسط
khokhan
باشه چشم
من تازه گرم صحبت می شدم که دوستان مرحمت نموده ...............
عرض کنم به چندروش این کار انجام می شه که دوستان هم اشاره نمودند
یکی رو هم من عرض می کنم
فرض می کنیم ما در پوشه اصلی برنامه یه پوشه داریم و چند تا عکس توشه و می خواهیم یکی از اینها رو به گزارش ارسال کنیم
یه کنترل از نوع image به گزارش اضافه می کنیم و یه نام براش می گذاریم
بعد می ریم سمت برنامه :
باز فرض می کنیم همه کارها ی ابتدایی رو کردیم مثل افزودن رفرنسها و گذاشتن فایلهای dll غیره
یه باتن می گذاری توی فرم و دابل کلیک و کد نویسی :
ابتدا یه متد می نویسی تا از طریق فایل استریم بتونی اون فایل داخل پوشه رو بخونی :
اینطوری :
Image bmp = null;
System.IO.FileStream stream = null;
string fileName = (Application.StartupPath + @"\Images\" + "myjpeg.jpg");
stream = new System.IO.FileStream(fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
byte[] buf = new byte[stream.Length];
stream.Read(buf, 0, buf.Length);
bmp = Image.FromStream(new System.IO.MemoryStream(buf));
بعد گزارشی رو که درست کردی رو به برنامه معرفی می کنی و مسیرش رو میدی :
Stimulsoft.Report.StiReport stiReport1 = new Stimulsoft.Report.StiReport();
stiReport1.Load(System.Windows.Forms.Application.S tartupPath + @"\stirpt.mrt");
stiReport1.Compile();
خوب قسمت اصلی کار اینجاست که اون پیکچر باکس رو معرفی کنیم و فایل داخل استریم رو بهش اختصاص بدیم :
(stiReport1.GetComponentByName("rajab") as StiImage).Image = bmp;
و سرانجام هم گزارش رو فراخوانی ونمایش بدیم :
stiReport1.Design();
stiReport1.Show();