الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه MICRO0 في 3 فبراير 2012 · 13 رد · 1,405 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندى ابليكيشن و عايز اعمل فاتورة بيع للستور

و اللى واقف قدامى دلوقتى :

ان انا اكتب فى الخليه الاولى فى ال gridview رقم الصنف و يتم البحث عن طريق رقم الصنف

و يتم جلب جميع البيانات الخاصة بالصنف اللى موجود فى الخلية الاولى

فارجو منكم توضيح الطريقه و لكم جزييل الشكر

post-165089-052838300 1328296274_thumb.j

المرفقات
Untitled-1.jpg
#2

أخي يمكنك استخدام الحدث: CellValueChanged للغريد ووضع الكود التالي فيه:

        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
                   int ItemID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["ItemID"].Value);

            switch (ItemID)
            {
                case 1:
                    dataGridView1.Rows[e.RowIndex].Cells["Price"].Value = 1.5;
                    break;
                case 2:
                    dataGridView1.Rows[e.RowIndex].Cells["Price"].Value = 2.5;
                    break;
                case 3:
                    dataGridView1.Rows[e.RowIndex].Cells["Price"].Value = 3.5;
                    break;
            }
        }

حيث عمود ال ItemID هو العمود الذي يدخله المستخدم و العمود Price هو العمود الذي يتم حسابه على حسب قيمة العمود ItemID .

1
#3

طيب دلوقتى حضرتك انا عايز اقدر اضيف اكتر من صف فى الجريد فيو عن طريق الكود ازاى ؟؟؟؟


[private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Rows[0].Cells["Sanf_ID"].Value == null)
{

}
else
{

ShinifiDataContext db = new ShinifiDataContext();
var r = from p in db.Asnafs
where p.Sanf_ID == int.Parse(dataGridView1.Rows[0].Cells["Sanf_ID"].Value.ToString()).ToString()
select p;
dataGridView1.DataSource = r;


}
}

وده كود Linq لو الخلية الاولى فى الجريد فيو فاضيه يبقى مافيش مشكلة انما لو فيها داتا ياخد رقم الصنف الموجود فى الخلية و يقوم بعمل استعلام و يفل الدات جريد فيو ببيانات الصنف كامله فانا عايز اقدر اضيف صف تانى و الكود ده مش قادر اضيف الا من الخلية الاولى فقط فلو ممكن المساعده يا جماعة يبقى جزاكم الله كل خير الجزاء

تم تعديل هذه المشاركة بواسطة MICRO0 في 4 فبراير 2012 في 21:11

#4

يمكنك استخدام الطريقة المذكورة في المقالة التالية: Grid

و يمكنك أيضاً استخدام عنصر BindingSource

#5

المشكلة اللى موجوده دلوقتى قدامى ان انا بقدر اجيب اى داتا موجود فى القاعده بس فى صف واحد بس اللى index بتاعه ب 0

ومش قادر اخلى الصف التانى يجيب زى الصف الاول لما بدخل رقم الصنف جوه الخلية الاولى فى الجريد فيو فى الصف التانى اللى index بتاعه ب 1

فياريت لو فى داله for ولا اى كود يقدر يخلينى اتعامل مع الصفوف لحد ما يتم ادراج كل الاصناف و يتم الحفظ من الجريد فى القاعده

ولكم جزيل الشكر

#6

جرب الكود التالي:

[private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
                if (dataGridView1.Rows[0].Cells["Sanf_ID"].Value == null)
                {

                }
                else
                {

                ShinifiDataContext db = new ShinifiDataContext();
                var r = from p in db.Asnafs
                        where p.Sanf_ID == int.Parse(dataGridView1.Rows[e.RowIndex].Cells["Sanf_ID"].Value.ToString()).ToString()
                        select p;
                dataGridView1.DataSource = r;


 }
}

حيث تم استبدال الرقم 0 بين قوسي Rows ب : e.RowIndex و هو السطر الحالي الذي تم عمل حدث له.

#7

مشكوووور يا هندسة و اشتغلت تمام

بس هوه فى طلب اخير كل ما ادخل اى رقم صنف دلوقتى بيجيبلى بياناته تمام بس فى الصف الاول فقط

فالمطلوب ان انا اعمل ايه دلوقتى بس يعنى كده خلاص معتش الا ان كل صف يبقى فيه بيانات كل صنف لوحده

فانا عارف ان انا تقلت عليك بس ربنا يجعله فى ميزان حسناتك باذن الله

#8

عدل أيضاً الكود الخاص بتعليمة: if

if (dataGridView1.Rows[e.RowIndex].Cells["Sanf_ID"].Value == null)
#9

نفس المشكلة يا هندسة؟؟؟

و عدلتها قبل ما حضرتك تقول بس برضه كل صنف بدخل رقمه بيطل معايا فى الصف الاول

#10

حسناً: من أجل إعادة ترتيب الأمور, هل يمكنك وضع الكود النهائي الذي لديك و إعادة صياغة ماتريده بالضبط؟

#11

ده الكود حضرتك

if (dataGridView1.Rows[e.RowIndex].Cells["Sanf_ID"].Value == null)
        	{

        	}
        	else
        	{

            	ShinifiDataContext db = new ShinifiDataContext();
            	var r = from p in db.Asnafs
                    	where p.Sanf_ID == int.Parse(dataGridView1.Rows[e.RowIndex].Cells["Sanf_ID"].Value.ToString()).ToString()
                    	select p;
            	dataGridView1.DataSource = r;

وما اريده ان يتم كتابه رقم الصنف فى الخلية الاولى و يتم بعدها ادراج جميع بيانات الصنف من جدول الصنف

وعند النزول للصف الثانى يتم كتابه رقم الصنف ويتم تحميل بيانات الصنف بداخل الصف الثانى وهكذا لحين يتم الحفظ و ذلك عن طريق البائع

و ما يحدث الان ان يتم ادخال رقم الصنف فى الخلية الاولى فى الصف الاول و يتم تحميل بيانات الصنف

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

ولك جزيل الشكر

#12

ممكن تضع كود التخزين ؟

و إذا كان الكود السابق يتم كتابته في حدث ال CellEndEdit فهو غير صحيح!!

#13

تمام يا هندسة اكتب الكود بقى فى اى EVENT لل GRIDVIEW

وبخصوص كود الحفظ انا بسال حضرتك عليه ؟؟؟

#14

أرفقت لك مثال تجريبي عن طريقة التعامل مع الغريد من أجل إضافة سجلات باستخدام BindingSource

يرجى الاطلاع عليه.

WindowsFormsApplication14.zip

1

مواضيع مشابهة