السلام عليكم ورحمة الله وبركاته
كيف يمكننى تلوين ( خلية محسوبة ) فى الداتا جريد اذا تغيرت قيمتها
بمعنى عند تعبئة الداتا جريد مثلا تكون قيمة الخلية 1000
ونفترض اننا اضفنا بعض القيم إلى أعمدة أخرى واصبح مجموع الخلية سابقة الذكر 1100 اريده ان يتم تلوينه كى أعرف ان تلك الخلية هى التى تم تعديلها للمراجعة ؟؟
[ATTACH=CONFIG]596[/ATTACH]
مرفق مثال علي التاريخ قم بتغييره للارقام
اشكرك أخى الفاضل
هى نفس الفكرة التى أريدها ولكن
مثال لكى تتضح الفكرة لك اخى الفاضل
عند فتح الفورم تكون قيمة الخلية بالعامود الرابع مثلا 1000
تم تعديل قيمة خلايا بالعامود الأول والثانى ( والذى يصب مجموعهم ) بالعامود الرابع وبالتالى تغير مجموع الخلية بالعامود الرابع الى ( 1100 ) كيف يمكننى تلوين الخلية التى تغيرت فقط ( بالعامود الرابع )
الأن فى المثال لديك ثلاث أعمدة العمود الثالث هو حاصل ضرب العمود الأول والثانى تم وضع قيمه للعمود الثالث ( بحيث لو تخطى 1000 يتم تغيير لون الخليه التى تغيرت)
amgadtamer كتب :الأن فى المثال لديك ثلاث أعمدة العمود الثالث هو حاصل ضرب العمود الأول والثانى تم وضع قيمه للعمود الثالث ( بحيث لو تخطى 1000 يتم تغيير لون الخليه التى تغيرت)
أشكرك أخى الكريم
ولكنى اريد تلوين الخلية ليست اذا كانت قيمتها تخطت 1000 انا اريد تلوينها اذا تغيرت قيمتها لأى قيمة
عند تعبئة الداتا جريد تكون الأعمدة بها قيم افتراضية
المبلغ الضريبة الاجمالى
100 10 110 هنا يكون اللون كما هو دون اى تغيير لعدم عمل اى تعديلات
بعد التعديل يكون الأتى
المبلغ الضريبة الاجمالى
200 20 220 هنا يتم تلوين الموجود بخلية الإجمالى فقط
ارجوا ان تكون الفكرة وضحت لكى يتسنى لك مساعدتى
واشكرك مقدما على جهدك المبذول
[COLOR="#FF0000"]فى إنتظار التوضيح
جربت فكرة انى الون الصف اللى تم التعديل فيه ( نجحت فى ذلك )
مازلت ارى انه من الأفضل تلوين الخلية التى تم تغيير قيمتها فقط ؟؟؟[/COLOR]
amgadtamer كتب :المثال بعد التعديل
بارك الله فيك أخى الفاضل على توضيح الفكرة قمت بتعديل جزء فى الكود وهو إلغاء دالة IF فى الجزء EditingControlShowing لكى يقوم بتنفيذها على أى خلية كذلك عدلت فى الجزء Textbox_TextChanged واشرت إلى اسم العامود
كود :
Private Sub DGV1_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DGV1.EditingControlShowing
Dim textinserted As TextBox = CType(e.Control, TextBox)
AddHandler textinserted.TextChanged, AddressOf Textbox_TextChanged
End Sub
كود :
Private Sub Textbox_TextChanged(sender As Object, e As System.EventArgs)
Me.DGV1.Item("e_asay_tot_col", Me.DGV1.CurrentRow.Index).Style.BackColor = Color.Yellow
Me.DGV1.Item("e_mos_tot_col", Me.DGV1.CurrentRow.Index).Style.BackColor = Color.Yellow
End Sub
والحمد لله الكود شغال و 100 / 100
طلب اخير من فضلك وهو هل ممكن تشرح لى الكود الموجود فى EditingControlShowing لأننى لم أفهمه وأود توضيحه ؟؟
سؤال: بفرض تم تعديل خلية بالخطأ وتم تلوينها وأثناء المراجعة تم إرجاعها إلى قيمتها الأصلية هل من الممكن إلغاء التلوين حينها ( ترجع زى ماكانت على أساس انه لم يتم التعديل ) أم أن هذا غير منطقى من الأساس ؟؟
تم وضع if لكى نحدد أعمدة الداتاجريد التى بتغييرها تؤثر فى قيمة خلية الإجمالى عموما المثال يتم قنص حدث تغيير نص خلية الداتاجريد (datagridviewtextboxcell) عن طريق addhandler ثم عمل delegation لحدث textchanged
أما لو حدث تغيير بالخطأ فهذا الكود لن يفيد لكن تستطيع وضع رسالة تأكيد للمستخدم للتأكيد
أما لو أردت تغيير اللون فى حالة الخطأ يمكن إستخدام ملف xml لحفظ بيانات الداتاجريد ومقارنتها أو إستخدام قاعدة بيانات
بارك الله فيك وجزاك الله كل خير على التوضيح