Mohanad Kaleia

Idea for a cause

boostGrid: data grid view

boostGrid

إن إسلوب عرض البيانات للمستخدم هو من أهم الأمور التي يجب أن يراعيها المبرمج أثناء كتابته لبرامجه، ولعل من أهم وأسهل وسائل عرض كتل البيانات الضخمة من قواعد البيانات هي جداول البيانت أو كما يعرفها المبرمجون data grid view والتي تقوم بإظهار البيانات على شكل أسطر كل سطر هو عبارة عن سجل من سجلات قاعدة البيانات.

بالنسبة لمبرمجي الويب فيوجد العديد من الخيارات لاستعمال هذه الأدارة ولعل أبسطها وأقلها تعقيداً هو استعمال الوسم <table> وعرض البيانات بداخله، ولكن مع ازدياد حجم البيانات يصبح هناك حاجة أكبر لقدرات وميزات لا يمكن أن يقوم هذا الوسم بعمله، مثل القدرة على الترتيب والبحث والتنقل بين صفحات من البيانات بدلاً من عرضها كصفحة واحدة كبيرة.

بالنسبة لي جربت الكثير والكثير من data grid view ولكل واحدة منها ميزاتها وعيوبها ولكن أهم عيب وعائق واجهني في كل ما تعاملت معه هو ضعف توثيق الكود وقلة الشروحات التي تشرح هذه الأداة. لذا قررت أن أقوم بعمل واحدة من الصفر تجمع كل الميزات التي احتجت إليها خلال سنوات عملي كمطور ويب على تماس مع متطلبات المستخدمين وانتهيت الآن من النسخة الأولى (التجريبية) من هذه الأداة والتي أسميتها boostGrid.

بعض ميزات boostGrid:

  • تم بناءها اعتماداً على لغة PHP وموجهة لبيئة codeIgniter.
  • AJAX based: حيث يتم تحديث البيانات دون الحاجة لتحديث الصفحة كاملة.
  • تأخذ مصفوفة كمصدر للبيانات.
  • تذكر الصفحات السابقة.
  • تريتيب البيانات اعتماداً على العمود.
  • بحث ديناميكي على كل الحقول المعروضة.
  • إضافة حقول تحكم (مثل الحذف أو التعديل)
  • دعم الكتابة من اليمين لليسار وبالعكس.
  • تعمل تحت رخصة LGPL.

يمكن تجربة boostGrid من خلال الذهاب للرابط التالي جربني.

كما يمكن تحميل نسخة منها من خلال مستودع git.

سيتم قريباً طرح دليل المطور بالإضافة لدليل المستخدم، كما سيتم تحسينها من خلال إضافة ميزات جديدة عليها. في حال وجود أخطاء يرجى إبلاغي عنها فوراً ليتم تصحيحها.. وشكراً

7 Comments

  • Reply shadi kattaa |

    أقل ما أستطيع قوله … بارك الله فيك على هذا المجهود الرائع
    سلمت يداك و سددك الله
    لك مني فائق الشكر و التحية و الإحترام

    • Reply مهند شب قلعية |

      الله يسلمك يا شادي
      وشكراً كتير على التشجيع
      أحلى شادي

      • Reply محمد سرميني |

        سلمت يداك .. مجهود رائع ….
        بانتظار المزيد من الابداعات ….

        • Reply مهند شب قلعية |

          الله يسلمك يا سيرو .. إن شاء الله البودكاست اللي بدنا نعملو رح يشوف النور قريباً :)

  • Reply عبد الفتاح دباس |

    يعطيك العافية ويسلم هالإيدين ..
    ذكرت انه الجريد تقوم بحفظ الصفحات السابقة .. سؤالي .. إذا كان حجم البيانات كبير ألا يؤدي هذا بعد فترة لضعف في الأداء ؟
    بالإضافة إلى أن الاحتفاظ بالبيانات لن يعطي انعكاس حقيقي عن تغير البيانات على السيرفر ..
    بالنسبة لي أعجبت بفكرة بناء جريد خاصة – بهدف التعلم فقط – لكني أفضل في هكذا مواقف استخدام أدوات جاهزة لتسريع الانتاجية لأن الجريد عنصر منتشر بكثرة لا حاجة لإعادة تصنيعه.

    يسلمهن مرة تانية :)

    • Reply مهند شب قلعية |

      الله يسلمك يا عبودة ..
      بس أنا ما تورطت ببناء غريد من الصفر غير بعد ما تعبت من مشاكل الغريدات الجاهزة وضعف التوثيق وصعوبة التعديل عليها..
      بالنسبة لميزة الذاكرة فيمكن أنا ما شرحتها منيح .. رح أعطيك السيناريو التالي واللي رح يوضح الفكرة تماماً:
      فرضاً أنا عرضت بيانات الموظفين في الغريد وكانت هذه البيانات معروضة على خمسة صفحات .. فإذا انتقلت للصفحة الثالثة .. وبعدها قمت بالذهاب لصفحة تعديل بيانات أحد الموظفين وبعد الانتهاء من التعديل هل سأعود للصفحة الأولى ؟؟!! الأفضل هو العودة للصفحة التي توقفت عندها وهي الصفحة الثالثة .. وهذا ما يحدث أي يتم استدعاء البيانات الموجودة في الصفحة الثالثة ولا يتم حفظها في الجافا سكريبت عند المستخدم لذلك لن يحصل ضغط على المستخدم بل سيتم جلب المعلومات من جديد من السيرفر ولكن سيتم عرض بيانات الصفحة الثالثة..
      إن شاء الله تكون وضحت الصورة :)
      أحلى عبودة

      • Reply عبد الفتاح دباس |

        وضحت الصورة تماماً هيك :) .. الله يعطيك العافية ..
        هو انا لهلق مستغرب شوي انه ما لقيت جريد مناسبة .. على كل يمكن لأني بستخدم جريدات جاهزة في ASP.NET فما عم واجه هيك مشاكل .. بس بحب اطلع – لما بصير عندك مجال – على أهم المشاكل يلي واجهتك بالجريدات وليش احتجت انه تغير فيها ..
        جربت:
        http://dhtmlx.com/docs/products/dhtmlxGrid/
        مجموعة أدوات جميلة جداً.

Post a comment

  • *