ورود

View Full Version : دیرنمایش دادن گزارش



miladkj
دوشنبه 12 مرداد 1394, 16:11 عصر
سلام بچها نمیدونم چرا وقتی میخوام با استیمول سافت گزارش بگیرم دو دقیقه باید صبرکنم تا گزارش مورد نظر رو نشون بده و این بسیار بد هست.
و میخوام کاری کنم ک زود گزارش رو نشون بده.ممنون میشم کمکم کنید(سی شارپ و استیمول سافت. برنامم ویندوزی هست و بصورت اینتیتی فریم ورک نوشتم)
باتشکر

ژیار رحیمی
دوشنبه 12 مرداد 1394, 16:24 عصر
سلام .کدهاتونو بزارین ببینیم کجا مشکل داره

miladkj
دوشنبه 12 مرداد 1394, 17:04 عصر
اینم عکس کدش (http://s6.uplod.ir/i/00653/rujr2egfyut7.jpg)
من دوتا گزارش میخوام بگیرم و همین کد رو برای گزارش اولم نوشتم و بسرعت اجرا میشه و گزارش رو نشون میده ولی این گزارش دومم ک کدش تو عکس مشخصه باید دو دقیقه بمونم تا گزارش رو نشون بده البته بعضی موقع ها هم خطا میده(البته تعداد رکورد هام هم زیاد نیستن ک بگیم شاید دلیلش زیاد بودن تعداد رکوردها باشه با دوتا رکورد هم همین مشکل رو دارم)
http://s6.uplod.ir/i/00653/rujr2egfyut7.jpg

ژیار رحیمی
دوشنبه 12 مرداد 1394, 17:56 عصر
شما از View استفاده کردی.در View شما چند جدول رو با هم Join کردی حالا وقتی داری از متد ToList() استفاده میکنی باعث کند شدن query شما میشه بهتره یا متد Tolist() رو از انتهای Query خود برداری یا خود View که در دیتابیس ساختی با LINQ دوباره بنویس

ژیار رحیمی
دوشنبه 12 مرداد 1394, 18:02 عصر
راه دیگه شم اینه که شما Query تون رو از توی report فراخوانی کنی(شما مستقیم به sql server کانمت شی و View خودتو فراخوانی کنی)

miladkj
دوشنبه 12 مرداد 1394, 18:13 عصر
ToList() رو از اخرش حذف کردم ولی هیچ تغییری نکرد.
منظورتون رو از "View که در دیتابیس ساختی با LINQ دوباره بنویس" متوجه نشدم. من لینک کار نکردم و فقط اینتیتی فریم ورک بلدم.
داداش روش دیگه ای نیست؟ واقعا لنگم کرده این گزارش گیری. چند روز دیگه هم دفاعیه همین پروژم هست

anubis_ir
دوشنبه 12 مرداد 1394, 18:24 عصر
اگر از code first استفاده مي‌كنيد، از متد AsNoTracking (http://www.dotnettips.info/post/966/%d9%86%d8%ad%d9%88%d9%87-%da%a9%d8%a7%d9%87%d8%b4-%d9%85%d8%b5%d8%b1%d9%81-%d8%ad%d8%a7%d9%81%d8%b8%d9%87-ef-code-first-%d8%ad%db%8c%d9%86-%da%af%d8%b2%d8%a7%d8%b1%d8%b4%da%af%db%8c%d8%b1%d b%8c-%d8%a7%d8%b2-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa) كمك بگيريد. اگر db first هست MergeOption = MergeOption.NoTracking (http://www.dotnettips.info/post/966/%d9%86%d8%ad%d9%88%d9%87-%da%a9%d8%a7%d9%87%d8%b4-%d9%85%d8%b5%d8%b1%d9%81-%d8%ad%d8%a7%d9%81%d8%b8%d9%87-ef-code-first-%d8%ad%db%8c%d9%86-%da%af%d8%b2%d8%a7%d8%b1%d8%b4%da%af%db%8c%d8%b1%d b%8c-%d8%a7%d8%b2-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa#comment-6203) رو تنظيم كنيد.

miladkj
دوشنبه 12 مرداد 1394, 18:41 عصر
zagroti (http://barnamenevis.org/member.php?48557-zagroti) عزیز واقعا دمت گرم مشکلمو حل کردی خدا خیرت بده. داداش از همون روشی که گفتی یعنی رفتم توی استیمول سافت بعد از همون جا بهش ویو رو معرفی کردم و از سمت سی شارپ فقط آدرس فایل گزارشم رو دادم و میلی ثانیه ای اجرا شد.

ژیار رحیمی
دوشنبه 12 مرداد 1394, 18:56 عصر
zagroti (http://barnamenevis.org/member.php?48557-zagroti) عزیز واقعا دمت گرم مشکلمو حل کردی خدا خیرت بده. داداش از همون روشی که گفتی یعنی رفتم توی استیمول سافت بعد از همون جا بهش ویو رو معرفی کردم و از سمت سی شارپ فقط آدرس فایل گزارشم رو دادم و میلی ثانیه ای اجرا شد.

فقط یادت نره که ConnectionString رو با کد نویسی به گزارشت بفرستی.اگر ConnectionString رو نفرستی ممکنه رو سیستم دیگه گزارشت با خطای مربوط به ConnectionString کار نکنه .این دو خط کارش ارسال ConnectionString به فابل گزارشت هست

stiRpt.Dictionary.Databases.Clear();
stiRpt.Dictionary.Databases.Add(new StiSqlDatabase("Connection", db.Database.Connection.ConnectionString));


(db) نام نمونه object ساخته شده از DataContext میباشد که با نام نمونه ساخته شده کد خود جایگزین کن