تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] مشكلة في عرض القيم الفارغة على الليست فيو ؟
#1
بسم الله الرحمن الرحيم
السلام عليكم

اعاني من مشكلة بعرض القيم على الليست فيو، عندما تكون احدى تلك القيم فارغة
كود :
Sub PopulateListView()

        With ListView1
            .Clear()
            .View = View.Details
            .Columns.Add("Beda_id", 0, HorizontalAlignment.Center)
            .Columns.Add("اســم المـــادة", 250, HorizontalAlignment.Left)
            .Columns.Add("سعر الشــراء", 100, HorizontalAlignment.Center)
            .Columns.Add("سعر المبيـع", 100, HorizontalAlignment.Center)
            .Columns.Add("ربح المـادة", 100, HorizontalAlignment.Center)
            .Columns.Add("ملاحظــــات", 400, HorizontalAlignment.Left)


            .GridLines = False
            .FullRowSelect = True
            .Cursor = Cursors.Hand
            .BackColor = Color.Beige
            .ForeColor = Color.Black


            Dim Lst As New ListViewItem
            Dim List = From B In db.Fixed_Bedas Select B

            For Each x In List
                Lst = New ListViewItem(x.Beda_id)
                Lst.SubItems.Add(x.Beda_Name)

                'If IsDBNull(x.Shra_Price) Then
                '    x.Shra_Price = 0
                'End If

                'If IsDBNull(x.Mabee_Price) Then
                '    x.Mabee_Price = 0
                'End If
                

                Lst.SubItems.Add(x.Shra_Price)
                Lst.SubItems.Add(x.Mabee_Price)
                Lst.SubItems.Add(x.Mabee_Price - x.Shra_Price)
                Lst.SubItems.Add(x.Beda_Note)
                .Items.Add(Lst)
            Next
        End With


        For Each LVI As ListViewItem In ListView1.Items
            LVI.SubItems.Item(2).Text = FormatNumber(LVI.SubItems.Item(2).Text, 0)
            LVI.SubItems.Item(3).Text = FormatNumber(LVI.SubItems.Item(3).Text, 0)
            LVI.SubItems.Item(4).Text = FormatNumber(LVI.SubItems.Item(4).Text, 0)
        Next

  
  End Sub

حاولت فحص قيمة المتغير فيما ادا كان فارغا من اجل اسناد قيمة الصفر له عن طريق كتابة
كود :
'If IsDBNull(x.Shra_Price) Then
                '    x.Shra_Price = 0
                'End If

الا ان الامر لم ينجح

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

والف شكر


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته

تفضل أخي استخدم هذه الدالة

كود :
Public Function GetValue(ByVal Value As String) As String
        Return IIf(String.IsNullOrEmpty(Value), "0", Value)
    End Function

وطريقة استعمالها

كود :
Lst.SubItems.Add(GetValue(x.Shra_Price))
        Lst.SubItems.Add(GetValue(x.Mabee_Price))
        Lst.SubItems.Add(GetValue(x.Mabee_Price - x.Shra_Price))

بالتوفيق
الرد }}}
تم الشكر بواسطة: العزابي , kafi2030 , kslawy
#3
السلام عليكم
شكرا اخي
sooriaty
على تواصلك معي

تم تجريب ما تفضلت به حضرتك

ولكن للاسف مازالت ذات المشكلة !!!!


الملفات المرفقة صورة/صور
       
الرد }}}
تم الشكر بواسطة:
#4
السلام عليكم ورحمة الله وبركاته

حسنا أخي جرب تعديل الدالة بحيث يكون المتغير الذي يتم تمريره من نوع Object
بهذه الطريقة

كود :
Public Function GetValue(ByVal Value As Object) As String
        Return CStr(IIf(IsNothing(Value), "0", Value))
End Function

جرب وأعلمني بالنتيجة
الرد }}}
تم الشكر بواسطة: kafi2030
#5
كان لية اح الاسئلة المشابة ورد علية احد اعضاء المنتدي الكرام اخي kslawy

جرب هذا الكود في الحدث ItemSelectionChanged الخاص بالأداة :

PHP كود :
Private Sub ListView1_ItemSelectionChanged(ByVal sender As ObjectByVal e As System.Windows.Forms.ListViewItemSelectionChangedEventArgsHandles ListView1.ItemSelectionChanged
On Error Resume Next
        
If Not e.Item Is Nothing Then
            
If e.IsSelected True Then
                With e
.Item
                    Me
.TextBox1.Text IIf(.Text IsNot Nothing, .Text"")
                    
Me.TextBox2.Text IIf(.SubItems(1).Text IsNot Nothing, .SubItems(1).Text"")
                    
Me.TextBox3.Text IIf(.SubItems(2).Text IsNot Nothing, .SubItems(2).Text"")
                
End With
            End 
If
        
End If 

هذا رابط للموضوع
http://vb4arb.com/vb/showthread.php?tid=378

وبعد لما تخلص ضع قبل الكود في نفس الحدث iهذة العبارة لتنهي احتمالية اي اخطاء
On Error Resume Next
الرد }}}
تم الشكر بواسطة: kafi2030
#6
الف شكر
اخي sooriaty

نجح الحل المقدم من حضرتك
بارك الله فيك
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم