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

نكمل مشروعنا ان شاء الله الى هنا نكون قد انتهينا من برمجة  فورم العملاء customers ،  فورم الموردين lmporter فورم الشركة company    فورم المستخدمين users .

اليوم سنبرمج فورم خاص بجدول Company اي الشركة وهذا الفورم تابع لفورم الاصناف ltems الذي لم نبرمجه بعد وفائده هذا الفورم الخاص بالشركة يفيدنا عندما نريد معرفة الشركة التي انتجت او التي اشترينا منها الصنف التابع للشركه وسترون كيف نربط هذا الفورم بفورم الاصناف ltems ,

نبدا على بركة الله نقوم بادراج فورم forms ونسميه ltemcompanies  ثم كالعادة نقوم بفتح قاعدة بيانات مشروعنا من DateSources ونختار جدول Company ونضغط على سهم بجوار جدول ونختار خيار Details ثم نضغط على اسم جدول ونسحبه باكملة على الفورم ايضا كالعادة نقوم بتغير اسماء الحقول برمجياً ، ثم نقوم بادراج button عدد 4 ونغير اسماء كل واحد منهم للاضافة والحذف والحفظ والتعديل , وندرج ايضا اداة datagridview .

ملاحظه 

في هذا الفورم لا نحتاج إلى زر البحث اما انتم اذا تردون تضيفون زر البحث لا اشكال في ذلك وايضا كود بحث شرحنا مراراً وتكراراً يمكنكم اخذه وتضعونه في هذا فورم ,و في حقل الوقت والتاريخ اي تكستات خاصه بهم نقوم بالاتي نحدد تكس بوكس تاريخ Companydate ومن خصائص نختار  CustomFormat  ونكتب الاتي Yayyy/MM/dd  حرفين MM نكتبهم كابتل لتر اي حرف كبير . ومن نفس خصائص تبع تاريخ نختار خيار Format ونختار خاصية Custom  , ايضا نحدد تكس بوكس Companytime ومن خصائص نختار CustomFormat ونكتب الاتي  yyyy/MM/dd ss:MM:tt اكتبه كما كتبته انا👆👆👆 ومن نفس خصائص نختار Format ونختار خاصية Custom… . وسترون فائده 👆👆👆 هذه الخصائص عند تطبيق…

كما في الصورة التالية يصبح الفورم بالشكل النهائي   .

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


نقوم الآن بالاتصال بجدول Company كالعادة نذهب إلى مديول module الخاص بنا ونقوم بانشاء متغيرات للداتا تيبل وداتا ادبتر و ld ولود load تحميل بيانات جدول وكود ترقيم تلقائي لجلب اعلى رقم في جدول Company .

 ثم نقوم اولا بانشاء متغيرات للداتا تيبل وداتا ادبتر و ld كما ياتي :

Module1.vb
	  


Public companiesdt As New DataTable


Public companiesda As New OleDbDataAdapter


Public mynewldcompanies As Integer
	

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

Module1.vb

	  


Public Sub load_companies()


companiesdt.Clear()


companiesda = New OleDbDataAdapter("select * from company", con)

companiesda.Fill(companiesdt)
End Sub

	

ثالثا نقوم بانشاء متغير كود Code لجلب اعلى رقم في جدول كما يلي :-

Module1.vb
	  


Public Sub code_companies()


Dim dt As New DataTable
Dim da As New


OleDbDataAdapter("select max(companyld) from
company", con)


da.Fill(dt)


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


mynewldcompanies = 1


Else


mynewldcompanies =
dt(0)(0) + 1


End If

End Sub
	

كما في الصورة التالية تصبح الاكواد الثلاثه .

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

بعد ذلك نقوم بالذهاب لفورم Company ونضغط ضغطتين على فورم وفي حدث لود load الخاص بالفورم نكتب الكود التالي لتحميل بيانات جدول :

ltemcompany.vb
	  

DataGridView1.DataSource = companiesdt

load_companies()
	

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

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

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

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

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

ltemcompany.vb
	  

public class ltemcompany 

	

نقوم بانشاء اجراء خاص بالاضافة ونسميه newCompanies ونكتب الكود كالتالي :

ltemcompany.vb
	  


Public Sub newcompanies()

code_companies()

Companydate.Text = Now.Date


Companyld.Text = mynewldcompanies


Companyname.Text = ""


Companytime.Text = Now


Companyuser.Text = ""


End Sub
	

و في حدث لود load الفورم نستدعي الاجراء newcompanies .

 وايضا ننقر نقرتين على زر الاضافة ونستدعي الاجراء newcompanies

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

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

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

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

ltemcompany.vb
	  

companiesdt.Rows.Add()


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

companiesdt.Rows(last).Item
("Companydate") = Companydate.Value

companiesdt.Rows(last).Item
("Companyld") = Companyld.Text

companiesdt.Rows(last).Item
("Companyname") = Companyname.Text

companiesdt.Rows(last).Item
("Companytime") = Companytime.Value

companiesdt.Rows(last).Item
("Companyuser") = Companyuser.Text


Dim save As New OleDbCommandBuilder
(companiesda)

companiesda.Update
(companiesdt)

companiesdt.AcceptChanges()


load_companies()


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


newcompanies()


End Sub
	

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

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

3⃣ برمجة كود وضع بيانات على تكس بوكس

أولا  نحدد اداة datagridview و من الاحداث نختار selectionchanged وننقر نقرتين على الحدث ونكتب الكود التالي :

ltemcompany.vb
	  

Try

Dim pos As Integer = BindingContext(companiesdt).Position


Companyld.Text = companiesdt.Rows(pos).Item
("companyld")


Companyname.Text = companiesdt.Rows(pos).Item
("companyname")


Companydate.Text = companiesdt.Rows(pos).Item
("companydate")


Companytime.Text = companiesdt.Rows(pos).Item
("companytime")


Companyuser.Text = companiesdt.Rows(pos).Item
("companyuser")


Catch ex As Exception


End Try


End Sub
	

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

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

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

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

ltemcompany.vb
	  

Dim pos As Integer = BindingContext(companiesdt).Position

companiesdt.Rows(pos).Item
("companyld") = Companyld.Text

companiesdt.Rows(pos).Item
("companyname") = Companyname.Text

companiesdt.Rows(pos).Item
("companydate") = Companydate.Text

companiesdt.Rows(pos).Item
("companytime") = Companytime.Text

companiesdt.Rows(pos).Item
("companyuser") = Companyuser.Text


Dim save As New OleDbCommandBuilder
(companiesda)

companiesda.Update
(companiesdt)

companiesdt.AcceptChanges()

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

load_companies()


End Sub
	

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

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

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

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

ltemcompany.vb
	  

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


Dim pos As Integer = BindingContext(companiesdt).Position

companiesdt.Rows(pos).Delete(
)


Dim save As New OleDbCommandBuilder
(companiesda)

companiesda.Update
(companiesdt)

companiesdt.AcceptChanges()


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

load_companies()


Else

End If

End Sub
	

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

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


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

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