تعاريف و أمثلة بسيطة حول ق البيانات و ربط جدول بالدلفي،و بعض العمليات عليه/-1
#11
خمس طرق للبحث عن البيانات ، و مختلف الإستعمالات مع مشاريع مرفقة (5/4)

البحث باستخدام المنهج FindNearest :
هذا لمنهج يشبه المنهج السابق و يقوم أيضا على الفهرس ، إلا أنه لا يعيد أي قيمة البوليانية ، فقط يقوم بالبحث عن الطابق الكلي بدآ بالتطابق الجزئي ، و يعيد القيمة مثلا NabilKeb في حال البحث عن Nab . مع تحديد السجل الحالي.
_ فقط استبدل التعليمة السابقة بالأمر FindNearest لترى الفرق.
... / يتبع / ...
الرد
#12
بارك الله في نشاطك اخي العزيز Smile
الى الأمام...

بالتوفيق ان شاء الله
الرد
#13
strelitzia كتب :بارك الله في نشاطك اخي العزيز Smile
الى الأمام...

بالتوفيق ان شاء الله
و فيك كل البركة أخي الكريم .

ألن تجيب عن السؤال ؟
إقتباس : سؤال : هل يمكن البحث في أكثر من حقل رئيسي ، و هل يمكن فهرسة أكثر من حقل فهرسة رئيسية ؟
عموما : كي تغيبلك راني هنــا ! ! !
الرد
#14
بارك الله فيك حبيبي نبيل
أحسنت صنعا
وفي انتظار المزيد

ممكن محاولة الاجابة عن السؤال
نعم يمكن أن نفهرس أكثر من حقل فهرسة رئيسية ولكنها محدودة
كما يمكن البحث في أكثر من خقل رئيسي
الرد
#15
أمكروس أمبارش كتب :بارك الله فيك حبيبي نبيل
أحسنت صنعا
وفي انتظار المزيد

ممكن محاولة الاجابة عن السؤال
نعم يمكن أن نفهرس أكثر من حقل فهرسة رئيسية ولكنها محدودة
كما يمكن البحث في أكثر من خقل رئيسي

و فيك بركة ، أهلا و سهلا بك معنا ، بمنتداناالحبيب.
و إذا أمكن القليل من التفصيل في الإجابة ، مع مثال مصغر مرفق.

أهلا و سهلا بك مجددا .
الرد
#16
خمس طرق للبحث عن البيانات ، و مختلف الإستعمالات مع مشاريع مرفقة (5/5)

التصفية ( الفلترة) Filter :

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

- نبدأ مشروعا جديد ، و مع نفس الجدول الذي مر معنا مسبقــا :
(Code_Produit - Produit - Qut - Fournisseur)
نضيف العناصر : Table - DataSource - DbGrid - DBNavigator و نصيف زرين : نكتب على الأول الكابشن : Filtered-True و الآخر Filtered-False .
نربط العناصر كالمعتاد.

- الآن نريد أن نقوم بعملية الفرز على اسم منتج (Produit) معين . أول شيء أود الإشارة إلى خاصيتي الفرز الخاصتين بالعنصر Table و هما : Filter - Filtered
أما فلترد : فهي قيمة بوليانية نريد من خلالها تفعيل الفرز أو لا.
و الثانية خاصة بكتابة صيغة الفرز و هو الأهم. و تأخد القيمة :
( اسم الحقل='القيمة النصية للحقل' ) مثلا نريد الفرز على الحقل Produit إذا كانت قيمته :
HDD_80G نكتب القيمة :
كود :
Produit='HDD_80G'
ثم نقوم بتفعيل الفلترة باعطاء القيمة True . هذا أثناء التصميم (من قسم الخصائص). كما يمكن التفعيل أو التعطيل برمجيا : نكتب على الزر الأول :
كود :
Table1.Filtered:=True;

و الثاني False
- ننفد البرنامج و نجرب الضغط على الزرين .
--- انظر المرفق1-----

- إذا أردنا الفلترة على حقل الكمية مثلا :
كود :
Qut='50'
يعني التصفية حول كل منتوج تساوي كميته 50. إذا أردنا أكبر أو أصغر من قيمة 50 ، نفس الكود مع استبدال = بــ < أو >

- إذا أردنا نفس العمل برمجيا (Filtered-Filter) نترك القيم فارغة بالخصائص ، و نكتب على كودسورس الزر الأول :
كود :
table1.Filter:='Qut<'  +  '50' ;
Table1.Filtered:=True ;
أو عمل = بدلا من > مثلا.

- و إذا أردنا نفس الشيء مع ترك الخيار للمستخدم بادخال القيم المناسبة ، نعم زر و Edit ، و على كود سورس الزر نكتب :
كود :
table1.Filter:='Qut<'  + Edit1.text ;
Table1.Filtered:=True ;


--- كل هذا مع القيم العددية ، أما القيم النصية (برمجيا) فلا بد من التابع QuotedStr .
و يقوم هذا التابع بإعادة نفس القيمة النصية مع و ضع إشارتين للحصر ، فقولك مثلا
كود :
QuotedStr(Edit1.text)=[COLOR=Red]'[/COLOR](Edit1.text)[COLOR=Red]'[/COLOR]
و بما أن الــ Edit هو قيمة نصية ، يكافئ:
كود :
QuotedStr(Edit1.text)=[COLOR=Red]''[/COLOR]HDD_80G[COLOR=Red]''[/COLOR]
كل هذا الكلام يشمل الفرز برمجيـــا ، أما أثناء التصميم (الخواص) فنكتب الكود كما مر معنا دون الحاجة إلى الحصر (QuotedStr).
- و على هذا الأساس إذا أردنا الفلترة عن القيمة النصية HDD_80G الخاصة بالحقل Produit ، برمجيا ، فنكتب على الزر كود سورس :
كود :
table1.Filter:=[B][COLOR=Blue]'[/COLOR][/B]  Produit=  [COLOR=Red][B]''[/B][/COLOR]HDD_80G[COLOR=Red][B]''[/B][/COLOR]  [COLOR=Blue][B]'[/B][/COLOR]     ;
table1.Filtered:=true;
باللون الأزرق : القيمة النصية
باللون الأحمر : القيمة النصية+الحصر يعني استخدام التابع المذكور.
- كما يمكن (على ما سلف شرحه) استعمال الكود :
كود :
table1.Filter:=[COLOR=Blue]'[/COLOR] Produit=[COLOR=Blue]'[/COLOR]+[COLOR=Red]Quotedstr[/COLOR]([COLOR=Blue]'[/COLOR]HDD_80G[COLOR=Blue]'[/COLOR]) ;
table1.Filtered:=true;
- كما يمكن استبدال ('HDD_80G') بـــ Edit1.text لتحرير القيم اختياريا.

آسف ، أردت إدراج مرفقات أخرى ، لكن بعد هذا التفصيل في الشرح ، أرى أنه لا داعي لذلك.

...../ يتبع /.....




الرد
#17
كيف لي أن أتوصل لجلب نتائج البحث في نفس المكان الذي أحرر فيه عبارة البحث ?

انظر الصورة . مجرد تحرير الحرف الأول من عبارة البحث ، يتم ارجاع القيمة (مثل FindNearst) لكن في نفس مكان تحرير عبارة البحث .
[صورة: index.php?action=viewfile&id=6306]


مثلا أنت تريد معرفة كمية منتوج معين ، و لا تريد في كل مرة تحرير كامل اسم المنتج ، تريد بمجرد تحرير الحرف أو الحروف الأولى ، و إذا تطابقة النتيجة تعمل Enter لتصل إلى مرادك ، سواء معرفة الكمية أو أي شيء ؟

انظر المرفق .

إذا أمكن عدم استعمال أي منهج من المناهج التي مرت معنا ، و إلا فلابأس.

في انتظار الردود.
الرد
#18
السلام عليكم . بارك الله فيك اخى NabilKeb ممتاز دروس رائعة و مفيدة جدا . بالتوفيق اخى . WinkSmile
الرد
#19
hanipino كتب :السلام عليكم . بارك الله فيك اخى nabilkeb ممتاز دروس رائعة و مفيدة جدا . بالتوفيق اخى . WinkSmile
و فيك كل البركة أخي العزيز ، تشكر جدا على المشاركة و التشجيع .

و سيكون ما نقدمه أكثر نفعا و فائدة لي و لنا جميعا إن شاء الله ، لو تشاركنا (وغيرك) ، و نحن بالإنتظار .


سبق :
سؤال : - هل يمكن البحث في أكثر من حقل رئيسي ، و هل يمكن فهرسة أكثر من حقل فهرسة رئيسية(مع المرفق) ؟
-كيف لي أن أتوصل لجلب نتائج البحث في نفس المكان الذي أحرر فيه عبارة البحث ?


تشكر جزيلا أخي ، مرة أخرى على الإهتمام و المشاركة .
الرد
#20
السلام عليكم ورحمة الله وبركاته

مشكور أخ nabil على هذا المجهود , وأعتذر عن التأخير
سأبدأ من بداية الدروس وإنشاء الله سأشارك معكم

بالتوفيق إنشاء الله
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 2 ) ضيف كريم