PDA

View Full Version : سوال: جمع ستون در DataGrid



almas538
دوشنبه 21 دی 1388, 09:58 صبح
با سلام خدمت دوستان، مي خواستم بدونم چطور مي شه در يك DataGrid جمع يك ستون يا ساير توابع رو در زير همون ستون نمايش داد و يا بتونم اونرو در يك فيلد در فرم اصلي نمايش بدم؟

AliRezaPro
دوشنبه 21 دی 1388, 11:35 صبح
جمع یک ستون از دیتا گرید
شما مطمئن هستنید که سرچ میکنید؟
private void Total()
{
double tot = 0;
int i = 0;
for (i = 0; i < dgv_1.Rows.Count; i++)
{
tot = tot + Convert.ToDouble(dgv_1.Rows[i].Cells["col_Name"].Value);

DataGridViewRowHeaderCell h = new DataGridViewRowHeaderCell();
h.Value = (i + 1).ToString();
dgv_Article.Rows[i].HeaderCell = h;

}

lbl_Tot.Text = tot > 0 ? String.Format("{0:0,0}", tot) : "0";

}

almas538
دوشنبه 21 دی 1388, 13:31 عصر
جمع یک ستون از دیتا گرید
شما مطمئن هستنید که سرچ میکنید؟
private void Total()
{
double tot = 0;
int i = 0;
for (i = 0; i < dgv_1.Rows.Count; i++)
{
tot = tot + Convert.ToDouble(dgv_1.Rows[i].Cells["col_Name"].Value);

DataGridViewRowHeaderCell h = new DataGridViewRowHeaderCell();
h.Value = (i + 1).ToString();
dgv_Article.Rows[i].HeaderCell = h;

}

lbl_Tot.Text = tot > 0 ? String.Format("{0:0,0}", tot) : "0";

}
با تشكر از راهنمايي شما، ولي كد ارائه شده عمل نمي كنه، منظور شما از dgv_Article‌چيه؟

slashslash2009
دوشنبه 21 دی 1388, 13:56 عصر
یک مقداری کدشون گیج کننده هست ازین استفاده کن البته همون بالایی هستا :

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
sum += double.Parse(dataGridView1.Rows[i].Cells[7].Value.ToString());

}
یک لیبل بزار زیر گرید ویوت و مقدار sum رو بهش بده ولی اگر میخوای که در خود گرید ویو نشون بده یک مقداری پیچیده میشه. باید به گرید ویوت یک سطر اضافه کنی

ramin_ramin
دوشنبه 21 دی 1388, 14:12 عصر
من فکر میکنم منظور دوستمون اینه که بجای اینکه نتیجه رو توی لیبل نمایش بدیم توی همون آخرین سلول همان ستون گرید نتیجه رو نمایش بدید مثل کامپوننت جانوس

slashslash2009
دوشنبه 21 دی 1388, 14:33 عصر
منظورشون همینه
میتونی هر دفعه یک سطر وارد کنی به گرید ویوت و مقدار جدید رو درش بزاری ولی باید هر دفعه هم همون سطرو پاکش کنی که قره قات نشه شدنی هست

in_the_rain
شنبه 26 دی 1388, 11:05 صبح
با سلام به دوستان عزیز
من بعد از اینکه این تاپیک رو خوندم تقریبا همین مشکل رو داشتم اما میخواستم وقتی کاربر تایپ میکنه مثل اکسل مقدار در همون لحظه عوض باشه با استفاده از متد cellvaluechange دیتا گرید اومدم و توش استفاده کردم جمع رو از طریق تبدیل نوع انجام دادم اما بعد از کلی کار که جواب هم گرفتم دیدم موقعی که داریم یک ستون توی دیتا تیبل تعریف میکنیم که به دیتا تیبل اضافه کنیم یه مورد هست که میشه توش عبارت ریاضی تعریف کرد خیلی جالبه بگردی تو msdn حتما پیداش میکنی تو دیتاتیبل موفق باشی واسه من که حل شد خواستی بگو تا کد رو بزارم

elahe1364
شنبه 28 فروردین 1389, 11:57 صبح
منم این مشکل رو داشتم و به این شکل حل شد.
گذاشتم که اگر کسی نیاز داشت استفاده کنه.

اگر گرید شما به دیتا تیبل متصل هست با این کد میشه جمع یک ستون را حساب کرد


Sum = dt.Compute("sum(column1)", [filter expersion]).ToString();