برنامج إدارة المبيعات: الدرس - 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
كود عرض الصف المحدد في dgvtotal داخل الأدوات'
Dim pos As Integer = dgvTotal.CurrentRow.Index
If e.ColumnIndex = 4 Then 'كود الطباعة
If MsgBox("هل تريد حذف الصف الحالي؟", MsgBoxStyle.Question + vbYesNo, Title:="تحذير") = vbYes Then
Dim cr = dgvTotal.CurrentRow.Index
Dim cmd As New OleDbCommand("Delete from tblBills where Bill_ID =" & IDpos, con)
cmd.ExecuteNonQuery()
con.Close()
MsgBox("تم الحذف بنجاح", vbMsgBoxRight + MsgBoxStyle.Information, "جاري الحذف")
Load_Bills()
End If
End If

ثانياً: زر عرض تفاصيل الفاتورة 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
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:
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
dtB.Clear()
daB.Fill(dtB)
dgvTotal.DataSource = dtB
Dim colDelete As New DataGridViewButtonColumn
colDelete.Text = "❌"
colDelete.UseColumnTextForButtonValue = True
colDelete.FlatStyle = FlatStyle.Flat
dgvTotal.Columns.Add(colDelete)
Dim colPrint As New DataGridViewButtonColumn
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
Private Sub
frmBills_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Load_Bills()
End
Sub
End Sub

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




تعليقات
إرسال تعليق