منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] مشكلة في اسماء الاصناف في فاتورة المبيعات - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (https://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (https://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (https://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] مشكلة في اسماء الاصناف في فاتورة المبيعات (/showthread.php?tid=22633)



مشكلة في اسماء الاصناف في فاتورة المبيعات - ملهمـ - 19-11-17

السلام عليكم
اخواني الاعزائي اسعد الله يومكم بكل الخير
لدي مشكلة في ظهور اسم الصنف في اكثر من صنف
المفروض يظهر الصنف عند طلبه اكثر من مرة في سطر واخد !
والمشكلة الاخرى عند نزول القيمة الافتراضية للصنف 1
لا يقوم بالعملية الحسابية الا في اول سطر
وعند الضغط في الداتا جريد فيو يقوم بالعملية بالكامل !
للعلم أقوم بتنزيل الأصناف عن طريق مربع نص فقط ، وبالبحث عن طريق البار كود

فاتورة المبيعات عبارة عن جدول استعلام بين الاصناف وجدول الحركات المشترك وفيه فاتورة المبيعات
طلب اخير
اريد ادخال الاصناف بالاسم من تكست بوكس آخر وعند احتيار الصنف ينزل للداتا وبقيمة افتراضية 1
الصور في المرفقات
وبارك الله فيكم


RE: مشكلة في اسماء الاصناف في فاتورة المبيعات - محمد كريّم - 19-11-17

بالنسبة للسؤال الأول
اعمل فحص لكل صفوف الداتا جريد واذا كان اسم الصنف الجديد في اي منها فزد على الكمية والا اضف صف جديد

بالنسبة للطلب الاخير الاضافة بناء على اسم الصنف كرر نفس الكود الذي في الصورة مع تغيير اسم الحقل itemBarcode الى حقل itemName


RE: مشكلة في اسماء الاصناف في فاتورة المبيعات - ملهمـ - 19-11-17

بالنسبة لموضوع البحث صارتلي مشكلة
عندما اقوم بكتابة أول حرف من الصنف تتم اضافته للداتا
يعني مثلا ف == فول
مثلا مستقبلا سجلت عدة اصناف تحت مسمى حليب اطفال - حليب نيدو
ستحدث مشكلة في البحث !
لكن السؤال الاول القصد منه المفروض عند طلب صنف يظهر في سطر واحد وليس عدة اسطر !
مع اني غيرت خصائص الصنف في قاعدة البيانات وسويتله عدم تكرار
لكن ماتزال نفس المشكلة
ولا تزال لدي مشكلة عندما ينزل اول صنف يقوم بالعملية الحسابية ولكن في البقية يجب الضغط ع الداتا حتي يقوم بالعملية الحسابية


RE: مشكلة في اسماء الاصناف في فاتورة المبيعات - Adrees - 20-11-17

استخدم علامة يساوي (=) بدلاً من Like


RE: مشكلة في اسماء الاصناف في فاتورة المبيعات - ملهمـ - 20-11-17

بارك الله فيمن اجاب
لكن لا تزال لدي نفس المشكلة
يقوم بالعملية الحسابية في اول سطر فقط وعند الضغط داخل الداتا يقوم بالعملية كاملة
ومشكلة اسم الصنف لا يكون في نفس السطر وانما في سطر جديد

كود العملية الحسابية مرفق وتم وضعه في sub  ووضعه في الفورم لود وفي الداتا جريد
الرجاء حل المشكلة


RE: مشكلة في اسماء الاصناف في فاتورة المبيعات - ملهمـ - 21-11-17

معقولة 97 مشاهدة ولم اصل للحل ؟


RE: مشكلة في اسماء الاصناف في فاتورة المبيعات - sendbad100 - 21-11-17

اخي  /ملهم    الله يعينك 

ضع المشروع   او مثال مصغر   يحتوي كل البيانات والاكواد    التي دور حول المشكلة   
كي يتمكن الاخوة من مساعدك  سريعا ً


RE: مشكلة في اسماء الاصناف في فاتورة المبيعات - ملهمـ - 21-11-17

اخي سندباد وجدت حل لمشكلة الاصناف في احد المواضيع ووجدت كود لجعل نفس اسم الصنف يكون في سطر واحد 
ولكن عند طلب الصنف يظهر 0 ويجب طلبه مرة اخرى حتي يقوم بالتحديث ويعطيك رقم 1 أريد ان ينزل الصنف عند طلبه من اول مرة  رقم "1"

المشكلة الثانية  التي لدي الان هي العملية الحسابية
اول سطر تحدث فيه العملية الحسابية
وفي الاسطر الاخرى العملية الحسابية لا تعمل بل يجب الضغط على كل سطر حتى تحدث
وللعلم العملية الحسابية موجودة في حدث الفورم والسيل اند ايديت للداتا
المشكلة الان في  العملية الحسابية


RE: مشكلة في اسماء الاصناف في فاتورة المبيعات - ملهمـ - 22-11-17

كود العملية الحسابية لفاتورة مبيعات
لكن الكود لا يعمل الا عند الضغط على الداتا جريد فيو
اريد ان اجعل الكود يقوم بالعملية الحسابية عند نزول الاصناف بدون الضغط داخل الداتا جريد فيو
Public Sub Salecalc()
       Try
           'اجمالي البيع
           'total = qty*price
           DataGridView1(7, DataGridView1.CurrentRow.Index).Value = Val(DataGridView1(6, DataGridView1.CurrentRow.Index).Value) * Val(DataGridView1(2, DataGridView1.CurrentRow.Index).Value)
           'اجمالي الربح
           'totalb = total - (total * Qty)
           DataGridView1(9, DataGridView1.CurrentRow.Index).Value = Val(DataGridView1(7, DataGridView1.CurrentRow.Index).Value) - (Val(DataGridView1(7, DataGridView1.CurrentRow.Index).Value) * (Val(DataGridView1(8, DataGridView1.CurrentRow.Index).Value) / 100))
           'اجمالي الشراء
           DataGridView1(11, DataGridView1.CurrentRow.Index).Value = Val(DataGridView1(10, DataGridView1.CurrentRow.Index).Value) * DataGridView1(6, DataGridView1.CurrentRow.Index).Value
           ' الأرباح
           ' earn = total - totalb
           DataGridView1(12, DataGridView1.CurrentRow.Index).Value = Val(DataGridView1(9, DataGridView1.CurrentRow.Index).Value) - DataGridView1(11, DataGridView1.CurrentRow.Index).Value

           Dim total, totalb, count, earn As Double
           For i As Integer = 0 To DataGridView1.Rows.Count - 1
               total = total + Val(DataGridView1(9, DataGridView1.Rows(i).Index).Value)
               totalb = totalb + Val(DataGridView1(11, DataGridView1.Rows(i).Index).Value)
               count = DataGridView1.Rows.Count
               earn = total - totalb
               'percent = (1 - (totalb / total)) * 100
           Next
           SaleTotal.Text = total
           'SaleTotalS.Text = totalb
           SaleItemCount.Text = count
           SaleEarn.Text = earn
           'SaleMines.Text = Math.Round(percent, 2)
       Catch ex As Exception

       End Try

==============
المشكلة الاخرى في كود البحث
عند البحث على نفس الصنف في نفس الفاتورة يقوم بوضعه في سطر اخر ولا يقوم بجمعه في سطر واحد
وعند طلب صنف معين يقوم بوضع قيمة 0 للصنف وعند الطلب مرة اخرى تنزل القيمة  1 ولا يقوم بالعملية الحسابية الا عند تحرير الداتا جريد
أريد جعل القيمة بدل الصفر تنزل رقم 1
Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemBarCode] = @Code", con)
           dp.SelectCommand.Parameters.AddWithValue("@Code", TxtSearch.Text)
           Dim dt_itm As New DataTable

           If dp.Fill(dt_itm) > 0 Then
               Dim r As DataRow = dt_itm.Rows(0)

               DataGridView1.ClearSelection()

               Dim dgvRow As DataGridViewRow = (From x In Me.DataGridView1.Rows Where x.Cells(0).Value = r("ItemBarCode")).SingleOrDefault
               If IsNothing(dgvRow) Then

                   DataGridView1.Rows.Add(r("ItemBarCode"), r("ItemName"), r("ItemPrice"), 1)

                   DataGridView1.FirstDisplayedScrollingRowIndex = DataGridView1.Rows.Count - 1
                   DataGridView1.Rows(DataGridView1.Rows.Count - 1).Selected = True
               Else

                   dgvRow.Cells(6).Value += 1

                   DataGridView1.FirstDisplayedScrollingRowIndex = dgvRow.Index
                   DataGridView1.Rows(dgvRow.Index).Selected = True
               End If
               Salecalc()

               TxtSearch.Clear()
               TxtSearch.Select()

           End If
قاعدة البيانات المستخدمة اكسس 2010