PDA

View Full Version : نحوه نمایش یک جدول بزرگ



smakhavan
دوشنبه 22 مرداد 1386, 12:55 عصر
من یک جدول دارم که تعداد زیادی ردیف و ستون دارد. (حدود 70 تا 100 هزار و حدود 20 ستون )و باید آنها را یکجا نمایش دهم (چیزی شبیه یک صفحه گستره مثلا اکسل)
وقتی این کار را با dbGrid انجام میدهم سرعت اسکرول و لود شدن و انتخاب ستونها و خلاصه همه چیز سرعتش پایین است.
آیا راهی هست که سرعت این کار را افزایش دهم. کسی میداند اکسل از چه روشی استفاده میکند و تفاوت آن با گرید دلفی چیست؟

Valadi
دوشنبه 22 مرداد 1386, 13:04 عصر
دیتا بیس چیه ؟

ghabil
دوشنبه 22 مرداد 1386, 13:29 عصر
چه جوری میشه که لازم داری 70 هزار تا رکورد رو یکجا لود بکنی؟ کی میتونه اینهمه رکورد رو یکجا ببینه یا بخواد مثلا بینشون دنبال یک چیزی بگرده ، قبل از هر راه حلی من فکر میکنم سناریوت غلطه ، حداکثر 2-3 هزار تا رکورد بیشتر توی Grid آوردن عملا فایده ای نداره بجز کلی حافظه ای که میگیره و همه چیر رو کند میکنه ، اما نهایتا اگر میخوای این کار رو بکنی (که اصلا درست نیست) می تونی DisableControls رو جستجو کنی یک مقداری شاید تو لود بهت کمک کنه.

SYNDROME
دوشنبه 22 مرداد 1386, 13:46 عصر
با سلام

من یک جدول دارم که تعداد زیادی ردیف و ستون دارد. (حدود 70 تا 100 هزار و حدود 20 ستون )و باید آنها را یکجا نمایش دهم (چیزی شبیه یک صفحه گستره مثلا اکسل)
وقتی این کار را با dbGrid انجام میدهم سرعت اسکرول و لود شدن و انتخاب ستونها و خلاصه همه چیز سرعتش پایین است.
آیا راهی هست که سرعت این کار را افزایش دهم. کسی میداند اکسل از چه روشی استفاده میکند و تفاوت آن با گرید دلفی چیست؟
دوست عزیز شما می توانید فقط تعداد رکودهایی را که کاربر می بیند لود کنید.
همانند کاری که Oncalفیلد انجام می دهد.فقط مقادیری را حساب می کند که قابل رویت برای کاربر است.
موفق باشید

smakhavan
دوشنبه 22 مرداد 1386, 15:29 عصر
با تشکر، اینکه گفتید سناریوی استفاده از 70 هزار رکورد غلطه را قبول ندارم. گفتم که فرض کنید میخواهیم یک برنامه کوچک شبیه اکسل بسازیم که هزاران رکورد را هم توی خودش جای میده، کاربر هم میتونه به راحتی هرکدوم را که میخواد اسکرول بالا و پایین ببینه!
پیشنهاد SYNDROME به نظرم خوبه و به ذهن خودم هم رسیده بود. اما در پیاده کردن به مشکلات زیادی برخورد میکنیم. مثلا اگه کاربر بخواهد با کلیک روی ستونهای جدول آنها را سورت کند، و یا چند رکورد از چند صفحه را انتخاب بکنه که همه آنها را کاربر در آن واحد نمی بینه و روی آنها عملیات انجام بده و خیلی مشکلات دیگه را چه جوری مدیریت کنیم. آیا راه ساده تری هم وجود داره یا نه باید همین راه را ادامه بدم!؟
اگه کسی مثال عملی داره ممنون میشم آپلود کنه:لبخندساده:

Batman
دوشنبه 22 مرداد 1386, 16:03 عصر
با سلام
ببین دوست عزیز این کار یه کاریه که باید خیلی دقت کنی
شما برای اطلاعات اضافه میتونی یه panel بذاری که هر وقت کاربر رو یه رکورد کلیک کرد توی panel توضیحات اضافه مربوط به همون رکورد نمایش داده بشه
وبرای بقیه کارها هم باید از یه چنین روشهایی استفاده کنی
موفق باشید

smakhavan
پنج شنبه 25 مرداد 1386, 16:35 عصر
با سلام
ببین دوست عزیز این کار یه کاریه که باید خیلی دقت کنی
شما برای اطلاعات اضافه میتونی یه panel بذاری که هر وقت کاربر رو یه رکورد کلیک کرد توی panel توضیحات اضافه مربوط به همون رکورد نمایش داده بشه
وبرای بقیه کارها هم باید از یه چنین روشهایی استفاده کنی
موفق باشید

بتن من عزیز!
مثل اینکه شما منظور من را نفهمیدید. من میخواهم یک چیز شبیه اکسل بنویسم نه چیز دیگر!
یک اکسلک را چجوری میشه بهینه کرد؟ با dbgrid یا با grid معمولی یا کامپوننت دیگری که مدیریت کار را انجام بدهد!!؟

cybercoder
پنج شنبه 25 مرداد 1386, 18:38 عصر
از Pagination استفاده کن

smakhavan
شنبه 03 شهریور 1386, 16:59 عصر
آقا این Pagination که گفتین یعنی چه؟ کامپوننته!!؟

cybercoder
شنبه 03 شهریور 1386, 17:30 عصر
آقا این Pagination که گفتین یعنی چه؟ کامپوننته!!؟

صفحه بندی نتیجه

SYNDROME
شنبه 03 شهریور 1386, 20:50 عصر
با سلام

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