26-02-19, 10:44 AM
السلام عليكم ورحمه الله وبركاته
تحية لاعضاء المنتدى الكرام
فى الصورة التالية داتا جريد
[attachment=20984]
تحتوى على كود وكمية لصنف (مع ملاحظة تكرار الصنف بكميات مختلفة)
يوجد فنكشن للبحث قبل الحفظ
اذا كان الكمية المدخلة اكبر من الرصيد (BalAfter) لكل يوم على حدة ... لا يمكن الحفظ
وهى تعمل بشكل كويس
Function NoBalance_duringDate(grd As DataGridView, txtwhid As TextBox, txtNoteDate As MaskedTextBox, MyCellIndex As Integer)
Dim TotalBalMinuse As MsgBoxResult
For i As Integer = 0 To grd.RowCount - 1
SearchDataSet("select whid, NoteID, NoteAname, BalAfter from ViewItemTransaction where whid = " & txtwhid.Text & " and NoteDate >= '" & Format(CDate(txtNoteDate.Text), "yyyy/MM/dd") & "' and Item_ID = " & CInt(grd.Rows(i).Cells(5).Value) & " GROUP BY whid, NoteID, NoteAname, BalAfter, notenature, NoteDate ORDER BY NoteDate")
If cur1.Count > 0 Then
For R = 0 To cur1.Count - 1
If grd.Rows(i).Cells(8).Value > cur1.Current("BalAfter") Then
TotalBalMinuse = Mymsg(" Item Code " & grd.Rows(i).Cells(5).Value & " Item Balance Minuse .. Current Balance " & cur1.Current("BalAfter") & " ", vbInformation + vbOKOnly, " Banciana ")
End If
Exit Function
End If
cur1.Position += 1
Next
End If
Next
If TotalBalMinuse = MsgBoxResult.Ok Then
Return False
Else
Return True
End If
End Function
[attachment=20985]
*********************** لكن المشكلة فى التالى ************
ماذا فى حالة تكرار الصنف بنفس الجريد كما فى الصورة اعلاه
فان الفنكشن تذهب لاول كمية وتقارنها دون تجميع جميع الكميات ....
هل هناك طريقة لتجميع الكمية لنفس الصنف قبل المقارنة بالفنكشن
اسف للاطالة بس فعلا الموضوع ارهقنى كثيرا
ارجوا التعديل على الكود .... او اعطاء فكرة لما ذكرت لحضراتكم
تحياتى للجميع
تحية لاعضاء المنتدى الكرام
فى الصورة التالية داتا جريد
[attachment=20984]
تحتوى على كود وكمية لصنف (مع ملاحظة تكرار الصنف بكميات مختلفة)
يوجد فنكشن للبحث قبل الحفظ
اذا كان الكمية المدخلة اكبر من الرصيد (BalAfter) لكل يوم على حدة ... لا يمكن الحفظ
وهى تعمل بشكل كويس
Function NoBalance_duringDate(grd As DataGridView, txtwhid As TextBox, txtNoteDate As MaskedTextBox, MyCellIndex As Integer)
Dim TotalBalMinuse As MsgBoxResult
For i As Integer = 0 To grd.RowCount - 1
SearchDataSet("select whid, NoteID, NoteAname, BalAfter from ViewItemTransaction where whid = " & txtwhid.Text & " and NoteDate >= '" & Format(CDate(txtNoteDate.Text), "yyyy/MM/dd") & "' and Item_ID = " & CInt(grd.Rows(i).Cells(5).Value) & " GROUP BY whid, NoteID, NoteAname, BalAfter, notenature, NoteDate ORDER BY NoteDate")
If cur1.Count > 0 Then
For R = 0 To cur1.Count - 1
If grd.Rows(i).Cells(8).Value > cur1.Current("BalAfter") Then
TotalBalMinuse = Mymsg(" Item Code " & grd.Rows(i).Cells(5).Value & " Item Balance Minuse .. Current Balance " & cur1.Current("BalAfter") & " ", vbInformation + vbOKOnly, " Banciana ")
End If
Exit Function
End If
cur1.Position += 1
Next
End If
Next
If TotalBalMinuse = MsgBoxResult.Ok Then
Return False
Else
Return True
End If
End Function
[attachment=20985]
*********************** لكن المشكلة فى التالى ************
ماذا فى حالة تكرار الصنف بنفس الجريد كما فى الصورة اعلاه
فان الفنكشن تذهب لاول كمية وتقارنها دون تجميع جميع الكميات ....
هل هناك طريقة لتجميع الكمية لنفس الصنف قبل المقارنة بالفنكشن
اسف للاطالة بس فعلا الموضوع ارهقنى كثيرا
ارجوا التعديل على الكود .... او اعطاء فكرة لما ذكرت لحضراتكم
تحياتى للجميع


لكل من يقوم بالمساهمة