PDA

View Full Version : سوال: استفاده از progress bar در زمان ساخته شده گزارش



babak7788
سه شنبه 19 آبان 1388, 07:27 صبح
من از کریستال ریپورت برای گزارش گیری استفاده می کنم می خواهم وقتی گزارش داره لود میشه progress bar شروع به کار کنه

خودتون ميدونين مدت لود گزارش به مشخصات سیستمی که برنامه روش نصب است هم بستگی داره مثل Ram و سرعت cpu

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

Happy_davood
سه شنبه 19 آبان 1388, 11:43 صبح
سلام
چون نمیشه مدت لود گزارش رو تخمین زد باید پراپرتی ProgressBar رو به حالت Marquee قرار بدید تا مدام در حال Progress باشه .
البته به احتمال زیاد چون عمل لود شدن گزاش باعث خواهد شد که رابط کاربر شما از جمله ProgressBar برای مدتی از کار بیافته . برای حل این مشکل از BackgroundWorker استفاده کنید . زمان شروع BackgroundWorker باید ProgressBar رو نمایش بدید و در زمانی که کار Worker تموم شد مخفیش کنید .

تقریباً این روش اول و آخر هست .

توصیه می کنم زمان شروع برنامه اگر Splash دارید یه گزارش رو پشا پرده (باز با Worker) باز کنید تا کاربر هنگام استفاده واقعی از گزارش زیاد معطل نشه . چون اگر دقت کنید همیشه گزارش اول زمان لود بالا داره و گزارشات خیلی زود تر لود میشن .

l7i7l7
چهارشنبه 20 آبان 1388, 08:28 صبح
دوست عزيز ممنون از راهنماييتون

اگه ميشه قسمت زير رو بيشتر توضيح بدين



توصیه می کنم زمان شروع برنامه اگر Splash دارید یه گزارش رو پشا پرده (باز با Worker) باز کنید تا کاربر هنگام استفاده واقعی از گزارش زیاد معطل نشه . چون اگر دقت کنید همیشه گزارش اول زمان لود بالا داره و گزارشات خیلی زود تر لود میشن .




ممنونم

Happy_davood
چهارشنبه 20 آبان 1388, 12:20 عصر
سلام
نمی دونم متوجه منظورم از Splash شدید یا نه . Splash Screen همون صفحه گرافیکی هست که برنامه ها زمان لود شدن نشون میدن . مثلاً فتوشاپ . خوب در زمان نمایش Splash Screen برنامه نویس شروع می کنه یه سری کار های زمانبر رو انجام میده . مثلاً تنظیمات رو از بانک اطلاتی می خونه و لود می کنه و ... شما هم می تونید در زمان نمایش Splash به گزارش رو رو باز کنید (بدون نمایش) تا وقتی وارد برنامه شدید دیگه باز کردن گزارش کاربر رو اذیت نکنه . معمولاً کاربر به Splash Screen عادت می کنه و براش آزار دهنده نیست ولی اگه همین زمان رو وسط برنامه لازم باشه تا صبر کنه براش آزار دهنده میشه .

چه از Spalsh استاده کنید و چه ازProgressBar در هر دوحالت لود شدن گزارش رو باید داخل یه BackgroundWorker انجام بدید که Splash یا ProgressBar و کلاً GUI از کار نیفته .