![]() |
|
كيف لي بترتيب الخيارات في dbgrid - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف لي بترتيب الخيارات في dbgrid (/showthread.php?tid=174) |
كيف لي بترتيب الخيارات في dbgrid - أمير الدلفي - 03-05-2008 السلام عليكم عسى أن يكون الجميع في تمام الصحة والعافية في الحقيقة أنا مع مشروع أتعلم فيه بعض التطبيقات وبرزت لي مشكلة لا أظنها تعسر عليكم ألا وهي أني وضعت جدول أخزن فيه معلوامت أصدقاء ومن بين الحقول حقل : الهــواية وأما في البرنامج فقد وضعت combobox وجعلت خيارات محددة مثلا : البرمجة ، الرياضة ..... وهذا combobox يحمل الخيار مباشرة ويضعه في حقل الهواية على طريق الكود التالي : Table1 avocation .value := Combobox1.text ; أما المشكل بالضبط إذا كان الصديق عنده هوايات عديدة فهل من حيلة حتى أضمها كلها في Dbgrid ***** أن يكون القصد مفهوما كيف لي بترتيب الخيارات في dbgrid - merouane - 03-05-2008 و عليكم السلام أفضل حل هو أن تكون الهوايات في جدول مغاير عن جدول الأصدقاء، وجدول أخر يحتوي على كود كل شخص وكود الهواية ثم تقوم بالربط بين الجدولين الهوايات والجدول الأخير (مثلا هوايات الأصدقاء) و الربط الأخر بين جدول الأصدقاء وجدول هوايات الأصدقاء بهذا الكلام أنا افترض أنك على دراية بتحليل المعلومات على الأقل Merise لأنني أتحدث عن جدولين أساسيين (الأصدقاء و الهوايات) وجدول الربط (هوايات الأصدقاء) وتوجد طريقة اخرى لكنها - بالنسبة لي - أقل متانة من ناحية ثبات المعلومات وهي استعمال ListBox مع تفعيل MultiSelect والإضافة إلى قاعدة البيانات يكون عبر حلقة كود : var i:integer;
S:string;
begin
for i:=0 to listbox1.Items.Count-1 do
if ListBox1.Selected[i]then
S:=S+listbox1.items[i]+';';
Table1.FieldByName('Hobby').AsString := S;
end;اعذرني سأذهب الآن جرب الاجراء سأعود في المساء كيف لي بترتيب الخيارات في dbgrid - أمير الدلفي - 03-05-2008 شكرا جزيلا نعم أنا أتقن طريقة Merise بشكل جيد نعم لقد جربت جدولين مع طريقة MasterSours ولكن النتيجة لم تكن ذات نسق جميل سأجرب الطريقة الثانية التي عرضتها علي وأي نبأ جديد سأخبرك به شكرا كيف لي بترتيب الخيارات في dbgrid - merouane - 08-05-2008 السلام عليكم كيف الحال أخي أمكروس أمبارش اتيت اليوم بحل (قد لا يكون الأحسن) يفي بالغرض بدون ان نلمس تصميم البيانات (التحليل) ودون أن نغيير في قاعدة البيانات ولا اخفيك ، لقد أشغلتني فكرتك حيث لم تخطري على البال أبدا مع انها نافعة وقد يحتاجها المطور .. لذلك هذا العمل هو نتاج احتكاك عقلين و آمل من الإخوة الأعضاء التقدم بالأراء و الأفكار حتى يتطور ويحسن إلى أقصى ما يمكن الوصول إليه. بعد بضع محاولات وصلت إلى أن أفضل طريقة لعمل ذلك هي المزج بين SQL و TableCalcFields في المثال استعملت الجدولين المرفقين مع دلفي "customer.db" و " orders.db" بحيث كل Customer يمكن أن تكون له 0-N من Orders ثم أنشأت حقل تخيلي حسابي (نفس الطريقة في الموضوع كيف يمكنني تنظيم أرقام dBGRID ) الكود كود : procedure TForm1.TabCustomerCalcFields(DataSet: TDataSet);
begin
TabCustomerOrders.Value:='';
Query1.Active:=False;
Query1.SQL.Clear;
Query1.SQL.Add('Select OrderNo from "Orders.db"');
Query1.SQL.Add('where CustNo='+TabCustomerCustNo.AsString);
Query1.Active:=True;
Query1.First;
while not Query1.Eof do
begin
TabCustomerOrders.Value:= TabCustomerOrders.Value+Query1.fieldByName('OrderNo').AsString+' ; ';
Query1.Next;
end;
end;النتيحة ![]() في المرفقات مثال عن ذلك تحياتي
كيف لي بترتيب الخيارات في dbgrid - أمير الدلفي - 11-05-2008 أوو شكرا لك يا بطل و لا أظن أني أزعجك وأشغل بالك كل هذه المدة لقد توصلت الى ما |أبحث عنه بالضبط وقد طرحت موضوع بعنوان أستحسانات استعمال query لأتوصل اى النتيجة التي توصلت اليها ولكن سبقتني اليها فأحسنت وأحسن الله الجزاء ان شاء الله على كل سأعمل جاهدا لتطبيق الفكرة وستكون مذهلة بلا شك شكرا لك ودمت في خدمة المنتدى وأحبابه |