PDA

View Full Version : نحوه ویرایش مقادیر برخی فیلدها قبل از نمایش در گزارش - stimulsoft



se8820726
دوشنبه 16 شهریور 1394, 20:06 عصر
سلام
من برای گزارش گیری از stimulsoft استفاده میکنم
این نمونه کد من هست:

StiReport rpt = new StiReport();
rpt.Load(Application.StartupPath + @"\data\Report.mrt");
rpt.RegData(ds);
rpt.Dictionary.Synchronize();
rpt.Show();


همه اطلاعات اول از دیتابیس گرفته میشه و تو یه dataset بنام ds ذخیره میکنم و بعد اون ds رو روی rpt با دستور rpt.RegData(ds) ست میکنم.

حالا من میخوام مقادیر بعضی فیلدها قبل از اینکه در report نمایش داده بشه رو بتونم عوض کنم
مثلا فیلد های تاریخ در دیتابیس به صورت میلادی ذخیره میشوند حالا موقع نمایش در گزارش باید اول به شمسی تبدیلشون کنم بعد نمایش بدم.

اما چطوری ؟

systam
سه شنبه 17 شهریور 1394, 09:38 صبح
سلام
این همه convert برای تبدیل تاریخ میلادی به شمسی وجود داره توی سایت بگرد زیاده

موفق باشی

se8820726
سه شنبه 17 شهریور 1394, 09:42 صبح
خسته نباشی
من مشکلم تو کانورت نبود خودم بلد بودم
مشکل تو این بود که چظور تو گزارش مقدار کانورت شده رو نشون بدم ؟!!!

aslan
سه شنبه 17 شهریور 1394, 11:43 صبح
سلام
راههای مختلفی داره .....
بهترین کار بنظرم اینه که دیتاست ارسالی به گزارش حاوی اطلاعات مورد نظر ( مثلا در اینجا کانورت شده ) باشه ...
یک روش هم میتونه این باشه که متدی برای اینکار بنویسی و در استیمول استفاده کنی برای این روش لینک زیر میتونه کمکتون کنه :
http://barnamenevis.org/showthread.php?431557-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-Componet-%D9%87%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF%D9%85-%D8%AF%D8%A7%D8%AE%D9%84-Stimul-Report&highlight=%D8%AA%D8%A7%D8%A8%D8%B9+%D8%AF%D8%B1+%D 8%A7%D8%B3%D8%AA%DB%8C%D9%85%D9%88%D9%84
و .....
موفق باشید

se8820726
سه شنبه 17 شهریور 1394, 19:28 عصر
سلام
راههای مختلفی داره .....
بهترین کار بنظرم اینه که دیتاست ارسالی به گزارش حاوی اطلاعات مورد نظر ( مثلا در اینجا کانورت شده ) باشه ...
یک روش هم میتونه این باشه که متدی برای اینکار بنویسی و در استیمول استفاده کنی برای این روش لینک زیر میتونه کمکتون کنه :
http://barnamenevis.org/showthread.php?431557-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-Componet-%D9%87%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF%D9%85-%D8%AF%D8%A7%D8%AE%D9%84-Stimul-Report&highlight=%D8%AA%D8%A7%D8%A8%D8%B9+%D8%AF%D8%B1+%D 8%A7%D8%B3%D8%AA%DB%8C%D9%85%D9%88%D9%84
و .....
موفق باشید

ممنون
لینکی که معرفی کردینو مطالعه کردم
منتهی به مشکلی خوردم اونم اینه که گزینه referenced assemblies در Report : Report وجود نداره !!
من هم stimulsoft report ultimate 2014 هم stimulsoft report .net 2015 رو دارم ولی هیچکدوم گزینه referenced assemblies رو ندارن !!
میشه منو راهنمایی کنید

135105

aslan
سه شنبه 17 شهریور 1394, 20:41 عصر
میتونین دستی ( تب کد فایل گزارش ) یا از طریق کد اضافه کنین . لینک های زیر میتونه کمکتون کنه
http://forum.stimulsoft.com/viewtopic.php?f=8&t=35008&p=62206&hilit=referenced+assemblies#p62206
http://www.stimulsoft.com/en/videos?tags=all&id=97
http://forum.stimulsoft.com/viewtopic.php?f=8&t=38277&p=73110&hilit=referenced+assemblies#p73110

se8820726
سه شنبه 17 شهریور 1394, 21:35 عصر
واقعا ممنون
با توجه به لینک های شما من از این کد استفاده کردم:

List<String> refs = new List<string>(rpt.ReferencedAssemblies);
if (!refs.Contains("abasalehFuncsForStimulsoft.dll"))
{
refs.Add("abasalehFuncsForStimulsoft.dll");
}


rpt.ReferencedAssemblies = refs.ToArray();


حالا یه مشکل دیگه اینکه من همه فایل های dll رو تو یه فولدر بنام data میریزم که کنار فایل exe برنامه هست.
حالا من باید فایل dll رو کنار exe بزارم نه تو فولدر وگرنه کد نمی تونه پیداش کنه

حتی اگه از این دستور هم استفاده کنم باز فایل dll اضافه نمیشه به ریپورتم:

refs.Add(Application.StartupPath + @"\data\abasalehFuncsForStimulsoft.dll");


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

danialafshari
سه شنبه 17 شهریور 1394, 22:35 عصر
با سلام
نیازی به اینکار ها نیست
برای ارسال مقادیری که تک مقداری هستند مانند نام و تاریخ و تلفن و ... می تونید درون استیمول Variable تعریف کنید و قبل از show کردن چاپ اطلاعات را به صفحه پاس بدید
مانند کد زیر:
stiReport1.Load(Environment.CurrentDirectory + @"\Report.mrt");
stiReport1.RegData("DT1", this.dbFactorDataSet.sp_tblAghlam_LoadData);
//Set Variable
stiReport1.Compile();
stiReport1["VarName"] = txtNF.Text.Trim();
stiReport1.Show();
به جای VarName اسم Variable ی که در استیمول تعریف کردید رو قرار دهید
موفق باشید

mortea
پنج شنبه 10 دی 1394, 22:09 عصر
حالا اگه تک مقداری نباشند و مثلا اطلاعات داخل یه Grid view را بخواهیم بفرستیم چکار کنیم؟