PDA

View Full Version : سوال: عدم تغییر عکس هنگام ارسال به Stimulsoft reports



momimomi
چهارشنبه 30 تیر 1395, 18:27 عصر
با سلام
بنده با استفاده از کدهای زیر بایت را به ایمیج تبدیل می کنم


Bitmap ByteArrayToImage2(byte[] b)
{
MemoryStream ms = new MemoryStream();
byte[] pData = b;
ms.Write(pData, 0, Convert.ToInt32(pData.Length));
Bitmap bm = new Bitmap(ms, false);
return bm;
}

سپس
با کدهای زیر عکس خوانده شده از دیتابیس را به صورت ایمیج به استیمول سافت ارسال می کنم:


Image imgForStimul=null;
//Image imgForStimul = null;
if (code != (object)null)
{
//pictureBox1.Image = null;
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"provider = microsoft.jet.oledb.4.0;" + @"data source =a.mdb";
OleDbCommand com = new OleDbCommand();
com.Connection = con;
com.CommandText = "SELECT photo FROM personel2 WHERE code='" + dgPersonel1.CurrentRow.Cells[4].Value.ToString() + "'";
con.Open();
OleDbDataAdapter da = new OleDbDataAdapter(com);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
if (dt.Rows[0]["photo"] != DBNull.Value)
{
imgForStimul= new System.Drawing.Bitmap(


imgForStimul = ByteArrayToImage2((Byte[])dt.Rows[0]["photo"]);
}


con.Close();
}
}


if (imgForStimul != null)
{


StiVariable svimage = new StiVariable("foldersummary", "image", imgForStimul);
stiFolderSummary.Dictionary.Variables.Add(svimage) ;
}
stiFolderSummary.Compile();
stiFolderSummary.Render();
stiFolderSummary.Show();



کدها به خوبی اجرا می شود اما با تغییر شخص بعدی عکس درج شده در گزارش، عکس همان فرد اولی است و با تغییر فرد عکس جدید از دیتابیس خوانده نمی شود
به نظر شما مشکل کجاست؟

دلتنگ اسمان
چهارشنبه 30 تیر 1395, 19:05 عصر
با سلام
به اینصورت بنویس:


StiReport stiFolderSummary = new StiReport();
stiFolderSummary.Compile();
stiFolderSummary.Render();
stiFolderSummary.Show();

momimomi
چهارشنبه 30 تیر 1395, 19:16 عصر
با سلام
به اینصورت بنویس:


StiReport stiFolderSummary = new StiReport();
stiFolderSummary.Compile();
stiFolderSummary.Render();
stiFolderSummary.Show();





بنده گزارش طراحی شذه دارم و اگر new اجاد کنم صفحه سفید بهم نمایش میده

دلتنگ اسمان
چهارشنبه 30 تیر 1395, 19:50 عصر
گزارش رو کجا ذخیره کردی ؟ آدرسش رو بده.


StiReport.Load("stiFolderSummary.mrt");

momimomi
چهارشنبه 30 تیر 1395, 20:08 عصر
گزارش رو کجا ذخیره کردی ؟ آدرسش رو بده.


StiReport.Load("stiFolderSummary.mrt");

داخل ویژوال استودیو یه گزارش استیمول ساختم و طراحیش کردم و به این شکل ذخیره نکردم

دلتنگ اسمان
پنج شنبه 31 تیر 1395, 05:59 صبح
داخل ویژوال استودیو یه گزارش استیمول ساختم و طراحیش کردم و به این شکل ذخیره نکردم

ببین دوست عزیز گزارش ساخته شده اگه با استیمول هستش با پسوند mrt. هستش که یه جایی از کامپیوتر ذخیره کردی. و هر تغییری هم که در این گزارش بدی موقع بستن ،
پیغام ذخیره رو میده که همون مسیر اصلیش رو نشون میده.
در کل میتونید این کد رو جایگزین سه خط آخر کدهاتون کنی (با فرض این که اسم گزارش ساخته شده stiFolderSummary.mrt هستش):

StiReport stiFolderSummary = new StiReport();
StiReport.Load("stiFolderSummary.mrt");
stiFolderSummary.Compile();
stiFolderSummary.Render();
stiFolderSummary.Show();

میتونی به جای
StiReport.Load("stiFolderSummary.mrt");

از
stiReport.Load(Application.StartupPath + "\\stiFolderSummary.mrt");
هم استفاده کنی.