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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ (/showthread.php?tid=5051)

الصفحات: 1 2


تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - a.amin - 04-10-12

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

كيف يمكننى تلوين ( خلية محسوبة ) فى الداتا جريد اذا تغيرت قيمتها

بمعنى عند تعبئة الداتا جريد مثلا تكون قيمة الخلية 1000

ونفترض اننا اضفنا بعض القيم إلى أعمدة أخرى واصبح مجموع الخلية سابقة الذكر 1100 اريده ان يتم تلوينه كى أعرف ان تلك الخلية هى التى تم تعديلها للمراجعة ؟؟

[ATTACH=CONFIG]596[/ATTACH]



تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - amgadtamer - 04-10-12

مرفق مثال علي التاريخ قم بتغييره للارقام


تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - a.amin - 04-10-12

اشكرك أخى الفاضل

هى نفس الفكرة التى أريدها ولكن

مثال لكى تتضح الفكرة لك اخى الفاضل

عند فتح الفورم تكون قيمة الخلية بالعامود الرابع مثلا 1000

تم تعديل قيمة خلايا بالعامود الأول والثانى ( والذى يصب مجموعهم ) بالعامود الرابع وبالتالى تغير مجموع الخلية بالعامود الرابع الى ( 1100 ) كيف يمكننى تلوين الخلية التى تغيرت فقط ( بالعامود الرابع )



تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - amgadtamer - 04-10-12

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


تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - a.amin - 04-10-12

amgadtamer كتب :الأن فى المثال لديك ثلاث أعمدة العمود الثالث هو حاصل ضرب العمود الأول والثانى تم وضع قيمه للعمود الثالث ( بحيث لو تخطى 1000 يتم تغيير لون الخليه التى تغيرت)

أشكرك أخى الكريم

ولكنى اريد تلوين الخلية ليست اذا كانت قيمتها تخطت 1000 انا اريد تلوينها اذا تغيرت قيمتها لأى قيمة


عند تعبئة الداتا جريد تكون الأعمدة بها قيم افتراضية

المبلغ الضريبة الاجمالى
100 10 110 هنا يكون اللون كما هو دون اى تغيير لعدم عمل اى تعديلات

بعد التعديل يكون الأتى

المبلغ الضريبة الاجمالى
200 20 220 هنا يتم تلوين الموجود بخلية الإجمالى فقط

ارجوا ان تكون الفكرة وضحت لكى يتسنى لك مساعدتى

واشكرك مقدما على جهدك المبذول



تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - a.amin - 04-10-12

[COLOR="#FF0000"]فى إنتظار التوضيح

جربت فكرة انى الون الصف اللى تم التعديل فيه ( نجحت فى ذلك )

مازلت ارى انه من الأفضل تلوين الخلية التى تم تغيير قيمتها فقط ؟؟؟[/COLOR]



تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - amgadtamer - 05-10-12

المثال بعد التعديل


تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - a.amin - 05-10-12

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 لأننى لم أفهمه وأود توضيحه ؟؟


سؤال: بفرض تم تعديل خلية بالخطأ وتم تلوينها وأثناء المراجعة تم إرجاعها إلى قيمتها الأصلية هل من الممكن إلغاء التلوين حينها ( ترجع زى ماكانت على أساس انه لم يتم التعديل ) أم أن هذا غير منطقى من الأساس ؟؟


تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - amgadtamer - 05-10-12

تم وضع if لكى نحدد أعمدة الداتاجريد التى بتغييرها تؤثر فى قيمة خلية الإجمالى عموما المثال يتم قنص حدث تغيير نص خلية الداتاجريد (datagridviewtextboxcell) عن طريق addhandler ثم عمل delegation لحدث textchanged
أما لو حدث تغيير بالخطأ فهذا الكود لن يفيد لكن تستطيع وضع رسالة تأكيد للمستخدم للتأكيد
أما لو أردت تغيير اللون فى حالة الخطأ يمكن إستخدام ملف xml لحفظ بيانات الداتاجريد ومقارنتها أو إستخدام قاعدة بيانات


تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ - a.amin - 05-10-12

بارك الله فيك وجزاك الله كل خير على التوضيح