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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : [سؤال] التعامل مع الداتا جريد (/showthread.php?tid=1723)



التعامل مع الداتا جريد - zepeir - 26-01-14

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



RE: التعامل مع الداتا جريد - ممدوح الخطيب - 31-01-14

بسم الله الرحمن الرحيم
في الداتا جريد عبارة عن شبكة أو خلايا وكل خلية لها رقم عمود ورقم صف ومنها انت تقدر تبرمج أي عملية تريدها
مثلا في عمود 1 وعمود 2 وعمود 3 يكون ناتج الضرب للعمودين
كود :
DataGridView1(3, 1).Value= DataGridView1(1, 1).Value * DataGridView1(2, 1).Value
أرجو ان تكون الفكرة وضحت لول احتاجت توضيح اكثر ارفق برنامج ويتم التعديل عليه
تحياتي لك


RE: التعامل مع الداتا جريد - zepeir - 01-02-14

شكرا الخطيب علي الاهتمام
انا برنامجي الان تحت الانشاء ولم يكتمل لارفقه
لكني بمساعدة احد المبرمجين كنت قد بدات في جزء كبير منه بالفيجوال 6 والان اريد ان اعيد صياغته بالدوت نت , فمشكلتي اني كنت استخدم الماتركس لاجراء العمليات الحسابية والان اريد ان استخدم الدات جريد بنفس الطريقة
وهذا جزء من الكود
كود :
Private Sub Command3_Click()
dis = Sqr(((Val(Text1.Text - Text3.Text)) ^ 2) + ((Val(Text2.Text - Text4.Text)) ^ 2))
Text5.Text = dis
If dis + 2000 <= 5350 Then
Text8.Text = "six"
With Adodc6.Recordset
.MoveFirst
For j = 0 To 26
mg6.TextMatrix(j, 0) = .Fields!Distance
mg6.TextMatrix(j, 1) = .Fields!Hieght
mg6.TextMatrix(j, 2) = .Fields!Time
.MoveNext
Next
End With
For i = 0 To 26
If dis = mg6.TextMatrix(i, 0) Then
Text6.Text = mg6.TextMatrix(i, 1)
Text7.Text = mg6.TextMatrix(i, 2)
ElseIf mg6.TextMatrix(i, 0) < dis Then
Text6.Text = (((mg6.TextMatrix(i + 1, 1) - mg6.TextMatrix(i, 1)) / 200) * (dis - mg6.TextMatrix(i, 0))) + mg6.TextMatrix(i, 1)
Text7.Text = (((mg6.TextMatrix(i + 1, 2) - mg6.TextMatrix(i, 2)) / 200) * (dis - mg6.TextMatrix(i, 0))) + mg6.TextMatrix(i, 2)

Else: End If
حيث يقوم البرنامج بحساب المسافة
ثم يقوم بالبحث في الجدول عن المسافة فاذا وجدها يقوم باظهار الارتفاع والزمن علي تكست خاصة حسب المسافة
واذا كانت المسافة غير موجوده او اكبر يقوم بعملية حسابية بين المسافتين الموجدتين في الجدول ويستخرج الارتفاع والزمن
اسف البرنامج معقد ويصعب شرحه لكن اريد بنفس طريقة الماتركس ان اغير الي الداتا جريد
ارجو ان تكون الفكرة وضحت
وشكرا لكل من شاهد وكل من علق



RE: التعامل مع الداتا جريد - ممدوح الخطيب - 01-02-14

السلام عيكم ورحمة الله وبركاتة
اسف جدا انا كنت عاوز اعمل لك مثال لكن مشكلة الوقت الموضوع بسيط جدا بعون الله
انت فقط لما تكتب الكود هيكون عنوان الخلية كالتالي
كود :
DataGridView1(0, i).Value
وهتلاحظ ان رقم العمود يأتي أولا ثم رقم الخلية عكس الفلكس جريد
كود :
mg6.TextMatrix(i, 0)



RE: التعامل مع الداتا جريد - zepeir - 02-02-14

وعليكم السلام ورحمة الله
شكرا اخي الخطيب علي الاهتمام
واشهد الله اني قد استفدت من معلوماتك القيمة جعلها الله في ميزان حسناتك
لقد قمت بتغير الكود وهو يعمل جيدا في الجزء الاول من الجملة الشرطية
ولكنه يرسل رسالة خطا في الجزء الثاني من الجملة الشرطية
كود :
Dim i As Integer
        For i = 0 To 54
            If TextBox1.Text = DataGridView1(0, i).Value Then
                TextBox2.Text = DataGridView1(1, i).Value
                TextBox3.Text = DataGridView1(2, i).Value
            ElseIf TextBox1.Text > DataGridView1(0, i).Value Then
                TextBox2.Text = (((DataGridView1(1, i + 1).Value - DataGridView1(1, i).Value) / 200) * (Val(TextBox1.Text) - DataGridView1(0, i).Value)) + DataGridView1(1, i).Value
                TextBox3.Text = (((DataGridView1(2, i + 1).Value - DataGridView1(2, i).Value) / 200) * (Val(TextBox1.Text) - DataGridView1(0, i).Value)) + DataGridView1(2, i).Value
                

            End If
        Next
رسالة الخطا كالاتي
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter(Name) : index
وتاتي عند تنفيز البرنامج لهذا الجزء
كود :
TextBox2.Text = (((DataGridView1(1, i + 1).Value - DataGridView1(1, i).Value) / 200) * (Val(TextBox1.Text) - DataGridView1(0, i).Value)) + DataGridView1(1, i).Value
                TextBox3.Text = (((DataGridView1(2, i + 1).Value - DataGridView1(2, i).Value) / 200) * (Val(TextBox1.Text) - DataGridView1(0, i).Value)) + DataGridView1(2, i).Value
وحاولت التغير كثيرا في الجملة الشرطية ولكن بدون جدوي
ارجوا المساعدة في كتابة الكود الصحيح
وجزاكم الله خير


RE: التعامل مع الداتا جريد - Saadzindany - 15-09-17

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