المشاركات : 1,556
المواضيع 14
الإنتساب : Apr 2013
السمعة :
253
الشكر: 3551
تم شكره 4875 مرات في 1243 مشاركات
(01-12-18, 07:13 PM)atef_020 كتب : السلام عليكم اخوانى المحترمين
اقوم بادخال الفاتورة عن طريق الدتاجريد فيوم لا عن طريق التكست بوكس اريد عندما اقوم باضافة صنف موجود فى الدتاجريد فيو فانة يقوم باضافة الكمية فقط على نفس الصنف ولا يضيفة مرة اخرى فى الدتاجريد فيو
- سوال تانى اعذرونى ممكن التعديل على رقم بداخل خلية قمت باستدعئها
انا عندما اقوم بكتابة كود الصنف فيقوم باستدعاء بيانات الصنف ومن بين هذه البيانات استدعاء اخر سعر تكلفة فاذا كان سعر التكلفة الجديد هوة نفس السعر القديم فلا اقوم بالتعديل اما اذا كان مختلف فاغير السعر القديم الى السعر الجديد
المشكلة عندما اقوم بتغيير السعر واضغط انتر فيرجع الى السعر القديم الذى تم استدعائة من قاعدة البيانات
جزاكم الله خيرا تحياتى للجميع
وعليكم السلام ورحمة الله وبركاته ،،،
القي نظرة
يا رحمن الدنيا والآخرة ورحيمهما
المشاركات : 1,556
المواضيع 14
الإنتساب : Apr 2013
السمعة :
253
الشكر: 3551
تم شكره 4875 مرات في 1243 مشاركات
03-12-18, 04:56 PM
(آخر تعديل لهذه المشاركة : 03-12-18, 04:58 PM {2} بواسطة حريف برمجة.)
(01-12-18, 11:32 PM)anis كتب : السلام عليكم اريد عمل ازرار كما هومبين بالفيديو : https://www.youtube.com/watch?v=WnO8MIyIaw0
مع العلم اني قمت بتحميل ملف ddl
وجاتني رسالة "Your app has entered a break state, but there is no code to show because all threads were executing external code (typically system or framework code)
الأخ انيس ،، وعليكم السلام ورحمة الله وبركاته ،،
بسب اختلاف سؤالك عن سؤال صاحب الموضوع ،، قم بفتح موضوع جديد واشرح ما تريد وان امكن ضع مثال للمشكلة .
الأخ عاطف ،،
اعمل مثال صغير للشاشة التي بها مشكلة وارفقها وستجد الحل بشكل اسرع ،،
يا رحمن الدنيا والآخرة ورحيمهما
المشاركات : 1,556
المواضيع 14
الإنتساب : Apr 2013
السمعة :
253
الشكر: 3551
تم شكره 4875 مرات في 1243 مشاركات
03-12-18, 07:28 PM
(آخر تعديل لهذه المشاركة : 03-12-18, 07:29 PM {2} بواسطة حريف برمجة.)
مرحبا ،،
أولا اتبع الصور :
انقر على الداتاقريدفيو واختار Add Column
ثانياً : امسح الكود تبعك وانسخ الكود والصقه في حدث CellEndEdit الخاص بالداتاقريدفيو :
كود :
dgv.Rows(e.RowIndex).Cells(0).Value = Format(Val(dgv.Rows(e.RowIndex).Cells(0).Value))
'بداية جلب البيانات الموجودة في المتجر بشرط رقم الصنف
Dim dp As New OleDbDataAdapter(sqlstr, con)
dp.SelectCommand.Parameters.AddWithValue("@code", dgv.Rows(e.RowIndex).Cells(0).Value)
Dim dt As New DataTable
dp.Fill(dt)
If dt.Rows.Count = 0 Then 'رقم الصنف غير موجود في الجدول
'نمنع اضافة سطر جديد في القريد
dgv.AllowUserToAddRows = False
MsgBox("هذا الصنف غير معرف في بطاقة الصنف", MsgBoxStyle.MsgBoxRight + MsgBoxStyle.Critical, "خطأ ")
dgv.CurrentCell = dgv.Rows(e.RowIndex).Cells(0)
dgv.Rows(e.RowIndex).Cells(0).Value = "" 'نفرغ الخلية الأولى من رقم الصنف الغير موجود
dgv.Rows(e.RowIndex).Cells(0).Selected = True 'نضع المؤشر في الخلية الأولى لإستقبال رقم الصنف
Exit Sub 'نخرج من تكملة الكود
End If
'نهاية جلب البيانات الموجودة في المتجر بشرط رقم الصنف
'هنا نعمل دوران على الداتاقريدفيو للتحقق في حالة وجود باركود الصنف
For i = 0 To dgv.Rows.Count - 1
'هنا إذا رقم الصنف موجود في الداتاقريدفيو نتأكد إذا الكمية المراد بيعها اكبر من الكمية الموجودة في المتجر نظهر رسالة والخروج من تكملة الكود
If dgv.Rows(i).Cells(0).Value = dgv.CurrentCell.Value And dgv.Rows(i).Cells(1).Value <> "" Then
'هنا رقم الصنف موجود في الداتاقريدفيو ولكن الكمية المراد بيعها اقل من الكمية الموجوده في المتجر
'نزيد 1 في خلية الكمية
dgv.Rows(i).Cells(2).Value = dgv.Rows(i).Cells(2).Value + 1
'وضع قيمة المجموع في القريد بضرب السعر في الكمية الجديدة
dgv.Rows(i).Cells(4).Value = (dgv.Rows(i).Cells(2).Value * dgv.Rows(i).Cells(3).Value)
'نمنع اضافة سطر جديد في القريد
dgv.AllowUserToAddRows = False
'بعد اضافة 1 للكمية السابقة في القريد نفرغ القيمة المدخلة
dgv.Rows(e.RowIndex).Cells(0).Value = ""
'يبقى المؤشر في مكانه بعد اضافة 1 للكمية السابقة
dgv.Rows(e.RowIndex).Cells(0).Selected = True
Exit Sub
End If
Next 'نهاية الدوران والتأكد من رقم الصنف موجود في الداتاقريدفيو
'هنا رقم الصنف غير موجود في الداتاقريدفيو لذلك سوف نقوم بإضافته
dgv.Rows(e.RowIndex).Cells(0).Value = dt.Rows(0)(0).ToString
dgv.Rows(e.RowIndex).Cells(1).Value = dt.Rows(0)(1).ToString
dgv.Rows(e.RowIndex).Cells(3).Value = dt.Rows(0)(2).ToString
'نضع 1 في خلية الكمية
dgv.Rows(e.RowIndex).Cells(2).Value = 1
'وضع قيمة المجموع في القريد بضرب السعر في الكمية
dgv.Rows(dgv.CurrentRow.Index).Cells(4).Value = (dgv.Rows(dgv.CurrentRow.Index).Cells(2).Value * dgv.Rows(dgv.CurrentRow.Index).Cells(3).Value)
'نسمح اضافة سطر جديد في القريد
dgv.AllowUserToAddRows = True
'نضع المؤشر في خلية الباركود في السطر الجديد
dgv.CurrentCell = dgv.Rows(e.RowIndex + 1).Cells(0)
'ترتيب الداتاقريدفيو بناء على رقم الصنف
dgv.Sort(dgv.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
يا رحمن الدنيا والآخرة ورحيمهما