منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ (/showthread.php?tid=5101)



كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - a.amin - 04-10-12

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

هذا الكود يقوم بعملية حسابية فى الداتا جريد وهو يعمل والحمد لله

كود :
' حساب نسبة 26% تأمينات من الأجر الأساسى للشركة
CurRow.Cells("e_tamen_per_1_26_col").Value =
CDbl(CurRow.Cells("e_asasy_col").Value) * 0.26
CurRow.Cells("e_tamen_per_1_26_col").Value = Math.Round(CurRow.Cells("e_tamen_per_1_26_col").Value / 0.05, 0) * 0.05

طلب منى اليوم ان يتم استثناء بعض الصفوف فى العامود ( e_tamen_per_1_26_col ) من تطبيق المعادلة ؟؟؟

كيف يمكن عمل ذلك ؟



كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - amgadtamer - 05-10-12

إستثناء تعني إستخدام condtional statement ما هو الشرط الذي علي اساسه يتم الإستثناء


كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - a.amin - 05-10-12

amgadtamer كتب :إستثناء تعني إستخدام condtional statement ما هو الشرط الذي علي اساسه يتم الإستثناء

الفكرة ببساطة أخى الفاضل
لا اريد حساب نسبة التأمين إلى الأشخاص الذين سيتم إستثنائهم وذلك لأنهم غير مؤمن عليهم ( 3 أفراد فى المؤسسة بالكامل )

لو حنعمل شرط يبقى حنزود عامود جديد ( مؤمن عليه - غير مؤمن عليه ) وطبعا من خلاله حنعمل condtional statement ؟؟

حليت الموضوع ببساطه وهو انى حددت له الخلية اللى يخلى قيمتها = 0 بعد ما يحسب ( على أساس أنى الموظفين دول أكوادهم ثابته ولن تتغير )

كود :
'  حساب نسبة 24% تأمينات من الأجر المتغير للشركة
            CurRow.Cells("e_tamen_per_1_24_col").Value =
                          CDbl(CurRow.Cells("e_change_tot_col").Value) * 0.24
            CurRow.Cells("e_tamen_per_1_24_col").Value = Math.Round(CurRow.Cells("e_tamen_per_1_24_col").Value / 0.05, 0) * 0.05
[COLOR="#FF0000"]            DGV1.Rows(0).Cells("e_tamen_per_1_24_col").Value = 0
            DGV1.Rows(1).Cells("e_tamen_per_1_24_col").Value = 0
            DGV1.Rows(4).Cells("e_tamen_per_1_24_col").Value = 0[/COLOR]

طبعا فكرتك أفضل وهى تنطبق على الكل وده حيكون أفضل بحيث ان اذا تم تكويد موظف جديد وغير مؤمن عليه فسيجعله = 0 وهذا المطلوب - لكن حلى المؤقت يتطلب منى تعديل الكود فى حالة إستثناء موظف اخر

إن أمكن توضيح الفكرة كما تعودنا منك أكون شاكر ليك جدااااااا



كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - amgadtamer - 05-10-12

حتى أستطيع فهمك جيدا هل توجد خليه من خلال قيمتها نعرف أن هذا الموظف غير مؤمن عليه ؟


كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - a.amin - 05-10-12

amgadtamer كتب :حتى أستطيع فهمك جيدا هل توجد خليه من خلال قيمتها نعرف أن هذا الموظف غير مؤمن عليه ؟

حتى الان لا فلا يوجد بقاعدة البيانات اى شيء يخص هل هو مؤمن عليه ام لا

لكن انا ضفته وضفته حاليا فى الداتا جريد وقمت بإخفاءه
العامود اسمه e_tamen_st
القيم اللتى توجد به هى "1" اذا كان مؤمن عليه - "2" اذا كان غير مؤمن عليه

فى انتظار التوضيح



كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - amgadtamer - 05-10-12

PHP كود :
استخدم هذه الدالة حتى تستطيع التأكد من أنه مؤمن عليه أولا فإن كان غير مؤمن قم بإسناد صفر للأعمدة التى تريد 

 
Function checkifinsure(ByVal gridv As DataGridViewByVal cellindex As IntegerByVal cellval As Object) As Boolean
        Dim r 
As DataGridViewRow
        Dim result 
As Boolean False
        
For Each r In gridv.Rows
            
If r.Cells(cellindex).Value.ToString cellval.ToString Then
                result 
True
            End 
If
        
Next
        
Return result
    End 
Function 



كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - a.amin - 05-10-12

amgadtamer كتب :
PHP كود :
استخدم هذه الدالة حتى تستطيع التأكد من أنه مؤمن عليه أولا فإن كان غير مؤمن قم بإسناد صفر للأعمدة التى تريد 

 
Function checkifinsure(ByVal gridv As DataGridViewByVal cellindex As IntegerByVal cellval As Object) As Boolean
        Dim r 
As DataGridViewRow
        Dim result 
As Boolean False
        
For Each r In gridv.Rows
            
If r.Cells(cellindex).Value.ToString cellval.ToString Then
                result 
True
            End 
If
        
Next
        
Return result
    End 
Function 

السلام عليكم

هل المقصود ب
كود :
Cells(cellindex)
هو رقم الخلية التى تحتوى على القيمة الخاصة بمؤمن عليه وغير مؤمن عليه يعنى اكتب مكان cellindex رقم او اسم العامود اللى حياخد منه القيمة ؟

هل أكتب الشرط الخاص بتصفير القيمة داخل دالة IF اى مع
كود :
result = True
؟؟؟



كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - amgadtamer - 05-10-12

وليكن لدينا datagridview باسم grid ولدينا العمود الذى به مؤمن عليه رقم 5 والخليه في هذا العمود إذا كان مؤمن عليه تساوى 1 وغير مؤمن عليه تساوى 0

فيصبح الكود هكذا

PHP كود :
if checkifinsure(grid,5,"0") = true then

'نفذ الكود الذى تريده
end if 



كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - a.amin - 08-10-12

amgadtamer كتب :وليكن لدينا datagridview باسم grid ولدينا العمود الذى به مؤمن عليه رقم 5 والخليه في هذا العمود إذا كان مؤمن عليه تساوى 1 وغير مؤمن عليه تساوى 0

فيصبح الكود هكذا

PHP كود :
if checkifinsure(grid,5,"0") = true then

'نفذ الكود الذى تريده
end if 

السلام عليكم

عملت الوظيفة كما اوضحت

كود :
Function checkifinsure(ByVal gridv As DataGridView, ByVal cellindex As Integer, ByVal cellval As Object) As Boolean
        Dim r As DataGridViewRow
        Dim result As Boolean = False
        For Each r In gridv.Rows
            If r.[color=#FF0000]Cells(cellindex).Value.ToString[/color] = cellval.ToString Then
                result = True
            End If
        Next
        Return result
    End Function

بالنسبة للجزء اللى باللون الأحمر هل اضع cellindex اسم العامود الذى به قيمة مؤمن عليه = 1 أو غير مؤمن عليه = 0

بالنسبة للجزء الثانى

كود :
if checkifinsure(grid,[color=#FF0000]5[/color],"0") = true then

نفذ الكود الذى تريده
end if

هنا نحن حددنا رقم الخلية وهو "5" وانا اريد تنفيذه على الكل وليس رقم 5 فقط

الكود الذى كنت اكتبه لجعل القيمة = 0 هو

كود :
DGV1.Rows(0).Cells("e_tamen_per_1_26_col").Value = 0
            DGV1.Rows(1).Cells("e_tamen_per_1_26_col").Value = 0
            DGV1.Rows(4).Cells("e_tamen_per_1_26_col").Value = 0

طبعا انا هنا كنت محدد الصفوف لكن طلب منى انى اطبق الموضوع على الكل تحسبا لأى حاجة

فى إنتظار توضيحك الكريم أخى الفاضل جزاك الله عنا كل خير



كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟ - amgadtamer - 08-10-12

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