في الدرس السابق انتهينا من تصميم فورم صرف وتوريد النقديه وعرفنا شلون نصرف ونورد النقديه (دفع مستحقات علئ الشركة وللشركة ) .
تصميم فورم المصاريف
ولو رجعنا الى جدول Expenses الخاص بحفظ المصاريف المستحقه على الشركة لكن لو فكرتوا وياي كيف نضيف المصاريف ونحفظها في هذا الجدول ليس هناك فورم خاص بالمصاريف حتى نضيف مصاريف الشركة لذلك سنقوم بانشاء فورم المصاريف على السريع و نسميه Expenses ونضيف عليه الادوات التالية : ـ ➖Button➖ عدد 4
ـ ➖ Textbox عدد 6
ـ➖ Datagridview لعرض بيانات عليها
ـ➖ DateTimePicker عدد 2 ثم نضع امام كل textbox و Datagridview ليبل label بحيث ونسمي الليبلات
كما في الصورة للشكل النهائي للفورم
ثم نغير اسماء Button تسميه ليس برمجيا واحد للاضافة والحفظ والتعديل والحذف
اما اسماء الادوات برمجيا تبقى جميعها كما هي لا نغير فيها شي
ثم نضيف حقول اضافية في جدول Expensee ويصبح بعد الاضافه كالتالي ـ Expenseld ـ Expensename ـ Expensebalance ـ Expensedate ـ Expensetime ـ Expensenotes ـ Expenseuser
بحيث يصبح جدول Expenses كما في الصورة
ربط فورم المصاريف بالفورم الرئيسي
الآن نربط فورم المصاريف بالفورم الرئيسي manipage نفتح الفورم وفي قائمة الحسابات نكتب فرع ونسميه المصاريف المستحقه ثم ننقر عليه نقرتين ونكتب الكود التالي
Expenses.MdiParent = Me Expenses.WindowState = FormWindowState.Maximized Expenses.Show()
لاحظ ترتيب الكود كما في الصورة
لاحظ ايضا كيف تم اضافة فرع في قائمه الحسابات كما في الصورة .
الاتصال بجدول المصاريف
ثم كالعاده نعرف متغيرات للداتا تيبل وداتا ادبتر و ld و code و load وكتب الاكواد في المديول كالتالي
Public Expensesdt As New DataTable Public Expensesda As New OleDbDataAdapter Public mynewldExpenses As Integer Public Expensescmd As New OleDbCommand Public Sub load_Expenses() Expensesdt.Clear() Expensesda = New OleDbDataAdapter("select * from Expenses", con) Expensesda.Fill(Expensesdt) End Sub Public Sub code_Expenses() Dim dt As New DataTable Dim da As New OleDbDataAdapter("select max(Expenseld) from Expenses", con) da.Fill(dt) If IsDBNull(dt(0)(0)) = True Then mynewldExpenses = 1 Else mynewldExpenses = dt(0)(0) + 1 End If End Sub
لاحظ ترتيب الكود في الصوره
تحميل بيانات المصاريف
ثم ننقر نقرتين على فورم وفي حدث اللود load نستدعي اللود load لتحميل بيانات جدول كالتالي :
load_Expenses()وفي نفس حدث اللود load الفورم نكتب الكود التالي لتحميل بيانات الجدول :
DataGridView1.DataSource = Expensesdt
برمجة فورم المصاريف
الان ناتي الى برمجة ازرار الحذف والحفظ والتعديل والاضافة
اجراء لتفريغ تكستات بوكس من البيانات بعد كل عمليه اضافة و حفظ
نقوم بانشاء اجراء خاص لتفريغ تكستات بوكس من البيانات بعد كل عمليه اضافة وحفظ كما يلي :
Public Sub NewExpenses() code_Expenses() Expensename.Text = "" Expensebalance.Text = 0 Expensedate.Value = Now.Date Expenseld.Text = mynewldExpenses Expensenotes.Text = "" Expenseuser.Text = "" Expensetime.Value = Now End Sub
لاحظ ترتيب الكود كما في الصورة
ثم نقوم باستدعاء الاجراء في زر الاضافة وفي حدث اللود load الفورم
NewExpenses()
برمجة زر حفظ مصروف
ننقر نقرتين على الزر حفظ ونكتب الكود التالي :
Expensesdt.Rows.Add() Dim last As Integer = Expensesdt.Rows.Count - 1 Expensesdt.Rows(last).Item ("Expensename") = Expensename.Text Expensesdt.Rows(last).Item ("Expensebalance") = Expensebalance.Text Expensesdt.Rows(last).Item ("Expensenotes") = Expensenotes.Text Expensesdt.Rows(last).Item ("Expenseld") = Expenseld.Text Expensesdt.Rows(last).Item ("Expensetime") = Expensetime.Value Expensesdt.Rows(last).Item ("Expensedate") = Expensedate.Value Expensesdt.Rows(last).Item ("Expenseuser") = Expenseuser.Text Dim save As New OleDbCommandBuilder (Expensesda) Expensesda.Update(Expensesdt) Expensesdt.AcceptChanges() MsgBox("تم حفظ البيانات بنجاح") load_Expenses() NewExpenses()
لاحظ ترتيب الكود كما في الصوره
برمجة زر تعديل مصروف
ننقر نقرتين على زر تعديل ونكتب الكود التالي :
Dim pos As Integer = BindingContext(Expensesdt) .Position Expensesdt.Rows(pos).Item ("Expensename") = Expensename.Text Expensesdt.Rows(pos).Item ("Expensebalance") = Expensebalance.Text Expensesdt.Rows(pos).Item ("Expensenotes") = Expensenotes.Text Expensesdt.Rows(pos).Item ("Expenseld") = Expenseld.Text Expensesdt.Rows(pos).Item ("Expensetime") = Expensetime.Value Expensesdt.Rows(pos).Item ("Expensedate") = Expensedate.Value Expensesdt.Rows(pos).Item ("Expenseuser") = Expenseuser.Text Dim save As New OleDbCommandBuilder (Expensesda) Expensesda.Update(Expensesdt) Expensesdt.AcceptChanges() MsgBox("تم حفظ البيانات بنجاح") load_Expenses()
لاحظ ترتيب الكود كما في الصورة
برمجة عرض بيانات المصاريف على تكستات بوكس
في حاله تعديل البيانات نذهب الى datagridview ومن الاحداث نختار حدث selectionchanged ونكتب الكود التالي :
Try Dim pos As Integer = BindingContext(Expensesdt) .Position Expensename.Text = Expensesdt.Rows(pos).Item ("Expensename") Expensebalance.Text = Expensesdt.Rows(pos).Item ("Expensebalance") Expensenotes.Text = Expensesdt.Rows(pos).Item ("Expensenotes") Expenseld.Text = Expensesdt.Rows(pos).Item ("Expenseld") Expensetime.Text = Expensesdt.Rows(pos).Item ("Expensetime") Expensedate.Text = Expensesdt.Rows(pos).Item ("Expensedate") Expenseuser.Text = Expensesdt.Rows(pos).Item ("Expenseuser") Catch ex As Exception End Try
لاحظ ترتيب الكود كما في الصورة
برمجة زر حذف مصروف
ننقر نقرتين على زر الحذف ونكتب الكود التالي :
If MsgBox("هل تريد حذف المصروف", MsgBoxStyle.OkCancel, "تاكيد الحذف") = MsgBoxResult.Ok Then Dim pos As Integer = BindingContext(Expensesdt) .Position Expensesdt.Rows(pos).Delete() Dim save As New OleDbCommandBuilder (Expensesda) Expensesda.Update(Expensesdt) Expensesdt.AcceptChanges() MsgBox("تم الحذف") load_Expenses() Else End If End Sub
لاحظ ترتيب الكود كما في الصورة
تنفيذ فورم المصاريف
شاهد بالفيديو بعد تنفيذ فورم المصاريف كيف تمت عمليه الحفظ والتعديل والحذف .
كورس أحتراف برمجة و تصميم مشروع السوبر ماركت الفيجول بيسك دوت نت
وهذه فورمات المشروع كالتالي :
فورم الاصناف
فورم المكان
فورم المجموعة
فورم الشركة
فورم فاتوره المبيعات
فورم مرتجع البيع
فورم مرتجع الشراء
فورم الموظفين المسخدمين
فورم صرف وتوريد النقديه
فورم المصروفات
فورم حساب الايراد اليومي
هذه جميع فورمات التي تم تصميمها وبرمجتها في نظام السوبر ماركت و بالتالي نستطيع ان نمنع الموظف من الدخول لاحد الفورمات من خلال فورم الصلاحيات او العكس .