في درس سابق تم برمجة فورم العملاء customers اليوم سنبرمج فورم الموردين .
فورم الموردين lmporters
كل شي عملناه في فورم سابق الخاص بـ customers سنعمله ايضا في هذا الفورم اي نفس كلام بالضبط .
تصميم واجهة الموردين
نبدا علئ بركة الله
نقوم بادراج فورم forms ونسميه الموردين lmporters ومثل ماعملنا مع فورم customers نقوم بفتح نافذة
Date sources
لتضهر قاعدة البيانات والجداول التي فيها وايضا نختار جدول lmporter ونضغط كلك ايمن على سهم ونختار Details ومن ثم نجعل حقل lmportertype كومبو بوكس Combobox نضغط ونسحب الجدول باكملة على الفورم .
ثم نقوم بتغير اسماء حقول التي سحبناها على الفورم برمجياً اي مثل
ماعملنا مع حقول خاصه بـ Customers
ثم نقوم باضافة Button عدد 5
ونغير اسمائها ليس برمجياً ونجعل كل واحد منها لازرار الاضافة والتعديل والاضافة والبحث و الحفظ .
وندرج اداة datagridview
ندرج تكس بوكس واحد خاص بالبحث
ليصبح فورم الموردين lmporters بالشكل النهائي كما في الصورة .
الاتصال بجدول الموردين
بعد ذلك سنعمل اتصال بجدول الموردين lmporter نذهب الى مديول module خاص بنا ومثل ما عملنا مع جدول customers نفس كلام نعمله مع جدول lmporter في المديول نكتب التالي :
نفترض متغيرات عامة داتا تيبل وداتا ادبتر وايدي عام
Public lmportersdt As New DataTable Public lmportersda As New OleDbDataAdapter Public mynewldlmporters As Integer
ثم نفترض لود load لتحميل جدول lmporter ونكتب الكود التالي :
Public Sub load_lmporters() lmportersdt.Clear() lmportersda = New OleDbDataAdapter("select * from lmporter", con) lmportersda.Fill(lmportersdt) End Sub
شرح الكود
عرفنا متغير عام load_lmporters
في سطر اول فضينا جدول lmportersdt ثم حددنا جدول lmporter بجملة select ثم ملئنا جدول dt بالبيانات……
جلب اعلى رقم في جدول الموردين
ثم فترض lmporterld لجلب اعلى رقم في جدول .
Public Sub code_lmporters() Dim dt As New DataTable Dim da As New OleDbDataAdapter("select max(lmporterld) from lmporter", con) da.Fill(dt) If IsDBNull(dt(0)(0)) = True Then mynewldlmporters = 1 Else mynewldlmporters = dt(0)(0) + 1 End If End Sub
شرح الكود
افترضنا متغير عام code_lmporters ثم عملنا متغير dt لداتا تيبلث ثم عملنا متغير da لداتا تيبل وحددنا جدول بجملة select واعلى max قيمة وكتبنا جمله الاتصال con ثم ملئنا fill جدول بالبيانات ،
وعلمنا جملة شرطيه وقلنا له اذا كان جدول dt يساوي 0 اجعلها true واذا كانت فعلا تساوي 0 اجعلها + 1
انظرالى الكود باكملة كما في الصورة .
تحميل بيانات الموردين
نذهب الان الى فورم الموردين lmporters ونضغط ضغطتين كلك ايسر على فورم وفي حدث لود load الخاص بالفورم ونكتب الكود التالي :
load_lmporters() DataGridView1.DataSource= lmportersdt
شرح الكود
استدعينا اجراءload_lmporters خاص بتحميل جدول البيانات ثم عرضنا بيانات على اداة DataGridView1
انظر إلى كود كما في الصورة .
الان ننفذ البرنامج وسنرى ظهور حقول جدول باداة DataGridView1
كما في الصورة .
بعد ان قمنا بالاتصال بجدول الموردين lmporter حملنا حقول جدول باداة datagridview1 .
برمجة واجهة الموردين
الان نذهب الى برمجة ازرار الحذف والحفظ والتعديل والاضافة والبحث في واجهة الموردين .
طبعا برمجة الازرار راح تكون نفس برمجة ازرار الخاصه بفورم Customers
برمجة زر اضافة مورد
نعمل اجراء عام خاص بالاضافة لانه نحتاجه في عده ازرار .
اول شي نعرف مكتبه فضاء الاسماء
ثم ننقر نقرتين على فورم lmporters وتحت
public class lmporters
نعرف الاجراء ونسميه newlmporter
ليصبح الكود كالتالي :-
Public Sub newlmporter() code_lmporters() Lmporteraddress.Text = "" Lmporterbalance.Text = 0 Lmporterdate.Value = Now.Date Lmporterld.Text = mynewldlmporters Lmportername.Text = "" Lmporterphone.Text = "" Lmportertime.Value = Now Lmportertype.Text = "" Lmporteruser.Text = "" End Sub
انظر الى كود الاجراء كما في الصورة .
شرح الكود
استدعينا اجراء الخاص بالكود في مديول code_lmporters
وباقي حقول ياخذ كل حقل قيمته اما حقل lmporterld اخذ قيمته وهي mynewldlmporters التي عملناها في المديول .
بعد ذلك نذهب إلى زر الاضافة وننقر عليه نقريتين ونستدعي الاجراء الذي قمنا بانشائه قبل قليل وايضا نستدعي الاجراء في حدث فورم الموردين forms لود تحميل
الان لو تلاحظ اخي المبرمج عند تنفيذك للبرنامج سوف تره حقول رقمية اخذت قيمه 0 وحقول تاريخ وقت اخذت قيمه تاريخ اليوم والوقت الذي تعمل به الان .
هذا كل ما يهم زر الاضافة .
برمجة زر حفظ مورد
ننقر نقرتين على زر الحفظ في فورم او واجهة الموردين ونكتب الكود التالي :
'================كود الحفظ
lmportersdt.Rows.Add() Dim last As Integer = lmportersdt.Rows.Count - 1 lmportersdt.Rows(last).Item ("Lmporteraddress") = Lmporteraddress.Text lmportersdt.Rows(last).Item ("Lmporterbalance") = Lmporterbalance.Text lmportersdt.Rows(last).Item ("Lmporterdate") = Lmporterdate.Value lmportersdt.Rows(last).Item ("Lmporterld") = Lmporterld.Text lmportersdt.Rows(last).Item ("Lmportername") = Lmportername.Text lmportersdt.Rows(last).Item ("Lmporterphone") = Lmporterphone.Text lmportersdt.Rows(last).Item ("Lmportertime") = Lmportertime.Value lmportersdt.Rows(last).Item ("Lmportertype") = Lmportertype.Text lmportersdt.Rows(last).Item ("Lmporteruser") = Lmporteruser.Text Dim save As New OleDbCommandBuilder (lmportersda) lmportersda.Update (lmportersdt) lmportersdt.AcceptChanges() MsgBox("تم حفظ") load_lmporters() newlmporter() End Sub
تفاصيل الكود
الكود بسيط نفس كود حفظ في فورم العملاء customers بالضبط فقط تختلف اسماء الحقول ..
في اخر كود استدعينا لود load تحميل خاص بتحميل بيانات جدول lmporter من مديول
وكذلك استدعينا كود الاجراء الخاص بالاضافة
هذا كل مافي الكود لاحظ كود الحفظ بالشكل النهائي كما في الصورة .
كود وضع بيانات المورد على تكست بوكس
ايضا نفس الكود خاص بفورم العملاء customers نذهب إلى اداة datagridview1 ومن خصائص هذا الاداة نختار selectionchanged وننقر نقرتين على حدث ونكتب الكود التالي :
Try Dim pos As Integer = BindingContext(lmportersdt).Po sition Lmporteraddress.Text = lmportersdt.Rows(pos).Item ("Lmporteraddress") Lmporterbalance.Text = lmportersdt.Rows(pos).Item ("Lmporterbalance") Lmporterdate.Value = lmportersdt.Rows(pos).Item ("Lmporterdate") Lmporterld.Text = lmportersdt.Rows(pos).Item ("Lmporterld") Lmportername.Text = lmportersdt.Rows(pos).Item ("Lmportername") Lmporterphone.Text = lmportersdt.Rows(pos).Item ("Lmporterphone") Lmportertime.Value = lmportersdt.Rows(pos).Item ("Lmportertime") Lmportertype.Text = lmportersdt.Rows(pos).Item ("Lmportertype") Lmporteruser.Text = lmportersdt.Rows(pos).Item ("Lmporteruser") Catch ex As Exception End Try End Sub
تفاصيل الكود…….
عملنا try وهي جمله تتبع الاخطاء عند تنفيذ البرنامج وباقي الاكواد مختصرها هي جعلنا تكس بوكس الخاص بالحقل يساوي الحقل في جدول الموردين .
هذا كل مافي كود انظر إلى صورة كود كما في الصورة .
برمجة زر التعديل على بيانات مورد
ننقر نقرتين على زر التعديل ونكتب الكود التالي :
Dim pos As Integer = BindingContext(lmportersdt).Position lmportersdt.Rows(pos).Item ("Lmporteraddress") = Lmporteraddress.Text lmportersdt.Rows(pos).Item ("Lmporterbalance") = Lmporterbalance.Text lmportersdt.Rows(pos).Item ("Lmporterdate") = Lmporterdate.Value lmportersdt.Rows(pos).Item ("Lmporterld") = Lmporterld.Text lmportersdt.Rows(pos).Item ("Lmportername") = Lmportername.Text lmportersdt.Rows(pos).Item ("Lmporterphone") = Lmporterphone.Text lmportersdt.Rows(pos).Item ("Lmportertime") = Lmportertime.Value lmportersdt.Rows(pos).Item ("Lmportertype") = Lmportertype.Text lmportersdt.Rows(pos).Item ("Lmporteruser") = Lmporteruser.Text Dim save As New OleDbCommandBuilder (lmportersda) lmportersda.Update (lmportersdt) lmportersdt.AcceptChanges() MsgBox("تم حفظ") load_lmporters() End Sub
تفاصيل الكود
عملنا متغير pos من نوع integer رقمي
ثم جعلنا كل حقل في جدول يساوي التكس بوكس على الفورم
ثم عرفنا متغير save لحظ البيانات
ثم عملنا جمله update التحديث
ثم عملنا مسج لتاكيد التعديل
ثم استدعينا لود load الخاص بتحميل بيانات جدول lmporter وهو load_lmporters بعد كل عملية نقوم بهذا بالتعديل .
هذا كل مايخص كود التعديل
انظر الى صورة كود التعديل
برمجة زر حذف مورد
ننقر نقرتين على زر الحذف ونكتب الكود التالي :
If MsgBox("هل تريد حذف العميل", MsgBoxStyle.OkCancel, "تاكيد الحذف") = MsgBoxResult.Ok Then Dim pos As Integer = BindingContext(lmportersdt).Position lmportersdt.Rows(pos).Delete() Dim save As New OleDbCommandBuilder (lmportersda) lmportersda.Update (lmportersdt) lmportersdt.AcceptChanges() MsgBox("تم الحذف") load_lmporters() Else End If End Sub
تفاصيل الكود .
في سطر اول عملنا رساله تاكيد قبل عمليه حذف مع ايوقنه تاكيد ،
في سطر ثاني كتبنا جمله الحذف ,
في سطر ثالث حفظنا بيانات بعد حذف ,
في سطر رابع حدثنا update بيانات بعد عمليه حذف من جدول ,
ثم عملنا رساله تاكيد حذف ,
ثم لودنا وحملنا بيانات جدول load_lmporter
هذا كل مايخص كود الحذف انظر الى كود الحذف كما في الصورة .
برمجة زر البحث عن مورد
ننقر نقرتين على زر البحث ونكتب الكود التالي :
lmportersdt.Clear() lmportersda = New OleDbDataAdapter("select * from lmporter where lmportername like '%" & TextBox1.Text & "%'", con) lmportersda.Fill(lmportersdt) End Sub
تفاصيل الكود…..
الكود بسيط ومثل ماسوينه بالضبط بالبحث الخاص بفورم customers ايضا كذلك نفس الكلام ,
في سطر اول عملنا كلير Clear للبيانات ,
في سطر ثاني بحثنا عن البيانات عن طريق جدول lmporter بجملة select ,
وبحثنا بالاسم lmportername
عندما where تكس بوكس Textbox يساوي like البحث بالاسم واخر شي كتبنا جمله الاتصال con ,
هذا كل ما في كود البحث انظر الى كود البحث كما في الصوره .
صور بعد التنفيذ الفورم lmporters
صورة نفذنا برنامج لفورم lmporters واضفنا بيانات افتراضية وحفظنا وكله تمام………
صورة ذهبنا لقاعدة بيانات اكسس وتاكدنا من بيانات في جدول lmporter ولاحظنا بيانات محفوظه وكله تمام… ..