كيف يمكن عمل display item (list of value) اي اذا قمت بضغط علي edit معين يظهر لي محتويات جدول ثم اقوم بضغط علي حقل معين يقوم بتنزيلها علي ال edit (اي يسهل عملية الادخال للبيانات)(جدول اساسي وجدول فرعي)
كيف يمكن عمل display item (list of value)
ما رأيك لو استعملت Combobox و في خاصية الـ Items قم بتحميل محتويات عمود معين من الجدول الذي تريده وعند الضغط على الـ Combobox
تجعل المستخدم يختار ما يريد وبذلك تكون قد سهلت الإدخال.
الطريقة:
ضع Combobox على الفورم و حدث الـ Onshow مثلاً ضع الكود التالي:
ComboBox1.Items.Clear; ADOTable1.DisableControls; try ADOTable1.First; while not ADOTable1.Eof do begin ComboBox1.Items.Add(DataSource1.DataSet.FieldValues['Your Field']); ADOTable1.Next; end; finally ADOTable1.EnableControls; end;
وبالتوفيق ;)
استخدم Combobox الموجودة في الصفحة standard حيث تقوم بتعبئة القيم من الجدول عند انشاء الفورم مثلا
و يظهر لك القيم التي في الجدول ثم تختار احداها
كما يمكنك استخدام DBCombobox او DBLookUpCombobox حيث في الاخيرين يمكن الربط مع datasource
مما يؤدي الى اظهار و تخزين القيمة بشكل تلقائي في قاعدة البيانات
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
يبدو انّ احد الاعضاء سبقني في الرد
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
مثلا هنالك علاقة بين جدولين في الجدول الاول فيها اسم الطالب والرقم والفصل الدراسي والقسم والجدول الثاني فيها نفس البيانات + النتجة المواد) انا اريد عند الضغط علي اسم الطالب يظهر لي dbgrid وعند الضغط علي حقل معين يجلب لي كل البيانات من الجدول الاول في ال edit المعني (مثلا اسم الطالب في edit1 والقسم في edit2 الخ)
اقتباساسم الطالب والرقم والفصل الدراسي والقسم والجدول الثاني فيها نفس البيانات + النتجة المواد
هناك مشكلة في تصميم قاعدة البيانات اذا كانت مثل ما تتحدث
فنحن عند تصميم علاقة بين جدولين لا نضع كافة الحقول في الجدول الثاني انما نضع فقط حقل PK من الجدول الاول في حقل FK
في الجدول الثاني و بالتالي يتحقق الربط بين الجدولين
في المثال الذي تطرحه ممكن ان يكون على الشكل التالي
الجدول الاول
رقم الطالب مفتاح اساسيPK
رقم الفصل الدراسي
اسم الطالب
القسم
.....
الجدول الثاني
رقم الطالب FK : هو حقل مفتاح غريب او ForienKey للجدول الاول يتم وضع فيه رقم الطالب هنا يتحقق الربط بين الجدولين
رقم المادة او اسم المادة و الافضل ان تضع جدول للمواد و تستخدم رقم المادة كمفتاح غريب
نتيجة المادة
بهذا يكون تصميم قاعدة البيانات لديك سليم
الان كيف سوف اجمع البيانات اي كيف سوف اعرض كل طالب هو و نتائج علاماته ؟
هنا تستخدم تعليمات SQL لربط الجدولين مع بعضهما البعض و من ثم تحصل على ما تريد مثل ما يلي
select * from table1 inner join table2 on table1.StudentID = table2.StudentFK
حيث يعتبر تصميمك لقاعدة البيانات غير منظم وبالتالي هناك عملية تكرار كثيرة للبيانات و مشاكل كثير سوف تواجهك في المستقبل
لمعرفة اكثر حول كيفية تصميم قاعدة البيانات قم بقراءة الموضوع التالي فهو مفيد جدا في هذه الناحية
اما بالنسبة لبقية سؤالك فلم افهم عليك كثيرا
ولكن سوف اوضح لك بعض المفاهيم:
هناك في دلفي شيئ اسمه DBControl يمكنك استخدامه من اجل التعامل مع حقول قاعدة البيانات حيث تريحك من عمليتين طويلتين بعض الشيئ الا وهما تعبئة ال Control بالقيم و اخذ القيم من ال Contorl و حفظها في قاعدة البيانات
هذه الكونترول موجودة في الصفحة Data control
كيف يمكن الربط بين هذه Controls و حقول قاعدة البيانات؟
للربط هناك خاصية لك من هذه Controls اسمها Data Source حيث لهذه ال Data source خاصية اسمها dataset تأخذ
adotable او Adoquery
بالنسبة لل dbedit control سوف تلاحظ خاصية اخرى الا و هي Data Field و هي عبارة عن الحقل الموجود في قاعدة البيانات
و الذي تريد ان يتم عرض قيمته في هذا ال Dbedit
في النهاية هذه هي مقدمة سريعة و انا جاهز لأي اسئلة تريدها
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
الجدول الاول هو الطالب:
رقم الطالب مفتاح اساسيPK
اسم الطالب
القسم
الصف
.........الخ
الجدول الثاني هو جدول المواد:
رقم المادة مفتاح اساسيPK
اسم المادة
القيمة الصغرى
القيمة العليا
.........الخ
الجدول الثالث و لنسميه علامات الطالب هو جدول ربط بين الطالب و المواد:
رقم الطالب مفتاح غريبFK
رقم المادة مفتاح غريبFK
رقم الفصل
الفترة الاولى
الفترة الثانية
اعمال السنة
العلاقات بين الجدول
جدول الطالب يرتبط مع جدول علامات الطالب (رقم الطالب -> رقم الطالب)
جدول المواد يرتبط مع جدول علامات الطالب (رقم المادة -> رقم المادة)
بهذا التصميم إن شاء الله تكون قاعدة بياناتك نظامية و ليس فيها اي تكرار
لاحظ اخي الكريم اننا لم نضع حقل مجموع في جدول علامات الطالب لانه حقل يمكن حسابه بجمع القيم الثلاثة لل (الفترة الاولى و الثانية
و اعمال السنة) و بالتالي لا داعي لتخزين قيمة المجموع
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
مشكور
بارك الله فيك
هذا الموضوع مغلق.