الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحديد اكبر قيمة في خلية في الداتا جريد فيو

بدأه mohammed nafa في 16 ديسمبر 2008 · 6 رد · 1,820 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الله الرحمن الرحيم

الاخوه الأعزاء

السلام عليكم ورحمة الله وبركاته

وكل عام وانتم بالف خير

ارجو المساعدة بتحديد اكبر, واصغر قيمة لمجموعة قيم في عامود في الداتا جريددون الاستعانه بالترتيب الآلي بالضغط على رأس العمود، لأسباب فنية

وبارك الله فيكم

اخوكم

م.محمد نفاع

#2

و عليكم السلام و رحمة الله و بركاته

و انتى بخير و اسلامة

ممكن توضح اكثر بمثال او تقول هيا قواعد بيانات او ماذا

Mail : pc-moon@hotmail.com

من تواضع لله رفعه

قل خيرا أو اصمت

#3

بسم الله الرحمن الرحيم

والسلام عليكم ورحمة الله وبركاته

الموضوع بالتفصيل هو: عنصرين

تكست بوكس وداتا جريد

يتم البحث في التكست بوكس عن صنف معين يتم فلترته في الداتا جريد وبناءا هلية يحتسب متوسط سعر شراء هذا الصنف في عاممود اضافي ارغب بتلوين الخلية بناءا على اعلى وادنى سعر شراء للصنف .(التلوين ممكن ان حددت قيمة معينه مثل اكبر أو أصغر من قيمة ثابته)

وبارك الله في الجميع

م.محمد نفاع

#4

بسم الله الرحمن الرحيم

والسلام عليكم ورحمة الله وبركاته

الاخوه الاعزاء

لقد فتح الله علي وتوصلت الى حل الى الموضوع كالتالي

نقوم بتصميم خليتين حمل كل واحده منهم قيمة افتراضية كبرى والثانية صغرىتكون نقطة بداية ثم نعمل اللوب التالي:
txtmaxvalue.text= 0
txtminvalue.text= 1000000

	   For i As Integer = 0 To Me.DrugsDataSet.Tables("Table").Rows.Count - 1
			If (Me.DrugDataGridView.Rows(i).Cells(3).Value > txtmaxvalue.text) = True Then
				txtmaxvalue.text=Me.DrugDataGridView.Rows(i).Cells(3).Value
			elseif (Me.DrugDataGridView.Rows(i).Cells(3).Value < txtminvalue.text) = True Then
				txtminvalue.text=Me.DrugDataGridView.Rows(i).Cells(3).Value
			End If
		Next

		For i As Integer = 0 To Me.DrugsDataSet.Tables("Table").Rows.Count - 1
			If (Me.DrugDataGridView.Rows(i).Cells(3).Value = txtmaxvalue.text) = True Then
				Me.DrugDataGridView.Rows(i).DefaultCellStyle.BackColor = Color.Red
			elseif (Me.DrugDataGridView.Rows(i).Cells(3).Value = txtminvalue.text) = True Then
				Me.DrugDataGridView.Rows(i).DefaultCellStyle.BackColor = Color.Green
			End If
		Next

وارجو التوفيق للجميع

اخوكم

م.محمد نفاع

#5

مرحباً أخي الكريم .

إن حلك مثالي بشكل ما للغات برمجة أخرى .

لكن ببساطة يمكنك إستخدام الحدث CellValueChanged كالتالي :

Public Class Form1

Private WithEvents DGV As New DataGridView

Private Sub DataGridView1_CellValueChanged(ByVal Sender As Object

, ByVal E As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellValueChanged

Dim Cell As Object = DGV.Rows(E.RowIndex).Cells(E.ColumnIndex)

If IsNumeric(Cell.Value) Then

If Cell.Value >= 1000000 Then

DGV.Rows(E.RowIndex).DefaultCellStyle.BackColor = Color.Red

ElseIf Cell.Value < 0 Then

DGV.Rows(E.RowIndex).DefaultCellStyle.BackColor = Color.Red

Else

DGV.Rows(E.RowIndex).DefaultCellStyle.BackColor = Color.Green

End If

End IfEnd Sub

Private Sub Form1_Load(ByVal Sender As Object, ByVal E As System.EventArgs) Handles Me.Load

DGV.Columns.Add("CID", "ID")

DGV.Columns.Add("CDID", "D-ID")

DGV.Columns.Add("CName", "Name")

For I As Integer = 1 To 150

Dim Row() As String = {I.ToString("000"), CInt(150 - I).ToString("000"), String.Format("{0} D", CInt(Rnd() * I))}

DGV.Rows.Add(Row)

Next

DGV.Dock = DockStyle.Fill

Controls.Add(DGV)

End Sub

End Class

تحياتي BasharVS

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#6

بسم الله الرحمن الرحيم

الأخ العزيز

بارك الله فيك وكان الله قد انعم عيك بما لم يعطنا، فتصدق بعلمك واشرح ما ابدعت

م.محمد

#7

أخي الكريم, عند تغير أي قيمة من خلية ما من التحكم DataGridView1 ينفجر الحدث CellValueChanged والذي يعني تغير قيمة خلية ما .

لقد صرحنا أو اعتبرنا أن Cell هي جسم ما ( غير معلوم مانوعه ) As Object, وهذا الجسم عائد من العمود E.ColumnIndex والصف E.RowIndex .

ملاحظة : نعلم أن المصفوفات مبدءها الصفر ( 0 ) إذا لم نحدد بدايتها ,. أي ( ColumnIndex = 1, RowIndex = 2 ) بالنسبة الى خلية موقعها العمود الثاني والصف الثالث .

عند إنفجار الحدث CellValueChanged يتم القيام بالخطوات التالية :

إعتبار Cell ككائن غير معلوم ( Object ) ثم يتم تحديده بـ = DataGridView1.Rows( E.RowIndex ).Cells( E.ColumnIndex )

ثم نتأكد من نوع قيمة الخلية إذا كانت عدد ( رقم صحيح أو كسري ) .

بعد ذلك تأكد من ( الأعظم و الأصغر ) .

إذا كنت تريد تجاهل عمود ما أو بعض الأعمدة عليك بالتالي :

Private Function CheckColumnIndex( Byval CurrentIndex As Integer ) As Boolean

Dim AvoidIndices() As Integer = { 1, 3, 5 }

For I As Integer = 0 To UBound( AvoidIndices )

If CurrentIndex = AvoidIndices( I ) Then

Return True

End If

Next I

Return False

End If

Private Sub DataGridView1_CellValueChanged(ByVal Sender As Object

, ByVal E As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellValueChanged

If Not CheckColumnIndex Then

Dim Cell As Object = DGV.Rows(E.RowIndex).Cells(E.ColumnIndex)

If IsNumeric(Cell.Value) Then

If Cell.Value >= 1000000 Then

DGV.Rows(E.RowIndex).DefaultCellStyle.BackColor = Color.Red

ElseIf Cell.Value < 0 Then

DGV.Rows(E.RowIndex).DefaultCellStyle.BackColor = Color.Red

Else

DGV.Rows(E.RowIndex).DefaultCellStyle.BackColor = Color.Green

End If

End If

End Sub

أرجو أن يفي هذا الشرح بالمراد :) >

BasharVS .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…