برمجة وتصميم الفورم الخاص بجدول المجموعة groups

اليوم سنبرمج فورم خاص بجدول مجموعه groups في نظامنا سوبر ماركت , وهو فورم ايضا مرتبط بفورم الاصناف ltems الذي لم نبرمجه بعد و فائده هذه فورم المرتبطه بالاصناف هي عندما نشتري او نبيع صنف سيكون لهذا صنف مجموعه ينتمي لها مثلا لدينا صنف اسمه عصير برتقال طيب في انواع كثيره من العصائر يتم ادراجها كلها تحت مجموعه العصائر وهكذا في بقيه الاصناف . 

نقوم الآن بادراج فورم forms ونسميه ltemgroups كالعاده نقوم بفتح قاعدة بيانات مشروعنا من datesources ونختار جدول groups ونضغط كلك ايسر على سهم بجنب اسم جدول ونختار details ومن ثم نقوم بسحب جميع حقول جدول على الفورم .

ثم  كالعادة نقوم بتغير اسماء الحقول برمجياً… ندرج button عدد 4 ونغير اسماء كل واحد منها لازرار الاضافة والتعديل والحفظ والحذف وندرج ايضا اداة datagridview لتحميل بيانات جدول .

كما في الصورة التالية . ليصبح فورم المجموعة . 

برمجة وتصميم الفورم الخاص بجدول المجموعة groups

ثم نقوم بالاتصال بجدول groups من خلال المديول , افتح المديول module خاص بنا ونقوم بانشاء متغيرات للداتا تيبل وداتا ادبتر و ld ولود load تحميل بيانات جدول وكود code نقوم بانشاء متغيرات للداتا تيبل وداتا ادبتر و ld ليصبح كود كما يلي :

Module1.vb
	  


Public groupsdt As New DataTable


Public groupsda As New
OleDbDataAdapter


Public mynewldgroups As Integer
	

نقوم بانشاء لود load لتحميل بيانات جدول ليصبح الكود كالتالي :

Module1.vb
	  

Public Sub load_Grops()


groupsdt.Clear()


groupsda = New OleDbDataAdapter("select * from groups", con)


groupsda.Fill(groupsdt)


End Sub
	

نقوم بانشاء كود code لجلب اعلى رقم في جدول ضمن ترقيم تلقائي ويصبح الكود كالتالي:

Module1.vb
	  

Public Sub code_groups()


Dim dt As New DataTable
Dim da As New


OleDbDataAdapter("select max(groupld) from groups", con)


da.Fill(dt)


If IsDBNull(dt(0)(0)) = True Then


mynewldgroups = 1


Else


mynewldgroups = dt(0)(0) + 1


End If

End Sub
	

كما في الصورة التالية . تم شرح الاكواد الثلاثه اعلاه في دروس سابقة لاحظ الاكواد الثلاثه كما في صورة 

برمجة وتصميم الفورم الخاص بجدول المجموعة groups

ثم نذهب الى الفورم وننقر نقرتين على فورم وفي حدث لود load فروم نكتب الكود التالي :

ltemgroup.vb
	  


load_Grops()


DataGridView1.DataSource = groupsdt
	

كما في الصورة التالية . 

برمجة وتصميم الفورم الخاص بجدول المجموعة groups

الان نقوم ببرمجة ازرار الحذف والحفظ والاضافه والتعديل .

 1⃣ برمجة زر الاضافة

 ننقر نقرتين على فورم وتحت

ltemgroup.vb
	  

public class ltemgroup
	
نقوم بانشاء اجراء خاص بالاضافة ونسميه calergroups ونكتب الكود كالتالي : ltemgroup.vb
	  
Public Sub calergroups()


code_groups()

Groupdate.Text = Now.Date

Groupld.Text =

mynewldgroups
Groupname.Text = ""


Grouptime.Text = Now


Groupuser.Text = ""

End Sub
	

كما في الصورة التالية . 

برمجة وتصميم الفورم الخاص بجدول المجموعة groups

ثم نذهب إلى زر الاضافة ونستدعي الاجراء  , وايضا نذهب الى حدث لود load فروم ونستدعي الاجراء .

2⃣ برمجة زر الحفظ

ننقر نقرتين على زر الحفظ ونكتب الكود التالي : '=============كود الحفظ

ltemgroup.vb
	  

groupsdt.Rows.Add()


Dim last As Integer = groupsdt.Rows.Count - 1

groupsdt.Rows(last).Item
("Groupdate") = Groupdate.Value

groupsdt.Rows(last).Item
("Groupld") = Groupld.Text

groupsdt.Rows(last).Item
("Groupname") = Groupname.Text

groupsdt.Rows(last).Item
("Grouptime") = Grouptime.Value

groupsdt.Rows(last).Item
("Groupuser") = Groupuser.Text


Dim save As New OleDbCommandBuilder
(groupsda)


groupsda.Update(groupsdt)


groupsdt.AcceptChanges()


load_Grops()


MsgBox("تم حفظ البيانات 
بنجاح")


calergroups()


End Sub
	

كما في الصورة التالية . تم شرح الكود في دروس سابقة 

برمجة وتصميم الفورم الخاص بجدول المجموعة groups

3⃣ كود وضع بيانات على تكس بوكس

 نذهب إلى اداة datagridview1 ومن الاحداث هذا الاداة نختار حدث selectionchanged وننقر نقرتين على حدث ونكتب الكود التالي :

ltemgroup.vb
	  

Try


Dim pos As Integer = BindingContext(groupsdt).Position


Groupld.Text = groupsdt.Rows(pos).Item
("groupld")


Groupname.Text = groupsdt.Rows(pos).Item
("groupname")


Groupdate.Text = groupsdt.Rows(pos).Item
("groupdate")


Grouptime.Text = groupsdt.Rows(pos).Item
("grouptime")


Groupuser.Text = groupsdt.Rows(pos).Item
("groupuser")


Catch ex As Exception


End Try


End Sub
	

كما في الصورة التالية . تم شرح الكود مراراً وتكراراً 

برمجة وتصميم الفورم الخاص بجدول المجموعة groups

4⃣ برمجة زر التعديل

ننقر نقرتين على زر التعديل ونكتب الكود التالي : ========كود التعديل

ltemgroup.vb
	  

Dim pos As Integer = BindingContext(groupsdt).Position

groupsdt.Rows(pos).Item
("groupld") = Groupld.Text

groupsdt.Rows(pos).Item
("groupname") = Groupname.Text

groupsdt.Rows(pos).Item
("groupdate") = Groupdate.Text

groupsdt.Rows(pos).Item
("grouptime") = Grouptime.Text

groupsdt.Rows(pos).Item
("groupuser") = Groupuser.Text


Dim save As New OleDbCommandBuilder
(groupsda)


groupsda.Update(groupsdt)


groupsdt.AcceptChanges()


MsgBox("تم حفظ التعديل")


load_Grops()


End Sub 
	

كما في الصورة التالية . ايضا تم شرح كود لاحظ كود التعديل كما في صوره رقم 

برمجة وتصميم الفورم الخاص بجدول المجموعة groups

5⃣ برمجة زر الحذف

 ننقر نقرتين على زر الحذف ونكتب الكود التالي : '==========كود الحذف

ltemgroup.vb
	  

If MsgBox("هل تريد حذف المجموعة", MsgBoxStyle.OkCancel, "تاكيد الحذف") = MsgBoxResult.Ok 
Then


Dim pos As Integer = BindingContext(groupsdt).Position

groupsdt.Rows(pos).Delete()


Dim save As New OleDbCommandBuilder
(groupsda)

groupsda.Update(groupsdt)

groupsdt.AcceptChanges()


MsgBox("تم الحذف")

load_Grops()

Else

End If

End Sub
	

كما في الصورة التالية . ايضا تم شرح كود في درس سابق .

نظام سوبر ماركت فيجول بيسك دوت نت

صورة تجربه فورم المجموعه groups وضعنا بيانات افتراضية وحفظنا .
نظام سوبر ماركت فيجول بيسك دوت نت



الى هنا نكون قد انتهينا من برمجة فورم ltemgroups الخاص بجدول المجموعة ، برمجنا فورم العملاء customers فورم الموردين lmporter فورم الشركة company فورم المستخدمين users فورم المجموعة ltemgroups وبرمجنا هذه الشاشات Forms بسهوله ولاحظتوا اغلب الاكواد متشابهه لانه يتطلب ذلك اي نحتاج في كل فورم forms ازرار الحذف والحفظ والاضافه والتعديل والبحث… يبقى لدينا فورم خاص بالمكان place المرتبط بفورم الاصناف ltems وبعدها سوف ندخل بدروس مختلفه ومطوله وتحتاج الى تركيز ومتابعه وفهم بنفس الوقت ستلاحظون اختلاف بالشكل للفورم وكذلك بالكود وحترافية التصميم والكود…… يتبع تكمله مشروعنا ان شاء الله .