ورود

View Full Version : حرفه ای: اشکال در refresh شدن گرید مشتق شده از گرید استاندارد



یوسف زالی
سه شنبه 15 اسفند 1391, 21:14 عصر
سلام.
اول لازمه یکم توضیح بدم:
بنده یک کامپوننتی نوشتم مشتق شده از گرید که خاصیت های افزوده شده ای داره.

خواهش می کنم اگر قراره بگید فلان داستان رو نصب کن، آتیش رو دوباره کشف نکن، چرخ ما پنچر شده و اینها، اصلا جواب ندید بهتره.

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

لازمه که هربار که دیتاست متصل به گرید Refresh می شه (مثلا در ADO می تونه Close-Open یا Requery باشه) با رفرش شدنش گرید هم اطلاعات رو بازنشانی کنه.

گرید در Protected خودش یک شی DataLink داره که اخبار مربوط به دیتاست رو دریافت می کنه.
با جایگزینی و کنترل این شی می تونیم بفهمیم که دیتاست متصل به گرید چی شد.

اما مشکلات:
1-با هر بار رفرش شدن، بیش از یک بار دیتالینک کال می شه. مثلا با Close-Open شدن ADO سه بار لود انجام می شه که دوبارش غیر ضروری هست.

2-فرض بگیرید که خود باز و بسته شدن دیتاست به کرات انجام شه، ما تنها آخرینش رو لازم داریم. آخرین رو می تونیم مثلا از آخرین رفرش + یک چهارم ثانیه بفهمیم. چه راهی جز تایمر برای این کار سراغ دارید؟ استفاده از Thread رو درون یک کامپوننت چگونه می بینید؟

ممنونم.

ali_reza_nazari
جمعه 16 فروردین 1392, 22:44 عصر
اگر مطمون هستید که 3 بار لود میشه. نمیشه یک متغیر برای شمردن تعداد دفعات بگذارید؟
اینجوری که زمان آخرین بار رفرش رو درنظر بگیره
اگر خیلی قبل بود، این بار رو 1 درنظر بگیره
اگه نزدیک بود به شمارنده دفعات یکی اضافه کنه
و در سومین مرتبه کار رفرش رو انجام بده

BORHAN TEC
شنبه 17 فروردین 1392, 18:37 عصر
سلام
کدت را جهت بررسی بیشتر قرار بده تا شرایط تست فراهم بشه و اگه این کار امکان پذیر نیست کامپوننت ساده ای در این زمینه بساز و کدش را ضمیمه کن. تنبلیه دیگه چه کار کنیم؟! :چشمک:

یوسف زالی
شنبه 17 فروردین 1392, 21:40 عصر
سورس رو بسیار ساده شده می گذارم.
ممنون از توجه دوستان.
مشکل اول رو با اصلاح در رویداد حل کردم.
حالا بزرگواران نظرتون در رابطه با مشکل دوم چیه؟

http://persianupload.com/kleeja/do.php?filename=136526986503941.rar

تو سایت نشد آپ کنم.