delphi4arab منتديات دلفي للعرب
الفرز و الإحصاء ( قواعد البيانات ) - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : الفرز و الإحصاء ( قواعد البيانات ) (/showthread.php?tid=3814)



الفرز و الإحصاء ( قواعد البيانات ) - nabilkeb - 22-01-2012

لدينا جدول بيانات للموظفين (مجموعة كثيرة من الحقول : الكود-الإسم اللقب-تاريخ الميلاد ، تاريخ بداية عقد العمل - الحالة العائلية ... )

- أي شيء من البيانات يمكن فرزه بـ Filter أو استعمال الإستفسار البنيوي حسب الحاجة.

- سؤالي: يريد المستخدم فرز قائمة للموظفين حسب الإختيار ، حيث لديه أكثر من عشرة خيارات يحدد الخيار المراد استغلاله للفرز ، يعني يمكن تحديد خيار واحد مثلا: متزوج أو لا أو تحديد الموظفين الذين تتراوح أعمارهم بين... و بين ... (كل هذا لا صعوبة فيه و بأكثر من طريقة) . لكن كيف يتم تمكين المستخدم من الفرز عندما تكثر الإحتمالات (أكثر من عشرة خيارات).
- متأسف أنا على النت (Cyber) و لا يحضرني مثال مرفق. لكن أضن أن الإشكال واضحا.

بالتوفيق للجميع.


الفرز و الإحصاء ( قواعد البيانات ) - kachwahed - 22-01-2012

السلام عليكم
لم تتضح لي الفكرة، كل ما أعرف Filter تقبل أي Expression منطقية (على ألا يكون فيها تناقض)
والأفضل استخدام SQL لمزيد من الخيارات، لا أعرف طريقة أخرى لتصفية البيانات.



الفرز و الإحصاء ( قواعد البيانات ) - nabilkeb - 22-01-2012

بارك الله فيك أخي على المرور الكريم.
أعددت مثال مرفق لعل الفكرة ستتضح أكثر.

لدينا جدول للموظفين يحتوي على05 حقول _(أمثلة فقط) :
- Code-Nom- DateAssociation-Marie-Service

- الحقل الخاص بالكود (حقل مفتاحي) عبارة عن حقل رقمي يتكون من 08 أرقام ، الأربعة الأولى تمثل سنة الإنضمام في المؤسسة و الباقي لها دلالات أخرى.

1- كيف يتم الفرز الجزئي أثناء إدخال الكود ؟ لو كان الحقل حرفي يمكن ذلك بـ Filter مع إضافة نجمة (*) أو بــ Sql بالتعليمة Like بإضافة % . الآن الحقل رقمي ما هو الحل ؟ رغم أنني اعتمدت حلا ناجحا في المرفق لكن هل من حل أمثل و أبسط ؟

2- يمكن الفرز عن طريق الكود أو التاريخ أو مثلا إذا كان متزوج أو لا ، لكن كل على حدى
الآن لا نعرف حاجة المستخدم ، فأحيانا يحتاج التاريخ فقط و أحيانا يحتاج إدماج الحالة العائلية أو حقول أخرى في الفرز. كيف نقوم بالفرز حسب ما يحدده المستخدم عن طريق CheckBox ؟

راجع المرفق بارك الله فيك.


الفرز و الإحصاء ( قواعد البيانات ) - kachwahed - 22-01-2012

السلام عليكم
وفيك بارك الله
أولا لا تنسى أن الحقول Integer محدودة وهذا العدد 20060007 على الحافة

1-في معظم المحركات هناك دالة SQL تحول العدد الرقمي إلى سلسلة نصية (CONVERT, CAST...)
جرب للفرز هذه العبارة:
كود :
Between (:EdMin * 10000) and (:EdMax + 1) * 10000

2- هناك عدة طرق، شخصيا أفضل هذه (تشبه SQL Injection):
PHP كود :
WHERE (1=:ByCode OR Code BETWEEN 2004 AND 2005) 
استنتج البقية Wink

بالتوفيق.



الفرز و الإحصاء ( قواعد البيانات ) - nabilkeb - 23-01-2012

بوركت . سأجرب

بالتوفيق للجميع