PDA

View Full Version : انجام محاسبات در DataGridView



PERFORIN
جمعه 17 آبان 1387, 11:33 صبح
سلام
کسی میدونه چه جوری میشه در Data Grade view محاسبات را انجام داد مثلا برای صدور فاکتور وقتی در ستون (تعداد) و (قیمت واحد) اطلاعات وارد میشه ستون قیمت کل به طور اتوماتیک پر بشه یا با اضافه شدن هر ردیف جدید فیلد ردیف به طور اتماتیک شماره گذاری بشه؟؟؟

SMRAH1
جمعه 17 آبان 1387, 11:41 صبح
شما باید این محاسبات رو روی DataSet یا به عبارت بهتر در دستور SQL خودتون انجام بدید!
در غیر این صورت دستور و راه کار استانداری برای این مطلب نیست (یا حداقل من نمی دانم) و باید احتمالا فیلد های مود نظرتون رو توی برنامه ای که مینویسید،پیمایش و عملیات ریاضی مربوط رو انجام بدید.

PERFORIN
جمعه 17 آبان 1387, 13:30 عصر
شما باید این محاسبات رو روی DataSet یا به عبارت بهتر در دستور SQL خودتون انجام بدید!
در غیر این صورت دستور و راه کار استانداری برای این مطلب نیست (یا حداقل من نمی دانم) و باید احتمالا فیلد های مود نظرتون رو توی برنامه ای که مینویسید،پیمایش و عملیات ریاضی مربوط رو انجام بدید.


میشه یه خورده بیشتر توضیح بدین مثلا توی کدوم قسمت از sql باید این محاسبات را انجام بدم تا توی برنامه نمایش داده بشه مثلا چه جوری با اضافه شدن یک ردیف شماره ردیف وارد بشه

ممنون

pars.engineer
جمعه 17 آبان 1387, 15:01 عصر
میشه یه خورده بیشتر توضیح بدین مثلا توی کدوم قسمت از sql باید این محاسبات را انجام بدم تا توی برنامه نمایش داده


مثلا درون دستور SELECT يك فيلد محاسباتي براي مبلغ كل ايجاد نماييد. مثل:



SELECT Count,Price,(Cuont * Price) AS TotalPrice FROM yourtable





چه جوری با اضافه شدن یک ردیف شماره ردیف وارد بشه

به لينك زير پست 314 نگاهي بياندازيد
http://www.barnamenevis.org/forum/showthread.php?t=95001&page=32

موفق باشيد

PERFORIN
جمعه 17 آبان 1387, 16:24 عصر
مثلا درون دستور SELECT يك فيلد محاسباتي براي مبلغ كل ايجاد نماييد. مثل:



SELECT Count,Price,(Cuont * Price) AS TotalPrice FROM yourtable




به لينك زير پست 314 نگاهي بياندازيد
http://www.barnamenevis.org/forum/showthread.php?t=95001&page=32

موفق باشيد


این لینکی که معرفی کردین یه مشکل داره و اونم اینه که اعدادا به صورت عکس نمایش میده و اعداد حقیقی نیست که بتونم اونا را datagrade ذخیره کنم

در مورد اون دستور select هم باید بگم من توی جدول sql یک فیلد با نام Totalprice دارم که می خوام مبلغ کل توش به طور اتوماتیک ذخیره بشه ولی با دستور شما فقط یک فیلد مجازی ساخته میشه
ممنون میشم راهنماییم کنید

pars.engineer
جمعه 17 آبان 1387, 18:53 عصر
این لینکی که معرفی کردین یه مشکل داره و اونم اینه که اعدادا به صورت عکس نمایش میده و اعداد حقیقی نیست که بتونم اونا را datagrade ذخیره کنم

خب شما مي توانيد يك فيلد در ديتا بيس داشته باشيد كه شماره رديف را نگهداري كند.
و يا اطلاعات را درون يك DataTable بريزيد و سپس يك Datatable ديگر ايجاد نماييد و در يك حلقه براي تك تك سطر هاي DataTable اولي در DataTable دومي سطر ايجاد نماييد. يك چيزي مثل كدي كه در زير نوشتم.(البته بنا به نيازتون مي تواند تغيير كند)




dataTable = new DataTable();
dtTemp = new DataTable("YpurTable");
dtTemp.Columns.Add("Num");
dtTemp.Columns.Add("Name");
dtTemp.Columns.Add("Count");
dtTemp.Columns.Add("Price");

objDataAdapter = new SqlDataAdapter("SELECT * FROM test “,objConnection);
dataTable.Clear();
dtTemp.Clear();
objDataAdapter.Fill(dataTable);

for (int i = 0; i < dataTable.Rows.Count; ++i)
{
DataRow newRow = dtTemp.NewRow();
newRow[0] = i+1;
newRow[1] = dataTable.Rows[i][0].ToString();
newRow[2] = dataTable.Rows[i][1].ToString();
newRow[3] = dataTable.Rows[i][2].ToString();
dtTemp.Rows.Add(newRow);
}




در مورد اون دستور select هم باید بگم من توی جدول sql یک فیلد با نام Totalprice دارم که می خوام مبلغ کل توش به طور اتوماتیک ذخیره بشه ولی با دستور شما فقط یک فیلد مجازی ساخته میشه


خب باز هم بايد در ديتابيس يك فيلد بسازيد كه TotalPrice را نگهداري كند و زماني كه يك ركورد را INSERT مي كنيد فيلد مورد نظر را هم مقدار دهي نماييد.

موفق باشيد.