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

سؤال يتعلق بال DataGrid

مغلق
بدأه ندى الصباح في 24 مارس 2005 · 6 رد · 905 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أعزائي في هذا المنتدى الكبير لقد قصدتكم بسؤال فلا تردوني فهذا ليس من طبعكم فطبعكم الكرم والجود بخبراتكم. وسؤالي:

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

مثلا عند تحديث أي حقل موجود في العمود 2 وهو "رقم الصنف" عندها وبعد تغيير أو تعديل الرقم ثم الخروج من الحقل عندها يتم التحقق من صحة الرقم وإظهار رسالة تفيد بالخطأ إن وجد.

فكيف أستطيع عمل ذلك ؟

تم تعديل هذه المشاركة بواسطة ندى الصباح في 24 مارس 2005 في 13:54

#2

أبغى أحد يجاوبني على سؤالي السابق ! ! !

ياإخواني الكرام لاحظت أن القليل من الناس الذين يسألون عن DataGtid وقليل من يجاوبهم ولا أدري لماذا ،،، سؤالي سهل جدا جدا ...

#3

السلام عليكم

في تحميل النموذج From Loading إنشئ Delegate بهذا الشكل

 AddHandler DsMain1.Tables("myTable").ColumnChanging, _
AddressOf  Books_ColumnChanging

ثم قم بإنشاء إجراء sub procedure هذا الإجراء يقوم بالتحقق من العامود في الـ DataGrid وهو ISBN هل هو

رقمي أم لا إن كان ليس برقم سيظهر رسالة خطأ (مثال فقط)

كذلك يتحقق من العامود Book هل هو نصي أم لا إذا كان ليس بنص سيظهر رسالة خطأ ...

 Private Sub Books_ColumnChanging(ByVal sender As Object, _
    ByVal e As System.Data.DataColumnChangeEventArgs)
        Try
            If (e.Column.ColumnName.Equals("ISBN")) Then
                If Not IsNumeric(e.ProposedValue) Then
                    Me.SBInfo.Text = "الرجاء أدخل قيمة رقمية من فضلك"
                    Dim badValue As Object = e.ProposedValue
                    e.ProposedValue = "خطأ"
                    e.Row.SetColumnError(e.Column, " لاتقبل إلا القيمة الرقمية فقط ")
                    Exit Sub
                Else
                    e.Row.SetColumnError(e.Column, "")
                    Me.SBInfo.Text = ""
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


        'Second Logic Check if there's A logical Error between 2 Dates
        '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        Try
            If (e.Column.ColumnName.Equals("Book")) Then
                If IsNumeric(e.ProposedValue) Then
                    Me.SBInfo.Text = "الرجاء أدخل قيمة نصية من فضلك"
                    Dim badValue As Object = e.ProposedValue
                    e.ProposedValue = "خطأ"
                    e.Row.SetColumnError(e.Column, " لاتقبل إلا القيمة النصية فقط ")
                    Exit Sub
                Else
                    e.Row.SetColumnError(e.Column, "")
                    Me.SBInfo.Text = ""
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

لو أردت مثلاً معرفة القيمة الحالية قم بالأتي

 If CType(e.ProposedValue, String) = "Hello" Then
                'Do Something ....
            Else
                'Do Others ....
            End If

كذلك يمكنك التحكم في متابعة أرسال الخطأ و إن لم تكن على نفس العامود بإستخدام Pointer مثلاً

 If (e.Column.ColumnName.Equals("DateOfReturn")) Then
                DateOfReturnRow = e.Row

تلاحظ DateOfReturnRow = e.Row هذا هو الـ pointer تستطيع أن تظهر رسالة الخطأ في هذا العمود

لانه مأشر على e.Row يستخدم هذا حينما يكون لديك عامودين تعتمد صلاحية قيمة أحدهم على الأخر مثلاً

تاريخ التسجيل و تاريخ الإنتهاء , لوكان هذا يأشر على تاريخ الإنتهاء ثم قام المستخدم بتعديل تاريخ التسجيل بحيث يكون أكبر

من تاريخ الإنتهاء هنا الفائدة من عملية الـ pointer on Row لتظهر رسالة الخطأ بجانب العامود تاريخ الإنتهاء

بحيث لابد أن يكون أكبر من تاريخ التسجيل . اي أن أ تعتمد على ب ...

السلام عليكم

في المثال يتضح المقال

#4

يبدو لي ان المشكلة بسيطة

من الخصائص DataSource =Dataset1

ولما تنفذين البرنامج وتضيفين سجل يعطيك خطأ اذا كان هناك عملية تكرار

او صيغة خاطئه مثل Integer الى String

اتمنى تكون وصلت الفكرة

#5

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

اخى الغملاسي جزاكم الله خيرا

هل ممكن اضافة مثال

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#6

السلام عليكم

حاضر يأخي waleedhm هذا المثال تفضل ..

TestDataGrid.zip

في المثال يتضح المقال

#7

الله الله .. بارك الله فيكم .. إن شاء الله في ميزان حسناتكم

هذا الموضوع مغلق.

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