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

زيادة قيمة خلية في جريد فيو

بدأه alroaini100 في 1 نوفمبر 2013 · 7 رد · 568 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ساعدوني في الحل

السؤل عندي فاتوره عندما يتم بيع اكثر من صنف فانا لا اريد تكرار صف جديد  في الجريد فيو وانما يقوم بزيادة قيمة الكميه

اي اني اقوم بعملية البحث قبل اظافة الصف الجديد اذا كان موجود يتم زيادة الكميه فقط

وجزاكم الله الف الف خبر

تم تعديل هذه المشاركة بواسطة alroaini100 في 1 نوفمبر 2013 في 01:49

#2

جربت هذا الكود يطلع رساله

"لم يتم تعين مرجع كائن لمثيل كائن"

ارجو منكم المساعدة

 int ProNo = Convert.ToInt32(pro_no.Text);
            //  int ProNo1 = Convert.ToInt32(pro_no.Text);
            try
            {
                foreach (DataGridViewRow row in dgv.Rows)
                {
                    if (row.Cells[1].Value.ToString().Equals(ProNo))
                    {

                        MessageBox.Show("رساله1");
                    }
                    else
                    {


                        MessageBox.Show("رساله2");
                         }

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

            }

تم تعديل هذه المشاركة بواسطة alroaini100 في 1 نوفمبر 2013 في 04:08

#3

كذالك جربت هذا الكود ولكن يبحث عن الصف الاول فقط

ساعدونــــــــــــــي بالحل

 protected void FillDataGridView()        {                           if (dgv.Rows.Count >1)                    {                        for (int i = 0; i < dgv.Rows.Count-1; i++)                        {                            if (dgv.Rows.Cells[1].Value.ToString() == pro_no.Text)                            {                                dgv.Rows.Cells[3].Value = Convert.ToInt32(dgv.Rows.Cells[3].Value) + 1;                                dgv.Rows.Cells[6].Value = Convert.ToInt32(dgv.Rows.Cells[3].Value) * Convert.ToInt32(dgv.Rows.Cells[4].Value);                               // break;                            }                            else                            {                                string[] ROW = { store_no.Text, pro_no.Text, des.Text, Quantity.Text, UnitPrice.Text, Discount.Text, Total_Net_Discount.Text };                                dgv.Rows.Add(ROW);                                break;                            }                        }                                           }                     else                     {                         string[] ROW = { store_no.Text, pro_no.Text, des.Text, Quantity.Text, UnitPrice.Text, Discount.Text, Total_Net_Discount.Text };                         dgv.Rows.Add(ROW);                         //break;                     }                                               //}            store_no.Text =  Quantity.Text = UnitPrice.Text = Discount.Text = Total_Net_Discount.Text = des.Text = "";            pro_no.Text = "";        }

ياليت يوجد حل

تم تعديل هذه المشاركة بواسطة alroaini100 في 1 نوفمبر 2013 في 19:10

#4

جرب هذا

protected void FillDataGridView(){       	bool fRowUpdate;        if (dgv.Rows.Count >0)    {        for (int i = 0; i < dgv.Rows.Count-1; i++)        {            if (dgv.Rows.Cells[1].Value.ToString() == pro_no.Text)            {                dgv.Rows.Cells[3].Value = Convert.ToInt32(dgv.Rows.Cells[3].Value) + 1;                dgv.Rows.Cells[6].Value = Convert.ToInt32(dgv.Rows.Cells[3].Value) * Convert.ToInt32(dgv.Rows.Cells[4].Value);                fRowUpdate=true;				break;            }        }  	}	if (fRowUpdate==false)	{        string[] ROW = { store_no.Text, pro_no.Text, des.Text, Quantity.Text, UnitPrice.Text, Discount.Text, Total_Net_Discount.Text };		dgv.Rows.Add(ROW);        break;         }           store_no.Text =  Quantity.Text = UnitPrice.Text = Discount.Text = Total_Net_Discount.Text = des.Text = "";    pro_no.Text = "";}
1
#5

جزالك الله الف خير اخي

KARIMSOFT   علي ردك  المشكله مازالت موجود اذا كان في طريقه اخري تحل المشكله

حيث اننا ابيع اكثر من صنف بحيث انه لا يتم تكرار صنف موجود داخل الجريد مره ثانيه ولاكــن يقوم بتعديل الكميه باظافه 1 وضرب الكميه بسعر الوحده ويعطي الاجمالي

#6

ممكن توضح اكثر ما المشكله في الكود بضبط لا الكود يفعل ما تريد

#7

السلام عليكم.

أخي سبب المشكلة هو كالتالي: أنك تقوم بعمل المقارنة وتعديل القيم ضمن حلقة الـ for. والصحيح أن تقوم بتعديل القيم بعد انتهاء حلقة الـ for. كالتالي:

  1. تقوم بتعريف متغيرين الأول bool found = false; والثاني int foundIndex = 0;
  2. تقوم بعمل حلقة for للمرور على اسطر DataGridView. وضمن هذه الحلقة تأخذ كل عنصر وتقارن قيمة معينة من هذا السطر مع القيمة المراد ادخالها. وفي حال العثور عليها تقوم بتغير قيمة المتغير found إلى true. وتحفظ قيمة عداد الfor ضمن متغير foundIndex
  3. وخارج أقواس حلقة for. يكون لديك المتغير found هو الذي يحدد ما اذا كان الصنف موجود مسبقاً والمتغير foundIndex هو الذي يحدد رقم الصنف ضمن DataGridView. فإذا كانت قيمة found==true. تقوم بالتعديل المناسب.
  4. إليك المثال البيسط:
           string name = txtName.Text;            double price = Double.Parse(txtPrice.Text);            bool found = false;            int foundIndex = 0;            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)            {                DataGridViewRow row = dataGridView1.Rows;                if (row.Cells[0].Value.ToString() == name)                {                    found = true;                    foundIndex = i;                    break;                }            }            if (!found)                dataGridView1.Rows.Add(name, price);            else            {                Double oldPrice = (Double)dataGridView1.Rows[foundIndex].Cells[1].Value;                dataGridView1.Rows[foundIndex].Cells[1].Value = oldPrice + price;            }

أسأل الله أن ينفعك هذا.

1

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#8

جزاكم الله الف خير جميعا

الله يسكنكم الجنه  احتلت المشكله تم الوصول الي المطلوب من خلا ل تعاونكم معي

تم تعديل هذه المشاركة بواسطة alroaini100 في 2 نوفمبر 2013 في 21:08

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