PDA

View Full Version : سوال: دیر باز شدن صفحه کریستال در برنامه (در اولین اتصال)



aftabeshargh
جمعه 04 فروردین 1391, 11:27 صبح
سلام
تو برنامه از کریستال استفاده میکنم و وقتی اولین بار در هر بار استفاده از برنامه دکمه چاپ رو میزنم یه کمی با تاخیر صفحه چاپ میاد (اما دوباره که چاپ میگیرم سریع میشه " یعنی اونوقت تا هنگامی که برنامه باز هستش بعد از اولین چاپ " چاپ های بعدی سریع میشه)
راهی هست سرعت اولین چاپ یعنی باز شدن کریستال رو زیاد کنم؟

swallow.pa
جمعه 04 فروردین 1391, 12:14 عصر
اگه vs 2008 هستش راهی نداره
ولی توی 2010 خود کریستال سرعتش بالاست

aftabeshargh
جمعه 04 فروردین 1391, 12:22 عصر
آره 2008 :گریه:
میخوام تو لود اولیه فرم اصلی یه اتصال به کریستال بزارم (مثلا نمایش کارت شناسایی...) تا همون اول کار اتصال تقویت بشه که دیگه کاربر وقتی دکمه چاپ رو میزنه دیگه منتظر نمونه ! همون اول کار موقع شروع برنامه یه کمی انتظار بکشه با دیدن تصویر gif (لطفا منتظر بمانید ....) با کلاس تره :قهقهه:
نمایش تصویر gif در شروع برنامه + پیشنهاد شما چیه ؟ (http://barnamenevis.org/showthread.php?333448-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-gif-%D8%AF%D8%B1-%D8%B4%D8%B1%D9%88%D8%B9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF-%D8%B4%D9%85%D8%A7-%DA%86%DB%8C%D9%87-%D8%9F)

ali190
جمعه 04 فروردین 1391, 12:26 عصر
سلام
کلک خوبیه
من هم در یکی از پروژه هام مجبور شدم این کار رو بکنم ،‌ جواب هم گرفتم
یاعلی

aftabeshargh
جمعه 04 فروردین 1391, 12:32 عصر
علیک سلام
آخه من قبلا یه برنامه دانلود کرده بودم (مربوط به آموزشگاه بود فک کنم) که تو همون شروع کار یه کارت شناسایی برا چاپ لود میشد!!!!! جایی هم تو تنظیماتش نداشت که مانع نمایشش در اول کار بشه کاربر !! حالا میفهمم مشکل کارش به خاط چی بوده :قهقهه::قهقهه::قهقهه:

خوب یه راهنمایی کنید دیگه :گیج:
وقتی یه عکس میزارم تو splash screen و تو لود فرم اصلی صداش میزنم " بقیه کار متوقف میشه تا این عکس طبق زمانی که بهش دادم بره !! میخوام همزمان با نمایش spalsh screen (که حاوی عکسه) فرم 2 مربوط به کریستالم لودش کامل بشه .

aftabeshargh
جمعه 04 فروردین 1391, 12:41 عصر
حالا در کل سوالم اینه :
چطور وقتی فرم اصلی برنامه ام لود میشه " درون لود فرم اصلی " همزمان دوتا فرم دیگه لود بشن (که یکی مربوط به فرم نمایش (کارت شناسایی){ بخاط برقراری اتصال به کریستال در اول کار} و فرم دومیش مربوط به SplashScreen1 که حاوی تصویر gif (لطفا منتظر بمانید...) هستش -
که SplashScreen1 به صورت ontop.

swallow.pa
جمعه 04 فروردین 1391, 13:17 عصر
توی vs 2010 مثل stimulsoft report خودش اگه توی بکشه لود اطلاعات - خودشون کاربر رو سرگرم می کنن تصویر گیف کریستال داره و stimulsoft هم گزینه چاپ داره یعنی مایش مشاهده و چاپ رو نشون می ده و برنامه نویس نیازی نداره بفکر این کار ها باشه

aftabeshargh
جمعه 04 فروردین 1391, 13:23 عصر
انشاالله بعد از این پروژه vs2010 رو نصب میکنم

فرید نجفلو
جمعه 04 فروردین 1391, 13:54 عصر
اگه vs 2008 هستش راهی نداره
ولی توی 2010 خود کریستال سرعتش بالاست


توی vs 2010 مثل stimulsoft report خودش اگه توی بکشه لود اطلاعات - خودشون کاربر رو سرگرم می کنن تصویر گیف کریستال داره و stimulsoft هم گزینه چاپ داره یعنی مایش مشاهده و چاپ رو نشون می ده و برنامه نویس نیازی نداره بفکر این کار ها باشه

با تاکید مجددشما من طاقت نیاوردم!
باید عرض کنم خدمتتون این ربطی به نگارش VS و فریم ورک نداره!
این بیشتر به خاطر عملکرد JIT (Just In Time( به معنی فقط در زمان اجرا ست
یعنی اگه شما یک برنامه 100MB نوشته باشید در زمان اجرا کل اون 100MB لود نمیشه! پس هر جا که هر کلاس ، متد ، یا حتی خط لازم شد همون جا هم ترجمه و اجرا می شه
پس باتوجه به این مسئله DLL های کریستال ریپرت لود نمی شن و منتظر می مونن تا در اولین خطی که اسفاده شده لود و اجرا بشه!
و مشکل همین جاست
و اون امکاناتی که شما گفتین خودش سرگرم می کنه زمانیه که DLL ها لود شدن و گزارش در حال تهیه شدنه(یعنی لود شدن گزارش ، اتصال به پایگاه داده ، دریافت و جاگذاری اطلاعات ، رندر کردن گزارش و ...)

اگه خواستید خودتون امتحان کنید:
یک برنامه بنویسید که از کریستال استفاده کرده حالا شما اون رو در سیستمی که کریستال نصب نیست اجرا کنید می بینید که هیچ مشکلی در اجرا وجود نداره
حالا سعی کنید یک گزارش تهیه کنید شما به محض درخواست گزارش با خطا مواجه می شید!


حالا در کل سوالم اینه :
چطور وقتی فرم اصلی برنامه ام لود میشه " درون لود فرم اصلی " همزمان دوتا فرم دیگه لود بشن (که یکی مربوط به فرم نمایش (کارت شناسایی){ بخاط برقراری اتصال به کریستال در اول کار} و فرم دومیش مربوط به SplashScreen1 که حاوی تصویر gif (لطفا منتظر بمانید...) هستش -
که SplashScreen1 به صورت ontop.
همون طور که در اون تاپیکتون هم گفتم باید برای این کار یک نخ جداگانه ارسال کنید تا کریستال رو لود کنه و شما هم تصویر رو نشون بده یا چندتا قصه تعریف کن یا هرچی:قهقهه:
بعد وقتی اون نخ اعلام اتمام کرد شما فرم اصلی رو لود کن
و اینکه اگه می خواید این بحث اینجا ادامه پیدا کنه لطف کنید اون تاپیک رو حذف کنید
چون الان می بینید که من یه بار اونجا نوشتم و یه بار اینجا و مطالب هم تکه تکه میشه!


انشاالله بعد از این پروژه vs2010 رو نصب میکنم
این کار رو هم واسه راحتی و عقب نوندن خودتون هر چه سریعتر انجام بدید

aftabeshargh
جمعه 04 فروردین 1391, 14:14 عصر
سلام
خب اون تایپیک رو حذف کرده بودم دیگه !


بعد وقتی اون نخ اعلام اتمام کرد شما فرم اصلی رو لود کن
نمیخوام که فرم اصلی در مرحله دوم لود بشه
یه چیزی مثل mdiparent میخوام - که البته یه جورایی بهش رسیدم
مرسی

فرید نجفلو
جمعه 04 فروردین 1391, 15:00 عصر
سلام
خب اون تایپیک رو حذف کرده بودم دیگه !


نمیخوام که فرم اصلی در مرحله دوم لود بشه
یه چیزی مثل mdiparent میخوام - که البته یه جورایی بهش رسیدم
مرسی

خب شما فرم اصلی لود کن بعد نخ رو بفرست
اگه هم خواستی تا کاربر فقط منتظر بمونه و شلوغ کاری نکنه فرم اصلی رو Disable کن یا کاری تو این سطح

swallow.pa
جمعه 04 فروردین 1391, 16:03 عصر
این بیشتر به خاطر عملکرد JIT (Just In Time( به معنی فقط در زمان اجرا ست
یعنی اگه شما یک برنامه 100MB نوشته باشید در زمان اجرا کل اون 100MB لود نمیشه! پس هر جا که هر کلاس ، متد ، یا حتی خط لازم شد همون جا هم ترجمه و اجرا می شه

اتفاقا حجم اطلاعاتی که من لود می کردم خیلی پایین بود و ارتباطی با فراخوانی و ... نداشت و برام مشخص شد که خود کریستال ریپورت کند عمل می کنه:گریه:

aftabeshargh
جمعه 04 فروردین 1391, 16:54 عصر
خوب یه راهنمایی عملی و کد نویسی کنید دیگه :خجالت:

با IsMdiParent=true فرم اصلی و نسبت دادن دو فرم دیگه بهش و لود کردن دو فرم دیگه تو لود فرم اصلی میشه همزمان این دو فرم رو اجرا کرد
اما روش mdi یه دردسرایی برام از نظر گرافیکی ایجاد کرد که حالمو گرفت :اشتباه:

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

فرید نجفلو
جمعه 04 فروردین 1391, 21:23 عصر
خوب یه راهنمایی عملی و کد نویسی کنید دیگه :خجالت:

با IsMdiParent=true فرم اصلی و نسبت دادن دو فرم دیگه بهش و لود کردن دو فرم دیگه تو لود فرم اصلی میشه همزمان این دو فرم رو اجرا کرد
اما روش mdi یه دردسرایی برام از نظر گرافیکی ایجاد کرد که حالمو گرفت :اشتباه:

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

به لطف این سایت آدم معنی بعضی کلمات رو بهتر می فهمه:متفکر:
راهنمایی عملی = به جای من بنویس! :قهقهه:
چشم اینم عملی:

84593

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