منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف يمكن استثناء صفوف من تطبيق عملية حسابية داخل الداتا جريد ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

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

كود :
' حساب نسبة 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 ) من تطبيق المعادلة ؟؟؟

كيف يمكن عمل ذلك ؟
إستثناء تعني إستخدام condtional statement ما هو الشرط الذي علي اساسه يتم الإستثناء
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 كتب :حتى أستطيع فهمك جيدا هل توجد خليه من خلال قيمتها نعرف أن هذا الموظف غير مؤمن عليه ؟

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

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

فى انتظار التوضيح
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 
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
؟؟؟
وليكن لدينا datagridview باسم grid ولدينا العمود الذى به مؤمن عليه رقم 5 والخليه في هذا العمود إذا كان مؤمن عليه تساوى 1 وغير مؤمن عليه تساوى 0

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

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

'نفذ الكود الذى تريده
end if 
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

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

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