13-11-14, 11:13 PM
13-11-14, 11:15 PM
السلام عليكم ورحمة الله
الحمد لله، وجدت لك طريقة من أحد مشاريع الأخوة مختلفة تماما عما سبق، ولا تحتاج أي تعديلات من جهتك
جرب التالي
PHP كود :
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim AbNormal = "N"
Dim SN = 1500
Dim Gender = "Male"
Dim PValue = 11
Dim condition As String = "(AbNormal = 'N' ( [1500] ) And Gender = 'Male') Or (AbNormal = 'N' And PValue >= 11)"
Dim result As Object = f(AbNormal, SN, Gender, PValue, condition)
If result IsNot Nothing Then
If result Then
MsgBox("Valid")
Else
MsgBox("Invalid")
End If
Else
MsgBox("Error")
End If
End Sub
Public Function f(ByVal AbNormal As Char, ByVal SN As Integer, ByVal Gender As String, ByVal PValue As Integer, ByVal condition As String) As Object
Try
Dim code As String = _
"Dim AbNormal As Char=""" & AbNormal & """,Gender As String=""" & Gender & """,SN As Integer=" & SN & ",PValue As Integer=" & PValue & vbCr & _
"If " & condition & " Then Return True Else Return False"
code = "Class c" & vbCr & "Function f() As Boolean" & vbCr & code & vbCr & "End Function" & vbCr & "End Class"
code = Replace(code, "'", """") : code = Replace(code, "( [", " And SN=") : code = Replace(code, "] )", " ")
code = Replace(code, "([", " And SN=") : code = Replace(code, "])", " ")
Dim res As System.CodeDom.Compiler.CompilerResults = New VBCodeProvider().CompileAssemblyFromSource(New CodeDom.Compiler.CompilerParameters, code)
Dim ins As Object = res.CompiledAssembly.CreateInstance("c")
Dim methodInfo As Reflection.MethodInfo = ins.GetType.GetMethod("f")
Return methodInfo.Invoke(ins, Nothing)
Catch ex As Exception
End Try
Return Nothing
End Function
End Class
13-11-14, 11:17 PM
لا اعرف كيف اشكرك سيتم التجربة الان وساخبرك بالنتيجة
هناك خطأ فى
PValue
إذا تم تغيير الرقم إلى
Dim PValue = 2
يعطنى Valid
المفترض يعطنى
Invalid
هل من الممكن شرح مختصر للكود
بارك الله فيك وتقبل منك زكاه علمك
تم إيجاد مشكله تغير قيمة ال PValue
بارك الله فيك
شكرا شكرا شكرا
الكود يعمل بشكل صحيح
باقي تعديل طفيف سأقوم بحلة
سامحنى إن احتجت لمساعدتك مره أخرى
سؤال
كيف يكون الحال إذا كان موجود أكثر من SN
فى نفس الكود مع العلم أنى لا اعرف عدد تكرارها
هناك خطأ فى
PValue
إذا تم تغيير الرقم إلى
Dim PValue = 2
يعطنى Valid
المفترض يعطنى
Invalid
هل من الممكن شرح مختصر للكود
بارك الله فيك وتقبل منك زكاه علمك
تم إيجاد مشكله تغير قيمة ال PValue
بارك الله فيك
شكرا شكرا شكرا
الكود يعمل بشكل صحيح
باقي تعديل طفيف سأقوم بحلة
سامحنى إن احتجت لمساعدتك مره أخرى
سؤال
كيف يكون الحال إذا كان موجود أكثر من SN
فى نفس الكود مع العلم أنى لا اعرف عدد تكرارها
13-11-14, 11:58 PM
السلام عليكم ورحمة الله
جرب وأخبرني بالنتيجة
14-11-14, 12:04 AM
(13-11-14, 11:58 PM)الوليد ☺ كتب : [ -> ]
السلام عليكم ورحمة الله
جرب وأخبرني بالنتيجة
النتيجة ممتازة جزاك الله كل خير
الان سأستخدم هذا الكود ولكن
1- عند وضع أكثر من SN وأكثر من PValue
2- أو إذا لم يكن هناك Gender
فكيف يتم حلها
14-11-14, 12:16 AM
اقصد تكرار ال SN ولكن بأكثر من معطى
بمعنى المعطيات
Dim SN = 1500
إحتمالية وجود أكثر من معطى ولا اعرف العدد
Dim SN = 1500
Dim SN = 2500
بمعنى المعطيات
Dim SN = 1500
إحتمالية وجود أكثر من معطى ولا اعرف العدد
Dim SN = 1500
Dim SN = 2500
14-11-14, 12:21 AM
السلام عليكم ورحمة الله
حسب بداية الموضوع فإن الجدول الأول يحتوي على قيمة واحدة لكل معامل
إذا كنت تقصد التكرار داخل هذا النص مع اختلاف القيم فالمسئلة هي نفسها، مع ملاحظة PValue تكتب في الحالتي => و=<
PHP كود :
Dim condition As String = "AbNormal = 'N' ( [2500] ) And Gender = 'Male' Or AbNormal = 'N' And PValue >= 11 and PValue <= 20 And AbNormal = 'N' ( [1500] )"
14-11-14, 12:33 AM
الحمد لله بدأت تفهمنى
حسب بداية الموضوع فإن الجدول الأول يحتوي على قيمة واحدة لكل معامل
كلام صحيح فعلا
نفترض ان الصف الاول رقم المعاملة 1500 و ال gender = Male وال PValue = 11
نفترض ان الصف الثانى رقم المعاملة 2500 و ال gender = Female وال PValue = 15
الان
سأقوم بإجبار المستخدم بكتابة رقم المعاملة بعد كل شرط
مثلا
AbNormal = 'N' ( [1500] ) And Gender = 'Male' ( [1500] )
ليتم تغيير قيم ال 1500 بقسمة الصف
ما رئيك فى ذلك
هل من طريقة اسهل
حسب بداية الموضوع فإن الجدول الأول يحتوي على قيمة واحدة لكل معامل
كلام صحيح فعلا
نفترض ان الصف الاول رقم المعاملة 1500 و ال gender = Male وال PValue = 11
نفترض ان الصف الثانى رقم المعاملة 2500 و ال gender = Female وال PValue = 15
الان
سأقوم بإجبار المستخدم بكتابة رقم المعاملة بعد كل شرط
مثلا
AbNormal = 'N' ( [1500] ) And Gender = 'Male' ( [1500] )
ليتم تغيير قيم ال 1500 بقسمة الصف
ما رئيك فى ذلك
هل من طريقة اسهل
14-11-14, 12:57 AM
السلام عليكم ورحمة الله
سامحني إذا كنت أتدخل في عملك،
من بداية الموضوع أنا غير مقتنع من وضع SN داخل المعادلة لاعتبار (حسب ظني) أنه رقم عملية لا يتكرر في بقية الأسطر،
يعني أشبه برقم تسلسلي للسجلات
ولكن وضعك للمثال التالي أربكني
PHP كود :
AbNormal = 'N' ( [2500] ) And Gender = 'Male' Or AbNormal = 'N' And PValue >= 11 and PValue <= 20 And AbNormal = 'N' ( [1500] )
لا أعرف ما ردك
14-11-14, 01:10 AM
(14-11-14, 12:57 AM)الوليد ☺ كتب : [ -> ]
السلام عليكم ورحمة الله
سامحني إذا كنت أتدخل في عملك،
من بداية الموضوع أنا غير مقتنع من وضع SN داخل المعادلة لاعتبار (حسب ظني) أنه رقم عملية لا يتكرر في بقية الأسطر،
يعني أشبه برقم تسلسلي للسجلات
ولكن وضعك للمثال التالي أربكني
PHP كود :
AbNormal = 'N' ( [2500] ) And Gender = 'Male' Or AbNormal = 'N' And PValue >= 11 and PValue <= 20 And AbNormal = 'N' ( [1500] )
لا أعرف ما ردك
فعلا انت محق وانا اعتزر عن عدم قدرتي علي توصيل المعلومه
انا لدي فكره ولكن لا اعرف مدي تطبيقها
يمكنني التحكم في طريقه كتابه المعادله
بمعني اني ساقوم بوضع رقم السجل بعد كل شرط وسوف نقوم باستبدال رقم السجل بقيمته
نفترض ان السجل رقم 1500
قيمه ال gender Female
وقيمه ال Abnormal N
داخل الداتا جريد
ستكون طريقه كتابه المعادله كالتالي
Abnormal ='N' (1500) and Gender ='Female'
بعد كل شرط اكتب رقم السجل ليتم استبداله بقيمته داخل الداتا جريد
ما رئيك في هذا الحل وما مدي صحته وتنفيذه
تستحق لقب المميز