26-06-21, 03:21 PM
السلام عليكم
ممكن مساعدة بخصوص المشكلة التي حددت بالــــ DGV
تفاصيل المشكلة
انا عملت فورم فاتورة المشتريات
وهدا صورة الفورم
الفورم شغال تمام من ناحية التعديل والحدف واضافة صنف والداتا تتغير حسب المدخلات
المشكلة التي تواجهني عند اضافة فاتورة جديدة ومسح الداتا الحالية من DGV حسب التسلسل الي هو موضح بالصورة رقم 8 فتكون الفاتورة الحديدة 9
من خلال الـــ Query بين الجدولين Items و Operations عملت علاقة بينهم
حسب الكود التالي
والـــ Sub الخاص بتحميل الــ Query اسمه Load_BuyQ()
وهد الكود الخاص به
فعند اضافة شرط معين الي Query لانشاء فاتورة جديدة بعد Items.ItemName=Operations.OperItem
عند تشغبل البرنامج تظهر الــDGV كالاتي
وهدي الصورة بعد الغاء الشرط
وهدا الكود الخاص بفورم ByuPill
ممكن مساعدة بخصوص المشكلة التي حددت بالــــ DGV
تفاصيل المشكلة
انا عملت فورم فاتورة المشتريات
وهدا صورة الفورم
الفورم شغال تمام من ناحية التعديل والحدف واضافة صنف والداتا تتغير حسب المدخلات
المشكلة التي تواجهني عند اضافة فاتورة جديدة ومسح الداتا الحالية من DGV حسب التسلسل الي هو موضح بالصورة رقم 8 فتكون الفاتورة الحديدة 9
من خلال الـــ Query بين الجدولين Items و Operations عملت علاقة بينهم
حسب الكود التالي
كود :
SELECT OperID,.BuyID, OperItem, Items.ItemPrice, Items.ItemQty, Items.ItemPlace, Operations.BuyQty, Operations.BuyTotalG, Operations.BuyDiscound, Operations.BuyUnitPrice, Operations.BuyTotalB, Operations.BuyEarn, Operations.BuyNotes, Operations.OperDate, Operations.OperTime, Operations.OperUser
FROM Items INNER JOIN Operations ON Items.ItemName = Operations.OperItem;
والـــ Sub الخاص بتحميل الــ Query اسمه Load_BuyQ()
وهد الكود الخاص به
كود :
Public Sub Load_BuyQ()
Try
'==== load BuyPill Query=====
Dim dt As New DataTable
Dim Da As New OleDbDataAdapter
dt.Clear()
Da = New OleDbDataAdapter("SELECT Operations.OperID, Operations.BuyID, Operations.OperItem,Operations.OperItemExp,
Items.ItemPrice, Items.ItemQty, Items.ItemPlace, Operations.BuyQty, Operations.BuyTotalG, Operations.BuyDiscound,
Operations.BuyUnitPrice, Operations.BuyTotalB, Operations.BuyEarn, Operations.BuyNotes, Operations.OperDate,
Operations.OperTime, Operations.OperUser
(FROM Items INNER JOIN Operations on Items.ItemName = Operations.OperItem ", con
Da.Fill(dt)
DGV.DataSource = dt
Catch ex As Exception
End Try
End Sub
كود :
and Operations.BuyID= " & BuyID.Text & "
عند تشغبل البرنامج تظهر الــDGV كالاتي
وهدي الصورة بعد الغاء الشرط
وهدا الكود الخاص بفورم ByuPill
كود :
Imports System.Data.OleDb
Public Class BuyPill
Public Sub Load_BuyQ()
Try
'==== load BuyPill Query=====
Dim dt As New DataTable
Dim Da As New OleDbDataAdapter
dt.Clear()
Da = New OleDbDataAdapter("SELECT Operations.OperID, Operations.BuyID, Operations.OperItem,Operations.OperItemExp,
Items.ItemPrice, Items.ItemQty, Items.ItemPlace, Operations.BuyQty, Operations.BuyTotalG, Operations.BuyDiscound,
Operations.BuyUnitPrice, Operations.BuyTotalB, Operations.BuyEarn, Operations.BuyNotes, Operations.OperDate,
Operations.OperTime, Operations.OperUser
FROM Items INNER JOIN Operations on Items.ItemName = Operations.OperItem and Operations.BuyID= " & BuyID.Text & " ", con)
Da.Fill(dt)
DGV.DataSource = dt
Catch ex As Exception
End Try
End Sub
Public Sub NewPill()
Max_BuyPill()
ClearControls()
'DataGridViewHeaderText(DGV)
End Sub
Private Sub BuyImporter_TextChanged(sender As Object, e As EventArgs) Handles BuyImporter.TextChanged
If BuyImporter.Text <> Nothing Then
GroupBox1.Visible = True
Else
GroupBox1.Visible = False
End If
End Sub
Private Sub BuyPill_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'BuyUser.Text = MainPage.Label2.Text
Load_BuyPill()
'==================
GroupBox1.Visible = False
BuyID.Text = Max_BuyPill() + 1
'DataGridViewHeaderText(DGV)
NewPill()
Load_BuyQ()
'===========coloring the entered value ====================
Try
DGV.Columns(2).DefaultCellStyle.BackColor = Color.Yellow
DGV.Columns(3).DefaultCellStyle.BackColor = Color.Yellow
DGV.Columns(7).DefaultCellStyle.BackColor = Color.Yellow
DGV.Columns(9).DefaultCellStyle.BackColor = Color.Yellow
DGV.Columns(13).DefaultCellStyle.BackColor = Color.Yellow
Catch ex As Exception
End Try
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Importer_Search.ShowDialog()
End Sub
Public Sub ClearControls()
Me.BuyID.Text = Max_BuyPill() + 1
Me.BuyDate.Value = Today
Me.BuyTime.Value = Today
Me.BuyInvoiceNo.Text = 0
Me.BuyImporter.Text = vbNullString
Me.BuyCash.Checked = True
Me.BuyPostpone.Checked = False
Me.BuyUser.Text = vbNullString
Me.BuyTotalG.Text = 0
Me.BuyTotalB.Text = 0
Me.BuyItemCount.Text = 0
Me.BuyEran.Text = 0
Me.BuyEranPercent.Text = 0
Me.BuyAdd.Text = 0
Me.BuyMinus.Text = 0
End Sub
Private Sub BtnNew_Click(sender As Object, e As EventArgs) Handles BtnNew.Click
NewPill()
Load_BuyQ()
End Sub
Public Sub save_BuyPill()
BuyPillDT.Rows.Add()
Dim last As Integer = BuyPillDT.Rows.Count - 1
BuyPillDT.Rows(last).Item("BuyID") = BuyID.Text
BuyPillDT.Rows(last).Item("BuyDate") = BuyDate.Value
BuyPillDT.Rows(last).Item("BuyTime") = BuyTime.Value
BuyPillDT.Rows(last).Item("BuyInvoiceNo") = BuyInvoiceNo.Text
BuyPillDT.Rows(last).Item("BuyImporter") = BuyImporter.Text
BuyPillDT.Rows(last).Item("BuyCash") = BuyCash.Checked
BuyPillDT.Rows(last).Item("BuyPostpone") = BuyPostpone.Checked
BuyPillDT.Rows(last).Item("BuyUser") = BuyUser.Text
BuyPillDT.Rows(last).Item("BuyTotalG") = BuyTotalG.Text
BuyPillDT.Rows(last).Item("BuyTotalB") = BuyTotalB.Text
BuyPillDT.Rows(last).Item("BuyItemCount") = BuyItemCount.Text
BuyPillDT.Rows(last).Item("BuyEran") = BuyEran.Text
BuyPillDT.Rows(last).Item("BuyEranPercent") = BuyEranPercent.Text
BuyPillDT.Rows(last).Item("BuyAdd") = BuyAdd.Text
BuyPillDT.Rows(last).Item("BuyMinus") = BuyMinus.Text
Dim save As New OleDbCommandBuilder(BuyPillDA)
BuyPillDA.Update(BuyPillDT)
BuyPillDT.AcceptChanges()
End Sub
Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
save_BuyPill()
MsgBox("تم حفظ البيانات بنجاح", MsgBoxStyle.Information, "حفظ")
Load_BuyPill()
NewPill()
Load_BuyQ()
End Sub
'Public Sub DataGridViewHeaderText(ByVal DGV As DataGridView)
' If DGV.RowCount > 0 Then
' With DGV
' .Columns("BuyID").HeaderText = "تسلسل"
' .Columns("BuyID").Width = 50
' .Columns("BuyDate").HeaderText = "التاريخ"
' .Columns("BuyDate").Width = 100
' .Columns("BuyTime").HeaderText = "الوقت"
' .Columns("BuyTime").Width = 100
' .Columns("BuyInvoiceNo").HeaderText = "رقم الفاتورة"
' .Columns("BuyInvoiceNo").Width = 100
' .Columns("BuyImporter").HeaderText = "المورد"
' .Columns("BuyImporter").Width = 100
' .Columns("BuyCash").HeaderText = "كاش"
' .Columns("BuyCash").Width = 50
' .Columns("BuyPostpone").HeaderText = "أجل"
' .Columns("BuyPostpone").Width = 50
' .Columns("BuyUser").HeaderText = "المستخدم"
' .Columns("BuyUser").Width = 150
' .Columns("BuyTotalG").HeaderText = "اجمالي الجمهور"
' .Columns("BuyTotalG").Width = 120
' .Columns("BuyTotalB").HeaderText = "اجمالي الشراء"
' .Columns("BuyTotalB").Width = 120
' .Columns("BuyItemCount").HeaderText = "عدد الاصناف"
' .Columns("BuyItemCount").Width = 100
' .Columns("BuyEran").HeaderText = "الربح المتوقع"
' .Columns("BuyEran").Width = 100
' .Columns("BuyEranPercent").HeaderText = "نسبة الربح"
' .Columns("BuyEranPercent").Width = 100
' .Columns("BuyAdd").HeaderText = "اضافة المصروفات"
' .Columns("BuyAdd").Width = 120
' .Columns("BuyMinus").HeaderText = "الخصم"
' .Columns("BuyMinus").Width = 100
' End With
' End If
'End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Item_Serach.Show()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim dt As New DataTable
Dim cmd As New OleDbCommand
dt.Clear()
cmd = New OleDbCommand(" Delete from Operations where OperID =" & DGV(0, DGV.CurrentRow.Index).Value & "", con)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
Load_BuyQ()
End Sub
Private Sub DGV_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DGV.CellEndEdit
Dim Qty As Double
Dim Discu As Double
Dim Notee As String
Dim expireed As Date
Dim OpID As Integer
Qty = DGV(7, DGV.CurrentRow.Index).Value
Discu = DGV(9, DGV.CurrentRow.Index).Value
Notee = DGV(13, DGV.CurrentRow.Index).Value
expireed = DGV(3, DGV.CurrentRow.Index).Value
OpID = DGV(0, DGV.CurrentRow.Index).Value
Dim dt As New DataTable
Dim cmd As New OleDbCommand
dt.Clear()
cmd = New OleDbCommand("Update Operations set BuyQty=" & Qty & ",BuyDiscound=" & Discu & ",BuyNotes='" & Notee & "',OperItemExp=#" & expireed & "# where OperID = " & OpID & "", con)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
Load_BuyQ()
End Sub
Private Sub BuyUser_TextChanged(sender As Object, e As EventArgs) Handles BuyUser.TextChanged
'BuyUser.Text = MainPage.Label2.Text
End Sub
End Class