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

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



سؤال عن فترة ركود صنف في برنامج مبيعات - علاء الكبابي - 16-05-21

اريد ان يحدد العميل فترة لكل صنف اذا انقضت يرسل له البرنامج تنبيه بذلك
وبذلك فلكل صنف فترة مختلفة عن الاخر محفوظة في جدول الاصناف تحت اسم stagnation
واستعملت هذا الكود للاستعلام
Private Sub FlatButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FlatButton1.Click
        Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=small cashier.accdb")
        Dim da As New OleDbDataAdapter
        Dim dt As New DataTable
        da = New OleDbDataAdapter("select * from items where store > 0 and stagnation <> 0 ", con)
        da.Fill(dt)
        con.Open()
        If dt.Rows.Count > 0 Then
            DataGridView1.DataSource = dt
        Else
            Return
        End If
        Dim x As Integer
        Dim z As String
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            x = DataGridView1.Rows(i).Cells(13).Value
            z = DataGridView1.Rows(i).Cells(1).Value
            Dim daa As New OleDbDataAdapter
            Dim dtt As New DataTable
            daa = New OleDbDataAdapter("select iname_o, order_date from orders_d where cod = " & z & " and order_date < # " & today.addDays(-x) & " #    ", con)
            If dtt.Rows.Count = 0 Then
                daa.Fill(dtt)
                DataGridView2.DataSource = dtt
            Else
                Dim row As DataRow = dtt.NewRow
                row(0) = dtt.Rows(0)(0)
                row(1) = dtt.Rows(0)(1)

                dtt.Rows.Add(row)
                DataGridView2.DataSource = dtt
            End If
        Next
        MsgBox("تم")
    End Sub
في النهاية يظهر الاستعلام الاول في الداتا جريد الاولى سليم
ولا يظهر في الداتا جريد الثانية غير اسماء الجداول فقط ولا شئ تحتها



RE: سؤال عن فترة ركود صنف في برنامج مبيعات - ابو انس - 16-05-21

استبدل مكان هذين السطرين
            If dtt.Rows.Count = 0 Then                                                                                                                                                                               
                daa.Fill(dtt)
اجعل daa.Fill(dtt) قبل بداية جملة if
 
وانتبه لهذ السطر
            If dtt.Rows.Count = 0 Then

هل انت متأكد من انك لا تريده هكذا 
            If dtt.Rows.Count > 0 Then


RE: سؤال عن فترة ركود صنف في برنامج مبيعات - علاء الكبابي - 16-05-21

(16-05-21, 06:32 PM)ابو انس كتب : استبدل مكان هذين السطرين
            If dtt.Rows.Count = 0 Then                                                                                                                     

عندما فعلت ذلك اصبح التكرار يغير قيم ال dtt في كل مرة وبذلك تظهر نتيجة واحدة للاستعلام في النهاية


RE: سؤال عن فترة ركود صنف في برنامج مبيعات - أبو عبدالله الحلواني - 16-05-21

ما هي القيم المخزنة بكلا من x z هنا
x = DataGridView1.Rows(i).Cells(13).Value
z = DataGridView1.Rows(i).Cells(1).Value


RE: سؤال عن فترة ركود صنف في برنامج مبيعات - ابو انس - 16-05-21

بعد Dim dtt As New DataTable
اكتب dtt.clear


RE: سؤال عن فترة ركود صنف في برنامج مبيعات - علاء الكبابي - 20-05-21

(16-05-21, 07:11 PM)أبو عبدالله الحلواني كتب : ما هي القيم المخزنة بكلا من x z  هنا
x = DataGridView1.Rows(i).Cells(13).Value
           z = DataGridView1.Rows(i).Cells(1).Value

1- كود الصنف
13- فترة الركود الخاصة به


RE: سؤال عن فترة ركود صنف في برنامج مبيعات - علاء الكبابي - 27-05-21

بعد محاولات كتير ده الكود النهائي للي ممكن يحتاجه

        Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=small cashier.accdb")
        Dim da As New OleDbDataAdapter
        Dim dt As New DataTable
        da = New OleDbDataAdapter("select * from items where store > 0 and stagnation <> 0 ", con)
        da.Fill(dt)
        con.Open()
        If dt.Rows.Count > 0 Then
            DataGridView1.DataSource = dt
        Else
            Return
        End If
        Dim x As Integer
        Dim z As String
        Dim dttt As New DataTable
        dttt.Columns.Add("اسم الصنف")
        dttt.Columns.Add("تاريخ اخر بيع")
        DataGridView2.DataSource = dttt
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            x = DataGridView1.Rows(i).Cells(13).Value
            z = DataGridView1.Rows(i).Cells(1).Value
            Dim daa As New OleDbDataAdapter
            Dim daaa As New OleDbDataAdapter
            Dim dtt As New DataTable
            Dim dtttt As New DataTable
            daa = New OleDbDataAdapter("select * from orders_d where cod = '" & z & "' and order_date < # " & Today.AddDays(-x) & " # ", con)
            daaa = New OleDbDataAdapter("select * from orders_d where cod = '" & z & "' and order_date > # " & Today.AddDays(-x) & " # ", con)
            daaa.Fill(dtttt)
            daa.Fill(dtt)
            If dtttt.Rows.Count > 0 Then
                If dtttt.Rows(0)(0) = dtt.Rows(0)(0) Then
                    'dtt.Clear()
                    'dtttt.Clear()
                Else
                    dtt.Clear()
                End If
            End If
            If dtt.Rows.Count > 0 Then
                Dim last As Integer = dtt.Rows.Count - 1
                Dim row As DataRow = dttt.NewRow
                row(0) = dtt.Rows(last)(2)
                row(1) = dtt.Rows(last)(6)
                dttt.Rows.Add(row)
                DataGridView2.DataSource = dttt
            End If

        Next