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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18)
+---- قسم : قسم أسئلة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=28)
+---- الموضوع : [vb6.0] كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 (/showthread.php?tid=40085)

الصفحات: 1 2


كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - Mhqom - 24-11-21

تلوين البينات المكرره في العمود الرابع بالون الاحمر والغير مكرره باللون الاخضر


تلوين اعلى قيمةاو اقل قيمة  بالون الاصفرفي العمود الثالث


RE: كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - ahmedabdelaliem - 24-11-21

السلام عليكم

تفضل اخي حمل المرفقات

لا تنسى الدعاء لنا بارك الله فيك

بالتوفيق


RE: كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - Mhqom - 24-11-21

شكرا الاستاذ المحاسب احمد عبد العليم ومن للمرور وجعل الله لك في كل حرفا الف حسنة
لاكن المطلوب هو تلوين الارقام المكررة( كل خلية في عمود الرابعd_value مكرره نريد تلوينها وتلوين تكرارها ) وهي ارقام متغيرة
وليس كلمةrepeater & non repeater
يعني مثلا هناك رقم 500 مكرر ثلاث مرارت يجب تلون الثلاث حقولبالون الاحمر


RE: كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - Taha Okla - 24-11-21

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


الكود الذي وضعه م/أحمد عبد العليم/ في مثاله -- واضح جداً ويشرح نفسه

فقط استبدل 

CellBackColor

بـ 

CellForeColor



واستبدل الالوان بالالوان التي تناسبك ..

--



لا يوجد متعة للبرمجة بدون أن تحاول فيها وتجرب فيها كثيراً ..

..


RE: كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - Mhqom - 25-11-21

اعتقد الفكره غير واضحه لك اخي مع الشكر والاحترام


RE: كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - Taha Okla - 25-11-21

لتلوين الارقام استبدل الكود التالي في مشروع م/احمد عبد العليم :
كود :
If Trim(.Text) = "repeater" Then
       .CellBackColor = vbRed
ElseIf Trim(.Text) = "non repeater" Then
       .CellBackColor = vbGreen
End If

بالكود :

كود :
If Trim(.Text) = "repeater" Then
   .Col = .Col - 1
   .CellBackColor = vbRed
ElseIf Trim(.Text) = "non repeater" Then
   .Col = .Col - 1
   .CellBackColor = vbGreen
End If



RE: كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - Mhqom - 25-11-21

(25-11-21, 12:21 AM)Taha Okla كتب : لتلوين الارقام استبدل الكود التالي في مشروع م/احمد عبد العليم :
كود :
If Trim(.Text) = "repeater" Then
       .CellBackColor = vbRed
ElseIf Trim(.Text) = "non repeater" Then
       .CellBackColor = vbGreen
End If
ليس لدى non repeater هذة للمثال

بالكود :

كود :
If Trim(.Text) = "repeater" Then
   .Col = .Col - 1
   .CellBackColor = vbRed
ElseIf Trim(.Text) = "non repeater" Then
   .Col = .Col - 1
   .CellBackColor = vbGreen
End If

ياصديقي العزيز افهمني صحيح نريد البحث عن القيمة في حقول عمود تارتبع وان كانت مكررة نلونها ونلون التكرار تبعها

ياصديقي العزيز افهمني صحيح نريد البحث عن القيمة في حقول العمود الرابع وان كانت مكررة نلونها ونلون التكرار معها
مثال الرقم 500 هو مكرر يتم تلوين حقلة والحقل الاخر الذي به رقم 500


RE: كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - ahmedabdelaliem - 25-11-21

السلام عليكم

بارك الله فيك اخي طه وزادك من علمه وفضله


اخي Mhqom

استبدل الكود بهذا الكود

PHP كود :
Public Sub Loadx()
Dim IXCol As Integer
Dim txt 
As String
        Dim vMe
        Dim vMin
        Dim vMax

 
If rs.State adStateOpen Then rs.Close
rs
.Open "select * from T_DATE"ConadOpenStaticadLockPessimistic
Set mshflexgrid1
.DataSource rs

With Me
.mshflexgrid1
 vMin 
Val(.TextMatrix(13))
 
vMax Val(.TextMatrix(13))

For 
XCol 3 To .Cols 1
For 1 To .Rows 1

.Row I
.Col = .Cols 1
If Trim(.Text) = "repeater" Then
.Row I
.Col XCol
.CellBackColor vbRed
ElseIf Trim(.Text) = "non repeater" Then
.Row I
.Col XCol
.CellBackColor vbGreen
End 
If

vMe Val(.TextMatrix(I3))
 
                   If vMe vMin Then
                        vMin 
vMe
                        
                    End 
If
 
                   If vMe vMax Then
                        vMax 
vMe
                        
                    End 
If
 
                  
           
            Next I
            Next XCol
           
            For I 
1 To .Rows 1
           
                        
.Row I
                        
.Col 3
             
If Val(.TextMatrix(I3)) = vMin Then

                        
.CellBackColor vbYellow
                        End 
If
 
                  If Val(.TextMatrix(I3)) = vMax Then
                        
.CellBackColor vbYellow
                        End 
If



Next
End With


End Sub 
بالتوفيق


RE: كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - Mhqom - 26-11-21

(25-11-21, 11:25 AM)ahmedabdelaliem كتب : السلام عليكم

بارك الله فيك اخي طه وزادك من علمه وفضله


اخي Mhqom

استبدل الكود بهذا الكود

PHP كود :
Public Sub Loadx()
Dim IXCol As Integer
Dim txt 
As String
        Dim vMe
        Dim vMin
        Dim vMax

 
If rs.State adStateOpen Then rs.Close
rs
.Open "select * from T_DATE"ConadOpenStaticadLockPessimistic
Set mshflexgrid1
.DataSource rs

With Me
.mshflexgrid1
 vMin 
Val(.TextMatrix(13))
 
vMax Val(.TextMatrix(13))

For 
XCol 3 To .Cols 1
For 1 To .Rows 1

.Row I
.Col = .Cols 1
If Trim(.Text) = "repeater" Then
.Row I
.Col XCol
.CellBackColor vbRed
ElseIf Trim(.Text) = "non repeater" Then
.Row I
.Col XCol
.CellBackColor vbGreen
End 
If

vMe Val(.TextMatrix(I3))
 
                   If vMe vMin Then
                        vMin 
vMe
                        
                    End 
If
 
                   If vMe vMax Then
                        vMax 
vMe
                        
                    End 
If
 
                  
           
            Next I
            Next XCol
           
            For I 
1 To .Rows 1
           
                        
.Row I
                        
.Col 3
             
If Val(.TextMatrix(I3)) = vMin Then

                        
.CellBackColor vbYellow
                        End 
If
 
                  If Val(.TextMatrix(I3)) = vMax Then
                        
.CellBackColor vbYellow
                        End 
If



Next
End With


End Sub 
بالتوفيق

السلام عليكم افهموني رجأ انا ما عندي كلمة تكرار ومن غير تكرار بدي الرقم المكرر هو الي تعتمد علية بالبرمجة لانة متغير وهي مثال صورة مرفقة للنتائج الاخيرة


RE: كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1 - Taha Okla - 27-11-21

وعليكم السلام

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

من المفروض أن يكون سؤالك كيف يمكن أن أعرف الأرقام المكررة في الحقل X  ثم ألونها ..

على كلٍ - استخدم هذا الكود(كود م/ أحمد عبد العليم/ بعد تعديل بسيط) وبإذن الله تجد ضالتك فيه ..

كود :
Public Sub Loadx()
    Dim Rs2 As New ADODB.Recordset
    Dim I, XCol As Integer
    Dim txt As String
    Dim vMe
    Dim vMin
    Dim vMax
 
    If Rs.State = adStateOpen Then Rs.Close
    Rs.Open "select * from T_DATE", Con, adOpenStatic, adLockPessimistic
    
    Set mshflexgrid1.DataSource = Rs

    With Me.mshflexgrid1
        vMin = Val(.TextMatrix(1, 3))
        vMax = Val(.TextMatrix(1, 3))

        '====================================
        '====================================
        For XCol = 0 To .Cols - 1
            For I = 1 To .Rows - 1

                .Row = I
                .Col = .Cols - 1
                
                If Rs2.State = adStateOpen Then Rs2.Close
                Rs2.Open "select * from T_DATE Where d_value =" & Val(.TextMatrix(I, 3)), Con, adOpenStatic, adLockPessimistic
                
                If Rs2.RecordCount > 1 Then
              '  If Trim(.Text) = "repeater" Then
                    .Row = I
                    .Col = XCol
                    .CellBackColor = &HC0C0FF
                Else 'If Trim(.Text) = "non repeater" Then
                    .Row = I
                    .Col = XCol
                    .CellBackColor = &HC0FFC0
                End If

                vMe = Val(.TextMatrix(I, 3))

                If vMe < vMin Then
                    vMin = vMe
                        
                End If

                If vMe > vMax Then
                    vMax = vMe
                        
                End If
           
            Next I
        Next XCol
           
        For XCol = 0 To .Cols - 1
            For I = 1 To .Rows - 1
           
                .Row = I
                .Col = XCol

                If Val(.TextMatrix(I, 3)) = vMin Then

                    .CellBackColor = &HFFFFC0
                End If

                If Val(.TextMatrix(I, 3)) = vMax Then
                    .CellBackColor = &HFFFF00
                End If

            Next I
        Next XCol

    End With

End Sub