المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
إقتباس :غير Index عند التشغيل كما تشاء، عند استعمال الدليل الاساسي يكون الترتيب افتراضي وعند تغييره واستخدام الدليل الثانوي يتغير الترتيب
أعطيتني فكرة، سأجرب إنشاء فهرسين ثانويين لكل حقل: IndexDesc و IndexAsc الأول للترتيب والتنازلي والآخر للترتيب التصاعدي، أظنها أحسن طريقة.
بقي ترتيب القيم المحسوبة في OnCalcFields سأبحث فيها إن شاء الله.
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
إقتباس :مثلا من DBDemos الجدول Customers، نضع زر BtnSort مثلا باسم كل حقل، مثلا زر SortCustNo وزر لـ SortEmpNo
جدول Customers يجب ترقيته الى Paradox 7 لكي يمكن تطبيق المثال عليه
لناخذ جول اخر مثلا animals
والحقل Name وايضا الحقل Area
للترتيب التنازلي نحتاج دليل وللتصاعدي دليل اخر
ولدينا حقلين نرتب حسبهما اذن نحتاج بالمجموع 4 ادلة
نفرض مكون الجدول المربوط مع Animals.dbf هو Table
لانشاء الادلة برمجيا وقت التنفيذ نكتب شيئ مثل
PHP كود :
Table1.Close;
Table1.Exclusive := TRUE;
Table1.AddIndex('NameA', 'Name', []);
Table1.AddIndex('NameD', 'Name', [IxDescending]);
Table1.AddIndex('AreaA', 'Area', []);
Table1.AddIndex('AreaD', 'Area', [IxDescending]);
Table1.IndexDefs.Update;
Table1.Exclusive := FALSE;
Table1.Open;
لتغيير الترتيب يكفي تغيير الدليل المناسب
حسب الاسم Name ترتيب تصاعدي نكتب بالزر
PHP كود :
Table1.IndexName:='NameA';
حسب الاسم Name ترتيب تنازلي نكتب
PHP كود :
Table1.IndexName:='NameD';
بالنسبة للحقل الثاني Area نفس الشيئ
تصاعدي نكتب بالزر
PHP كود :
Table1.IndexName:='AreaA';
وهكذا
طبعا قبل انشاء اي دليل عليك ان تتاكد من عدم وجوده
-
بالنسبة للحقول المحسوبة في OnCalcFields فتذكر ما قلته لك في السؤال السابق
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
بارك الله فيك أستاذ، جزاك الله كل خير.
فهمت الآن...، ما كان ينقصني في الكود هو:
PHP كود :
Table1.Exclusive := TRUE;
Table1.IndexDefs.Update;
Table1.Exclusive := FALSE;
خاصة Update.
والآن اتضحت الفكرة إن شاء الله، فبارك الله فيك.
إقتباس :بالنسبة للحقول المحسوبة في OnCalcFields فتذكر ما قلته لك في السؤال السابق
أجل...، وعيت ذلك إن شاء الله، الحقول المحسوبة غير موجودة في الجدول لأنها محسوبة أثناء الحدث OnCalcFields، فهل هناك خدعة (أو كود أو خاصية...)، لضمها تلقائيا إلى باقي حقول الجدول وبالتالي إنشاء دليل عليها :confused:؟
شكرا جزيلا أستاذ.