برنامج إدارة المبيعات: الدرس - 11: صفحة المبيعات النقدية - الجزء 2: عرض تفاصيل الفاتورة - حذف فاتورة معينة


في الدرس الحادي عشر من برنامج ادارة المبيعات سنقوم ببرمجة زر عرض معلومات الفاتورة المحددة (الصف المحدد) في ال dgvTotal  داخل داتاكردفيو آخرى وهي dgvDetails بشكل كامل وايضا سنقوم بحذف فاتورة معينه من جدول المبيعات النقدية.






متطلبات هذا الدرس 

    • داتاكردفيو dgvTotal

    • زر عرض تفاصيل الفاتورة  btnBillDetails
    • داتاكردفيو dgvDetails
    • إنشاء sub Load_Bills

    أولاً: داتاكردفيو dgvTotal

    عن طريق حدث dgvTotal_CellClick (النقر على اي خليه داخل dgvTotal) يتم عرض رقم الوصل، اسم الزبون وتأريخ الوصل للصف المحدد داخل الادوات الخاصة بهم، وايضا يتم طباعة معومات الفاتورة عند النقر على الخلية التي تحتوي زر الطباعة (e.ColumnIndex = 4) عن طريق الكود التالي:-


    Private Sub dgvTotal_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTotal.CellClick
    كود عرض الصف المحدد في  dgvtotal داخل الأدوات'
            Dim pos As Integer = dgvTotal.CurrentRow.Index
            tbBillID.Text = dgvTotal.Rows(pos).Cells("Bill_ID").Value.ToString
            tbCName.Text = dgvTotal.Rows(pos).Cells("Customer_Name").Value.ToString
            tbDate.Text = dgvTotal.Rows(pos).Cells("Bill_Date").Value
     
            If e.ColumnIndex = 4 Then 'كود الطباعة
                If MsgBox("هل تريد حذف الصف الحالي؟", MsgBoxStyle.Question + vbYesNo, Title:="تحذير") = vbYes Then
                    Dim cr = dgvTotal.CurrentRow.Index
                    Dim IDpos As Integer = dgvTotal.Rows(cr).Cells("Bill_ID").Value
     
                    Dim cmd As New OleDbCommand("Delete from tblBills where Bill_ID =" & IDpos, con)
                    con.Open()
                    cmd.ExecuteNonQuery()
                    con.Close()
                    MsgBox("تم الحذف بنجاح", vbMsgBoxRight + MsgBoxStyle.Information, "جاري الحذف")
     
                    Load_Bills()
                End If
            End If
    End Sub

     

    ثانياً: زر عرض تفاصيل الفاتورة  btnBillDetails:

    عند الضغط على هذا الزر يتم البحث عن رقم الوصل الخاص بالفاتورة المحدد داخل جدول المبيعات النقدية وجلب كافة المواد المتربطة بها وعرضها داخل dgvdetails. ويتم ذلك عن طريق الكود التالي:-

    Private Sub btnBillDetails_Click(sender As Object, e As EventArgs) Handles btnBillDetails.Click

        Dim daBD As New OleDbDataAdapter("SELECT tblBills.Total , tblBills.Unit_Price, tblBills.Units,  tblBills.Item_Name 

    FROM tblBills Where Bill_ID=" & tbBillID.Text, con)

            Dim dtBD As New DataTable

            dtBD.Clear()

            daBD.Fill(dtBD)

            dgvBillInfo.DataSource = dtBD

     

            dgvBillInfo.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

            dgvBillInfo.Columns(3).HeaderText = "اسم المنتح"

            dgvBillInfo.Columns(3).Width = 150

            dgvBillInfo.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

     

            dgvBillInfo.Columns(2).HeaderText = "الوحدات"

            dgvBillInfo.Columns(2).Width = 80

            dgvBillInfo.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

     

            dgvBillInfo.Columns(1).Width = 80

            dgvBillInfo.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

            dgvBillInfo.Columns(1).HeaderText = "سعر الوحد"

     

            dgvBillInfo.Columns(0).HeaderText = "الأجمالي"

            dgvBillInfo.Columns(0).Width = 100

            dgvBillInfo.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

    End Sub


     

    ثالثاً: داتاكردفيو dgvDetails

    يتم عرض كافة المواد المباعة الخاصة بهذه الفاتورة فيها.


    رابعاً: sub Load_Bills:

    يتم نقل كود عرض فواتير المبيعات النقدية من حدث  frmBills_Load ووضعه داخل sub Load_Bills وذلك لاستدعاء فقط اسم sub في اي اداة نحتاج اليها بدون تكرار كود التحميل بشكل كامل، ويتم ذلك عن طريق الكود التالي:-

    Sub Load_Bills()
            Dim daB As New OleDbDataAdapter("Select Bill_ID,Customer_Name,Total,Bill_Date
               From tblBills where Item_Name='المجموع' order by Bill_ID DESC", con)
            Dim dtB As New DataTable
            dgvTotal.Columns.Clear()
            dtB.Clear()
            daB.Fill(dtB)
     
            dgvTotal.DataSource = dtB
     
            Dim colDelete As New DataGridViewButtonColumn
            colDelete.Name = "Delete"
            colDelete.Text = ""
            colDelete.UseColumnTextForButtonValue = True
     
            colDelete.FlatStyle = FlatStyle.Flat
            dgvTotal.Columns.Add(colDelete)
     
     
            Dim colPrint As New DataGridViewButtonColumn
            colPrint.Name = "Print"
            colPrint.Text = "🖨"
            colPrint.UseColumnTextForButtonValue = True
     
            colPrint.FlatStyle = FlatStyle.Flat
            dgvTotal.Columns.Add(colPrint)
     
     
            dgvTotal.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
     
            dgvTotal.Columns(0).HeaderText = "رقم الفاتورة"
            dgvTotal.Columns(0).Width = 60
            dgvTotal.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
            dgvTotal.Columns(1).HeaderText = "اسم الزبون"
            dgvTotal.Columns(1).Width = 165
            dgvTotal.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
            dgvTotal.Columns(2).HeaderText = "إجمالي الفاتورة"
            dgvTotal.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
            dgvTotal.Columns(2).Width = 80
     
            dgvTotal.Columns(3).HeaderText = "تأريخ البيع"
            dgvTotal.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
            dgvTotal.Columns(3).Width = 90
     
            dgvTotal.Columns(4).HeaderText = "حذف"
            dgvTotal.Columns(4).Width = 60
            dgvTotal.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
     
     
            dgvTotal.Columns(5).HeaderText = "طباعة"
            dgvTotal.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
            dgvTotal.Columns(5).Width = 60
     
            tbBillID.Text = dgvTotal.Rows(0).Cells("Bill_ID").Value.ToString
            tbCName.Text = dgvTotal.Rows(0).Cells("Customer_Name").Value.ToString
            tbDate.Text = dgvTotal.Rows(0).Cells("Bill_Date").Value
    End Sub


    وايضا يتم استدعاء Load_Bills داخل حدث  frmBills_Load  عن طريق الكود التالي:-

      Private Sub frmBills_Load(sender As Object, e As EventArgs) Handles MyBase.Load

            Load_Bills()

       End Sub




    لتحميل الأكواد المستخدمة في الدرس إضغط هنا 

    يمكنكم متابعة الدرس عن طريق اليوتيوب




    دروس قد تهمك

    شرح عرض فواتير- برنامج ادارة المطاعم https://youtu.be/pvGbqhxwo5o



    قوائم تشغيل قد تهمك 🎬 برنامج إدارة المطاعم - Vb.net and MS Access https://youtube.com/playlist?list=PLJ_b4a1hzeO_8w9hKbLq_FvhYquVLynqk دورة مايكروسوفت اكسس Microsoft Access https://www.youtube.com/playlist?list=PLJ_b4a1hzeO8kBfZzpjYGVB-i1dgrGyWW دورة ربط الفيجوال بيسك بقواعد البيانات (SQL Server - Access) https://www.youtube.com/playlist?list=PLJ_b4a1hzeO9-R7JTfRFsmHXaWhWaXTVP دورة تعلم الفيحوال بيسك (vb.net) https://www.youtube.com/playlist?list=PLJ_b4a1hzeO_qAeBJbFZlTWwLhqqpIMXk

    للتواصل https://www.facebook.com/Info.AliAlhadithy #المبيعات #المدينون #مبيعات_غير_نقدية #مبيعات_آجلة #مبيعات_نقدية #حساب_المبيعات #فاتورة_ييع






    تعليقات

    المشاركات الشائعة من هذه المدونة

    برنامج إدارة المطاعم - الدرس الثالث والعشرون والأخير: برمجة صلاحيات المستخدمين

    برنامج إدارة المبيعات - الدرس الأول :- صفحة الموجودات - الجزء 1 - إنشاء جدول الموجوادت وعرضه بالفيجوال بيسك

    دورة Microsoft Access - الدرس الثامن: انشاء وتوزيع صلاحيات التحكم للمستخدمين :