ورود

View Full Version : سوال: فراخوانی مجدد اطلاعات هنگام گزارش گیری



MahmoodM30
سه شنبه 31 تیر 1393, 12:16 عصر
سلام به همه دوستان من برای گزارش گیری از این کد زیر استفاده میکنم و به وقتی روی دکمه پرینت کلیک میکنم برای اولین بار لیست مورد نظرم رو پرینت میکنه

ولی وقتی میبندم و داده جدیدی رو وارد دیتابیس میکنم و مجدد پرینت میگیرم همون داده های قبلی رو پرینت میکنه حتی داده ها رو هم حذف کنم

ممنون میشم دوستان راهنمایی کنن کد من هم اینه



DataSetLoginKalaTableAdapters.AnbarTableAdapter a = new DataSetLoginKalaTableAdapters.AnbarTableAdapter();
a.Fill(DataSetLoginKala1.Anbar);
stiReport1.RegData(DataSetLoginKala1.Anbar);
stiReport1.Show();

گزارش گیری با Stimulsoft Reports

s.karim
سه شنبه 31 تیر 1393, 13:32 عصر
قبل از show کردن گزارش، اینو بنویس

StiReport1.Compile();

MahmoodM30
سه شنبه 31 تیر 1393, 14:20 عصر
ممنون دوست عزیز ولی دفعه اول فقط پرینت میگیره و دفعه دوم صفحه خالی میشه و باید فرم و ببندیم و دوباره باز کنیم

Imenam
جمعه 03 مرداد 1393, 14:22 عصر
سلام به همه دوستان من برای گزارش گیری از این کد زیر استفاده میکنم و به وقتی روی دکمه پرینت کلیک میکنم برای اولین بار لیست مورد نظرم رو پرینت میکنه

ولی وقتی میبندم و داده جدیدی رو وارد دیتابیس میکنم و مجدد پرینت میگیرم همون داده های قبلی رو پرینت میکنه حتی داده ها رو هم حذف کنم

ممنون میشم دوستان راهنمایی کنن کد من هم اینه



DataSetLoginKalaTableAdapters.AnbarTableAdapter a = new DataSetLoginKalaTableAdapters.AnbarTableAdapter();
a.Fill(DataSetLoginKala1.Anbar);
stiReport1.RegData(DataSetLoginKala1.Anbar);
stiReport1.Show();

گزارش گیری با Stimulsoft Reports

من هم همین مشکل رو دارم
دوستان کسی نیست کمک کنه؟

s.karim
شنبه 04 مرداد 1393, 10:51 صبح
من دیتاسورس رو درون خود محیط دیزاین استیمول تعریف میکنم و جدول یا پروسیجر رو تو اون تعریف می کنم
و سمت کد فقط استیمول رو show می کنم
و هیچوقت این مشکلی که شما می گین رو نداشتم
اگه خواستین بگین براتون مثال بزنم

Imenam
شنبه 04 مرداد 1393, 18:29 عصر
من دیتاسورس رو درون خود محیط دیزاین استیمول تعریف میکنم و جدول یا پروسیجر رو تو اون تعریف می کنم
و سمت کد فقط استیمول رو show می کنم
و هیچوقت این مشکلی که شما می گین رو نداشتم
اگه خواستین بگین براتون مثال بزنم

اگه لطف کنید و یک مثال بزنید ممنون میشم دوست عزیز:چشمک:

s.karim
یک شنبه 05 مرداد 1393, 09:57 صبح
private void btReport_Click(object sender, EventArgs e)
{

Stimulsoft.Report.StiReport report = new Stimulsoft.Report.StiReport();
report.Load(Application.StartupPath + "\\Report\\ArzReport.mrt");
report.Compile();
report.Render();
report.Show();

}



121598

121599

121600

جالا اگه خواستی می تونی کانکشن و سایر تنظیمات رو از درون کد هم تنظیم کنی.

MahmoodM30
یک شنبه 05 مرداد 1393, 12:11 عصر
من برای این کار میام و مثلا FilmDataSet.xsd به این اسم ایجاد میکنم و با دیتابیس و جدول مورد نظرم ارتباط میدم بعد روی stiReport1 که اوردم توی صفحه راست کلیک میکنم و Datasource دیتا ستم رو انتخاب میکنم باز روی stiReport1 کلیک راست و وارد صفحه طراحی میشم

این مدلی هم درست کار میکنه ولی همونطور که میگم فقط دفه اول داده ها رو نشون میده دفعات بعدی تکراری نشون میده و داده های جدید رو نه

s.karim
یک شنبه 05 مرداد 1393, 12:41 عصر
DataSetLoginKalaTableAdapters.AnbarTableAdapter a = new DataSetLoginKalaTableAdapters.AnbarTableAdapter();
a.Fill(DataSetLoginKala1.Anbar);
stiReport1.Dictionary.Clear();
stiReport1.RegData(DataSetLoginKala1.Anbar);
stiReport1.Dictionary.Synchronize();
stiReport1.Compile();
stiReport1.Render();
stiReport1.Show();

و دقت داشته باشین که حتما نام dataTable در کد دقیقا با نام دیتاسورس درون استیمول یکی باشه

fakhravari
یک شنبه 05 مرداد 1393, 13:03 عصر
شما mrt را از ول new کن.
Stireport = new ..

MahmoodM30
یک شنبه 05 مرداد 1393, 13:19 عصر
من این نمونه رو تست کردم درست کار نکرد باز همون مشکل قبلی رو داشت

به این stiReport1.ResetReport(); هم گیر میده و میگه وجود نداره به جاش Reset خالی وجود داره ازونم استفاده کردم جواب نداد

aminhexa
یک شنبه 05 مرداد 1393, 13:22 عصر
قبل از نمایش گزارش این کد رو بزارین مشکل حل میشه


stiReport1.Render();

s.karim
یک شنبه 05 مرداد 1393, 13:30 عصر
Stimulsoft.Report.StiReport stiReport1= new Stimulsoft.Report.StiReport();
DataSetLoginKalaTableAdapters.AnbarTableAdapter a = new DataSetLoginKalaTableAdapters.AnbarTableAdapter();

a.Fill(DataSetLoginKala1.Anbar);

stiReport1.Dictionary.Clear();

stiReport1.RegData(DataSetLoginKala1.Anbar);

stiReport1.Dictionary.Synchronize();

stiReport1.Compile();

stiReport1.Render();

stiReport1.Show();

MahmoodM30
یک شنبه 05 مرداد 1393, 14:05 عصر
خیلی ممنون از دوستان حل شد

برای اینکه داده های جستجو شده مورد نظرمون رو نشون بدم چطوری عمل کنم من به این شکل عمل میکنم

آیا این راه درستشه یا نه روش های مناسبتر دیگه ای هم هست؟


FilmDatabaseDataSet1TableAdapters.TBLOzvTableAdapt er a = new FilmDatabaseDataSet1TableAdapters.TBLOzvTableAdapt er();
a.Fill(filmDatabaseDataSet11.TBLOzv);
stiReport1.Dictionary.Clear();
stiReport1.RegData(filmDatabaseDataSet11.TBLOzv, textBox1.Text);
stiReport1.Dictionary.Synchronize();
stiReport1.Compile();
stiReport1.Render();
stiReport1.Show();

این نمونه هم کار میکنه فقط میخوام بدونم راه مناسبی هست یا نه؟

و یه سوال دیگه اینکه فایل نهایی من روی کدوم سیستم عامل ها بدرستی کار خواهد کرد ؟

روی 64 بیتی 7 که کار میکنه ولی 32 بیتی گیر میده این رو چطوری میتونم رفعش کنم؟

s.karim
یک شنبه 05 مرداد 1393, 14:20 عصر
برای 32 بیتی باید dll های 32 بیتی رو هم در کنار dll های 64 بیتی کنار exe برنامه ات کپی کنی که هم رو 64 جواب بده هم رو 32

Imenam
یک شنبه 05 مرداد 1393, 14:22 عصر
همه ی دنیا رو گشتم... مثلی که این مشکل حل شدنی نیست ... ولی آخر خودم با 3 روز امتحان همه ی متدهای stimul پیداش کردم...تو این سه روز دیگه دیوونه شدم... گفتم بیام نذارم شما مثل من بشید

من رو همون کدی که دوستمون تو پست اول گذاشته توضیح می دم

قدم اول: شما باید قبلا گزارشی را که طراحی کردید رو کنار برنامه ذخیره کرده باشید که اون هم با کلیک روی stiReport1 که به پرژه اضافه کردید و انتخاب گزینه Save Report to File انجامش بدید

قدم دوم: قبل از خط دوم که جدولتون را پر می کنید و این کد هست


a.Fill(DataSetLoginKala1.Anbar);

باید جدولتون رو clear کنید که با این کد انجامش بدید :


DataSetLoginKala1.Anbar.Clear();

و یا هر تعداد جدولی که می خوای پر کنید اول باید مثل همینی که مثال زدم clear کنید.

قدم سوم: قبل از خط دوم که این کد هست


stiReport1.RegData(DataSetLoginKala1.Anbar);

باید این کد رو بنویسی:


stiReport1.Dispose();

و بعد هم گزارشی که تو قدم اول گفتم رو باید load کنید با این کد(من اسم گزارش رو گذاشتم Report123 خب دیگه برو حالشو ببر) :


stiReport1.Load("Report123.mrt");

مخصوصا این مدلی توضیح دادم خودم هم نفهمیدم چی گفتم... کد نهایی میشه یه چیزی شبیه به این

DataSetLoginKalaTableAdapters.AnbarTableAdapter a = new DataSetLoginKalaTableAdapters.AnbarTableAdapter();
DataSetLoginKala1.Anbar.clear();
a.Fill(DataSetLoginKala1.Anbar);
stiReport1.Dispose();
stiReport1.Load("Report123.mrt");
stiReport1.RegData(DataSetLoginKala1.Anbar);

stiReport1.Show();



من اگر بگم که تشکر کن که دیگه مزه نمیده پس برای اینکه تشکرتون بچسبه نمیگم که تشکر یادت نره :لبخند::لبخند::لبخند::لبخند:: بخند:

MahmoodM30
یک شنبه 05 مرداد 1393, 14:26 عصر
مرسی دوست عزیز فقط من فایل طراحی پرینت رو بیرون از پروژه ندارم که داخل خود پروژم میسازم

MahmoodM30
یک شنبه 05 مرداد 1393, 14:41 عصر
برای 32 بیتی باید dll های 32 بیتی رو هم در کنار dll های 64 بیتی کنار exe برنامه ات کپی کنی که هم رو 64 جواب بده هم رو 32

این ها رو از کجا میتونم گیر بیارم؟

s.karim
یک شنبه 05 مرداد 1393, 21:04 عصر
وقتی استیمول رو روی سیستمت نصب می کنی توو شاخه ای که نصب شده برو
بعدش برو داخل bin
dll های 32 بیت و 64 بیت وجود دارن هرکدوم رو می خوای بردار و کپی کن توی شاخه ی خروجی برنامت

MahmoodM30
یک شنبه 05 مرداد 1393, 21:16 عصر
سلام مرسی بابت جواب و راهنمایی ولی من همه این فایل های dll رو کپی کردم ولی کار نمیکنه البته روی لپ تاپ من الان 64 بیت نصبه باز فردا روی لپ تاپ خواهرم میبرم 32 بیته تست میکنم ببینم جواب میده یانه ولی قبلا همه فایل های dll رو اضافه کردم کار نمیکرد

اگه میشد به اسم بگید که عالی میشد

تا اونجایی که من تست کردم این دو تا فایل نیازه

Stimulsoft.Base.dll
Stimulsoft.Report.dll

وقتی روی سون 64 بیت تست میکنم کار میکنه ولی 32 بیت نه کلا برنامه رو نمیزاره اجرا کنه ولی وقتی این dll ها رو کپی میکنم برنامه رو اجرا میکنه ولی پرینت خطا میده

MahmoodM30
یک شنبه 05 مرداد 1393, 21:17 عصر
یکی از فیلد های دیتابیسم فقط اسم عکس ذخیره کردم به صورت mahmood.jpg و .... اگه بخوام اینا رو هم توی هر ردیف پرینت مثل داده های دیگه نشون بدم چیکار کنم

ممنون میشم در این مورد هم راهنمایی کنید با تشکر

s.karim
دوشنبه 06 مرداد 1393, 11:19 صبح
121640

dll های استیمول مورد نیاز برای اپلیکیشن ویندوزی

s.karim
دوشنبه 06 مرداد 1393, 12:35 عصر
نمایش تصویر از طریق آدرس فایلی که در دیتابیس ذخیره شده:
درون محیط دیزاین استیمول:

121643

MahmoodM30
دوشنبه 06 مرداد 1393, 14:03 عصر
ممون از جوابتون

فقط همین کد رو بنویسم؟ مسیر کنار برنامه رو خودش چطوری تشخیص میده؟ عکس های من داخل پوشه poster کنار فایل اجرایی هست این مسیر رو چطوری بهش بدم؟

یا خودش تشخیص میده؟

MahmoodM30
دوشنبه 06 مرداد 1393, 15:13 عصر
به جای DataSourceName نام فیلد مربوط به تصویرم رو نوشتم درسته؟ و بعدشم URLFileName چطوری آدرس رو وارد کنم ممنون میشم واضحتر بیان کنید

MahmoodM30
دوشنبه 06 مرداد 1393, 19:00 عصر
سلام من وقتی میخوام روی ویندوز 32 بیتی 7 پرینت بگیرم این خطا رو میده اون فایل های dll رو هم اضافه میکنم ولی باز این خطا رو میده

121658

MahmoodM30
پنج شنبه 09 مرداد 1393, 21:51 عصر
سلام به دوستان عزیز بعد از گذشت چند روز من نتونستم این تصویر رو فراخوانی و نشون بدم تو پرینت همچنینی مشکل خطای اجرا نشدن پرینت تو ویندوز های 32 بیتی 7

داخل یه پروژه ساده کار کردم پرینت رو ممنون میشم دوستان یه نگاهی بندازن. این مشکل نشون دادن تصویر و ... فکر کنم مشکل خیلی از دوستان باشه

http://s5.picofile.com/file/8132854776/Report.rar.html

MahmoodM30
پنج شنبه 09 مرداد 1393, 22:27 عصر
با کمک دوست عزیز fakhravari (http://barnamenevis.org/member.php?128926-fakhravari) تونستم نمایش تصاویر رو حل کنم گفتم اینجا هم بگم دوستان دیگه یاد بگیرن
کافیه تو ابزارImage برید قسمت ImageURL و داخلش این رو بنویسید


Poster/{TBLOzv.ImageName}

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

TBLOzve هم نام جدول هست و Imagename هم نام فیلد تصاویر هست که داخلش نام عکس ها با فرمتشون نوشته شده مثل m1.jpg و ...

باز دم همه دوستان که راهنمایی میکنن گرم

علی فتحی
جمعه 02 آبان 1393, 17:48 عصر
بر بی خبران کشکک صلوات. با یک کنترل کافیه داخل ویور فرم قرار بدی دیگه چرا این همه مطلب رو پیچوندید عزیزان برنامه نویس.فرم بسته بشه گزارش هم رفرش میشه وصلام

علی فتحی
یک شنبه 04 آبان 1393, 15:05 عصر
اینم
نمونه

DatEntities db = new DatEntities();


var query1 = from i in db.Table3


select i;

(stiReport5.GetComponentByName(
"Namsh") as StiText).Text = Properties.Settings.Default.namsh;

stiReport5.RegBusinessObject(
"Table3", query1);


// stiReport5.Design();

stiReport5.Render();

stiReport5.Show();

stiReport5.Render(
false);

علی فتحی
دوشنبه 14 دی 1394, 22:28 عصر
اینم بهترین جواب

table4BindingSource.DataSource = db.Table4.Where(c=>c.id==m); stiReport3.RegBusinessObject("Table4", table4BindingSource);
stiReport3.Render();
stiReport3.Show();