تمرير مجموعة سجلات ADO إلى عنصر تحكم ListView مع تمييز عناصر معينة بالألوان
صفحة 1 من اصل 1 • شاطر
تمرير مجموعة سجلات ADO إلى عنصر تحكم ListView مع تمييز عناصر معينة بالألوان
الاجراء التالى يسمح لنا تمرير مجموعة سجلات ADO إلى عنصر تحكم [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] مع تمييز عناصر معينة بالألوان
ففى المثال التالى يتم تحميل جدول المنتجات، وسيقوم جميع المنتجات التى سعر الشراء بقيمة "250" في الحقل "المنتجات" بتمييز السجلات باللون الاحمر على النحو التالى :
ملاحظة. يبرز المثال في بيانات الحالة هذه من النوع String ، ولكن يمكن استخدامها أيضًا لإبراز أنواع أخرى ، على سبيل المثال:
فى قسم التصريحات العامة
و الاجراء على النحو التالى :
ويتم الاتصال بهذا الاجراء على النحو التالى :
حيث أن
RST : مصدر البيانات
ListView1 : عنصر التحكم الذى نريد تطبيق الاجراء عليه
"250" : القيمة المطلوب تميز السجلات باللون المحدد
vbRed : اللون الملطوب تطبيقة
ففى المثال التالى يتم تحميل جدول المنتجات، وسيقوم جميع المنتجات التى سعر الشراء بقيمة "250" في الحقل "المنتجات" بتمييز السجلات باللون الاحمر على النحو التالى :
ملاحظة. يبرز المثال في بيانات الحالة هذه من النوع String ، ولكن يمكن استخدامها أيضًا لإبراز أنواع أخرى ، على سبيل المثال:
- في حقل Boolean كل ذلك يحتوي على قيمة False
- في الحقول التي تحتوي على ارقام ، يمكنك استخدام عوامل المقارنة أكبر من أصغر من ...الخ
- في حقل من نوع التاريخ ، تلك التي تنتمي إلى نطاق معين ، إلخ ...
فى قسم التصريحات العامة
- الكود:
Private Declare Function SetErrorMode Lib "kernel32" (ByVal wMode As Long) As Long
Private Declare Sub InitCommonControls Lib "Comctl32" ()
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const LVM_SETCOLUMNWIDTH = &H101E
و الاجراء على النحو التالى :
- الكود:
Public Sub Recordset_a_ListView( _
ByRef rst As ADODB.Recordset, _
ByRef ListView As ListView, _
sValue As Variant, _
Optional lColor As Long = vbBlue)
On Error GoTo errSub
Dim i As Integer, k As Integer, iColumna As Integer, vt() As Long
Dim st() As Single, w() As Long, t As Long, LVitem As ListItem
ListView.ListItems.Clear
If rst.State = adStateOpen Then
If Not (rst.BOF And rst.EOF) Then
ListView.View = lvwReport
iColumna = rst.Fields.Count - 1
ReDim w(0 To iColumna)
ReDim st(0 To iColumna)
ReDim vt(0 To iColumna)
For i = 0 To iColumna
If rst(i).DefinedSize > 9 Then
w(i) = rst(i).DefinedSize
Else
w(i) = 10
End If
t = t + w(i)
Next
For i = 0 To iColumna
st(i) = w(i) / t
vt(i) = rst.Fields(i).Type
Next
If ListView.ColumnHeaders.Count = 0 Then
For i = 0 To iColumna
ListView.ColumnHeaders.Add , , rst.Fields(i).Name, _
ListView.Width * st(i)
Next
Else
For i = 0 To iColumna
ListView.ColumnHeaders(i + 1).Width = ListView.Width * st(i)
Next
End If
rst.MoveFirst
While Not rst.EOF
If vt(0) = adBoolean Then
If rst.Fields(0).Value = vbFalse Then
Set LVitem = ListView.ListItems.Add(, , "NO")
Else
Set LVitem = ListView.ListItems.Add(, , "YES")
End If
Else
Set LVitem = ListView.ListItems.Add(, , rst.Fields(0).Value)
End If
If iColumna > 0 Then
For k = 1 To iColumna
If vt(k) = adBoolean Then
If rst.Fields(k).Value = vbFalse Then
LVitem.ListSubItems.Add , , "NO"
Else
LVitem.ListSubItems.Add , , "YES"
End If
Else
If IsNull(rst.Fields(k).Value) Then
LVitem.ListSubItems.Add , , ""
Else
LVitem.ListSubItems.Add , , rst.Fields(k).Value
If Trim(LCase(rst.Fields(k).Value)) = Trim(LCase(sValue)) Then
LVitem.ForeColor = lColor
End If
End If
End If
Next
End If
rst.MoveNext
Wend
ListView.Sorted = True
ListView.SortKey = 0
End If
End If
db.Close
Set rst = Nothing
Call Autosize_Columns(ListView1)
Exit Sub
errSub:
MsgBox Err.Number & " " & Err.Description, vbCritical
db.Close
Set rst = Nothing
End Sub
ويتم الاتصال بهذا الاجراء على النحو التالى :
- الكود:
Call Recordset_a_ListView(rst, ListView1, "250", vbRed)
حيث أن
RST : مصدر البيانات
ListView1 : عنصر التحكم الذى نريد تطبيق الاجراء عليه
"250" : القيمة المطلوب تميز السجلات باللون المحدد
vbRed : اللون الملطوب تطبيقة
1zaza- ...
- تاريخ التسجيل : 18/11/2018
المساهمات : 39
النقاط : 66
التقيم : 3
الدولة :
الجنس :
| |
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 5:56 am من طرف wdqwd
» افضل شركة تنظيف شقق بالرياض
الخميس مايو 09, 2024 5:54 pm من طرف moslema_r
» تطبيق جوال لصيانة المكيفات
الأربعاء مايو 08, 2024 6:58 am من طرف mona mohamed
» مظلات وسواتر الرياض
الثلاثاء مايو 07, 2024 7:47 pm من طرف moslema_r
» شركة تنظيف فلل بالرياض
الثلاثاء مايو 07, 2024 6:55 pm من طرف moslema_r
» شركة تنظيف كنب بالرياض
الأحد مايو 05, 2024 6:56 pm من طرف moslema_r
» مظلات وسواتر
السبت مايو 04, 2024 8:58 pm من طرف moslema_r
» شركة تنظيف خزانات بالرياض
الخميس مايو 02, 2024 6:10 pm من طرف moslema_r
» افضل شركة رش مبيدات بالرياض
الإثنين أبريل 29, 2024 9:00 pm من طرف moslema_r
» ارخص شركة مكافحة الصراصير بالرياض
الخميس أبريل 25, 2024 8:56 pm من طرف moslema_r