برمجة و تصميم واجهة الموردين lmporters

في درس سابق تم برمجة فورم  العملاء customers اليوم سنبرمج فورم الموردين  .

  فورم  الموردين lmporters

كل شي عملناه في فورم سابق الخاص بـ customers سنعمله ايضا في هذا الفورم اي نفس كلام بالضبط .

تصميم واجهة الموردين 

نبدا علئ بركة الله 

نقوم بادراج فورم forms ونسميه الموردين  lmporters ومثل ماعملنا مع فورم customers نقوم بفتح نافذة

 Date sources

لتضهر قاعدة البيانات والجداول التي فيها وايضا نختار جدول lmporter ونضغط كلك ايمن على سهم ونختار Details ومن ثم نجعل حقل lmportertype كومبو بوكس Combobox نضغط ونسحب الجدول باكملة على الفورم .

ثم نقوم بتغير اسماء حقول التي سحبناها على الفورم برمجياً اي مثل 

ماعملنا مع حقول خاصه بـ Customers

ثم نقوم باضافة Button عدد 5  

ونغير اسمائها ليس برمجياً ونجعل كل واحد منها لازرار الاضافة والتعديل والاضافة والبحث و الحفظ .

وندرج اداة datagridview

ندرج تكس بوكس واحد خاص بالبحث

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

برمجة و تصميم فورم بالموردين  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

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

عرض بيانات الموردين في 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 ولاحظنا بيانات محفوظه وكله تمام… ..


صورة  لقاعدة بيانات اكسس و تاكدنا من البيانات في جدول الموردين