PDA

View Full Version : سوال: کارهای خاص با گرید ویو



amin_rezaee
پنج شنبه 05 شهریور 1388, 00:08 صبح
چجوری میشه یه ستون از گرید ویو را هنگام اجرای برنامه مقداردهی کرد.واینکه می خوام یه ستون دیگه از گرید ویو،با استفاده از مقدار ستون قبلی که وارد کردیم خودش مقدار بگیره و در دیتابیس ثبت بشه.
ممنون می شم اگه راهنمایی کنید،یا یه کامپوننت واسه این کار بهم معرفی کنید

#aliyari_C
پنج شنبه 05 شهریور 1388, 00:24 صبح
سلام
بهت سفارش می کنم از کامپونیت Janus System WinForms استفاده کنی چون دست بیشتر باز می زاره و خودش Sample و هم Help داره .اما متاسفانه سیاتش فیلتر می باشد.
موفق باشی

ماهی لب بسته را اندیشه قلاب نیست

amin_rezaee
پنج شنبه 05 شهریور 1388, 00:56 صبح
ممنون،ولی
کامپوننت Janus System WinForms رو از کدوم سایت بگیرم؟

Mohsen229266
پنج شنبه 05 شهریور 1388, 08:44 صبح
سلام
بهت سفارش می کنم از کامپونیت Janus System WinForms استفاده کنی چون دست بیشتر باز می زاره و خودش Sample و هم Help داره .اما متاسفانه سیاتش فیلتر می باشد.
موفق باشی

سلام
دوست عزیز چه کاری رو نمیشه با دیتاگرید استاندارد داتنت انجام داد؟



چجوری میشه یه ستون از گرید ویو را هنگام اجرای برنامه مقداردهی کرد.واینکه می خوام یه ستون دیگه از گرید ویو،با استفاده از مقدار ستون قبلی که وارد کردیم خودش مقدار بگیره و در دیتابیس ثبت بشه.
ممنون می شم اگه راهنمایی کنید،یا یه کامپوننت واسه این کار بهم معرفی کنید

دوست من منظورتون از ستون دیتاگرید تمامی ستون هاشه یا یک سلول از ستونه؟
برای ثبت در دیتابیسم میتونید یک Query براش بنویسید

amin_rezaee
پنج شنبه 05 شهریور 1388, 14:19 عصر
دوست من منظورتون از ستون دیتاگرید تمامی ستون هاشه یا یک سلول از ستونه؟
برای ثبت در دیتابیسم میتونید یک Query براش بنویسید

یه ستون دیگه!یعنی اینکه یه سلول از هر سطری رو موقع اجرای برنامه کاربر وارد کنه و یه سلول دیگه از همون سطر،با توجه به مقدار سلول قبلی که کاربر وارد کرده،خودش مقدار بگیره.مثلا 20% سلول قبلی بشه.
درباره ی Query مثالی ندارید؟میشه بیشتر توضیح بدید؟

Mohsen229266
پنج شنبه 05 شهریور 1388, 18:03 عصر
دوست من ،من متوجه این 20% نشدم ولی اگه بخواید هنگام تایپ در یک سلول همزمان در سلول بعدی هم نوشته بشه میتونید ایونت textChange براش بنویسید



private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.TextChanged += MyDataGridTextChanged;
}
private void MyDataGridTextChanged(object sender, EventArgs e)
{
dataGridView1[1,dataGridView1.CurrentRow.Index].Value = (Control)sender).Text;

}

amin_rezaee
جمعه 06 شهریور 1388, 15:07 عصر
دوست من ،من متوجه این 20% نشدم ولی اگه بخواید هنگام تایپ در یک سلول همزمان در سلول بعدی هم نوشته بشه میتونید ایونت textChange براش بنویسید



private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.TextChanged += MyDataGridTextChanged;
}
private void MyDataGridTextChanged(object sender, EventArgs e)
{
dataGridView1[1,dataGridView1.CurrentRow.Index].Value = (Control)sender).Text;

}


بعد ازینکه یه رکورد دیگه به گرید ویو اضافه می کنم،کارهای قبلی که کردم از بین می ره.یعنی به گرید ویو اضافه نمیشه.:گریه:

Mohsen229266
شنبه 07 شهریور 1388, 08:43 صبح
بعد ازینکه یه رکورد دیگه به گرید ویو اضافه می کنم،کارهای قبلی که کردم از بین می ره.یعنی به گرید ویو اضافه نمیشه.:گریه:
دوست من حتما یه جایی از کدتون مشکل داره لطفا کد یا نمونه برنامتونو بزارید

amin_rezaee
شنبه 07 شهریور 1388, 15:34 عصر
دوست من حتما یه جایی از کدتون مشکل داره لطفا کد یا نمونه برنامتونو بزارید



private void listBox_name_MouseDoubleClick(object sender, MouseEventArgs e)
{
string insert_string = "insert into result(row,drog,price) values (@row,@drog,@price)";
con.Open();
SqlCommand cmd = new SqlCommand(insert_string, con);
cmd.Parameters.AddWithValue("@row", row_result);
string drog_string;
cmd.Parameters.AddWithValue("@drog", listBox_name.SelectedItem.ToString().TrimEnd().Tri mStart().Trim());
cmd.Parameters.AddWithValue("@price", int.Parse(listBox_price.SelectedItem.ToString()));
try
{
cmd.ExecuteNonQuery();
row_result++;
}
catch
{
messageBox.show("خطا");
}
con.Close();
main_Load(sender, e);

}

برنامه ی من یه داروخونه هست.
چند تا ستون دیگه ی گرید ویو رو خودم باید مقدار بدم
تعداد دارو رو باید تو یه سلول خودم وارد کنم.و اینکه سلول بعدیش باید خودش مقدار بگیره(تعداد * قیمت واحد )

Mohsen229266
شنبه 07 شهریور 1388, 22:39 عصر
دوست من من که متوجه سوال تون نشدم شما سوالتون در مورد دیتا گریده پس ربطش به لیست باکس چیه؟
در این موردی که گفتید (تعداد * قیمت واحد )دو راه داره هم میشه هنگام ورود قیمت یا تعداد قیمت کل را در سلول مربوطش نوشت وهم میشه وقتی از حالت ویرایش قیمت یا تعداد خارج شدید قیمت کل را مقدار دهی کنید که همون(تعداد * قیمت واحد )هست وبعد با یک Query مثل کد خودتون (ولی ربطشو به لیست باکس نمیدونم) رکورد ها رو در دیتابیس ذخیره کنید اگه مشکلی بود بگو یه نمونه برنامه بزارم

amin_rezaee
یک شنبه 08 شهریور 1388, 23:50 عصر
دوست من من که متوجه سوال تون نشدم شما سوالتون در مورد دیتا گریده پس ربطش به لیست باکس چیه؟
در این موردی که گفتید (تعداد * قیمت واحد )دو راه داره هم میشه هنگام ورود قیمت یا تعداد قیمت کل را در سلول مربوطش نوشت وهم میشه وقتی از حالت ویرایش قیمت یا تعداد خارج شدید قیمت کل را مقدار دهی کنید که همون(تعداد * قیمت واحد )هست وبعد با یک Query مثل کد خودتون (ولی ربطشو به لیست باکس نمیدونم) رکورد ها رو در دیتابیس ذخیره کنید اگه مشکلی بود بگو یه نمونه برنامه بزارم

اگه یه مثال بذارید ممنون می شم.فقط یادتون باشه تعداد داروهایی که هر کاربر میخواد با کاربر دیگه فرق داره.یعنی تعدادش معین نیست و موقع فروش مشخص میشه.واینکه برای هر قلم دارو تعداد باید مشخص بشه و بعدش قیمت کل محاسبه بشه.دیگه اینکه چون تعداد قلم داروها حداکثری نداره،واسه همین من از گرید ویو استفاده کردم.دارو از دیتابیس وارد گرید ویو میشه و بعد باید خودمون تعداد وقیمت کلش را وارد کنیم.
برنامه ی فروش یه داروخونست دیگه.....

Mohsen229266
دوشنبه 16 شهریور 1388, 20:32 عصر
اینم یه نمونه برنامه البته به دیتابیس وصلش نکردم

web_user
جمعه 28 بهمن 1390, 20:56 عصر
سلام دوست عزیز:
چطور میشه سلول های یک دیتا گرید رو روش محاسبات ریاضی انجام داد:
مثال: من می خواهم داده های سلول 12 تقسیم بر سلول 7 بشه و ضرب در 100 بشه و در سلول 11 ذخیره بشه البته این عمل برای هر سطر اجرا بشه تا داده های دیتا گرید تموم بشه؟!

مرسی.

اوبالیت به بو
شنبه 29 بهمن 1390, 10:52 صبح
مثال: من می خواهم داده های سلول 12 تقسیم بر سلول 7 بشه و ضرب در 100 بشه و در سلول 11 ذخیره بشه البته این عمل برای هر سطر اجرا بشه تا داده های دیتا گرید تموم بشه؟!


درود
می تونید در هنگام Select این کار رو انجام بدید:


Select
[ID],
[Price],
[Discount],
[Quantity]
([Price] * [Quantity) AS 'Sum'

FROM Order

و بعد که اتصال صورت گرفت ستونی به نام SUM در گرید اضافه خواهد شد.

راه دوم: از یک foreach استفاده کنید:


DataGrid1.Columns.Add(col);

foreach(datagridviewrow row in DataGrid1.Rows)
{
Price * Quantity) = (row.Cells[Sum].Value.ToString())
}

web_user
شنبه 29 بهمن 1390, 19:15 عصر
سلام دوست عزیز کدی که من میخوام برای همه ردیف های دیتا گرید لحاظ بشه اینه، منتها این کدی که من نوشتم فقط برای ردیفی که در حال انتخاب باشه لحاظ میشه، حالا شما لطف کنید و برام ویرایشش کنید. مرسی دوست عزیز.


for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.CurrentRow.Cells[9].Value = Convert.ToString(Convert.ToDouble(dataGridView1.Cu rrentRow.Cells[7].Value) / (Convert.ToDouble(dataGridView1.CurrentRow.Cells[8].Value)) * 100);
dataGridView1.CurrentRow.Cells[11].Value = Convert.ToString(Convert.ToDouble(txtp.Text) * (Convert.ToDouble(dataGridView1.CurrentRow.Cells[9].Value)) / 100);

}

Mahdad999
شنبه 29 بهمن 1390, 21:33 عصر
سلام دوست عزیز کدی که من میخوام برای همه ردیف های دیتا گرید لحاظ بشه اینه، منتها این کدی که من نوشتم فقط برای ردیفی که در حال انتخاب باشه لحاظ میشه، حالا شما لطف کنید و برام ویرایشش کنید. مرسی دوست عزیز.


for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.CurrentRow.Cells[9].Value = Convert.ToString(Convert.ToDouble(dataGridView1.Cu rrentRow.Cells[7].Value) / (Convert.ToDouble(dataGridView1.CurrentRow.Cells[8].Value)) * 100);
dataGridView1.CurrentRow.Cells[11].Value = Convert.ToString(Convert.ToDouble(txtp.Text) * (Convert.ToDouble(dataGridView1.CurrentRow.Cells[9].Value)) / 100);

}
سلام،
کدی رو که میخواید روی تموم ردیف ها اعمال بشه رو توی حلقه زیر بذارید:

foreach(datagridviewrow row in DataGrid1.Rows)
{
row.cells[9].value = ...
}

web_user
شنبه 29 بهمن 1390, 22:19 عصر
دوست عزیز دستت درد نکنه دقیقاً همون چیزیه که من نیاز داشتم و جواب داد. مرسی و موفق باشی!!!

web_user
جمعه 05 اسفند 1390, 22:57 عصر
سلام دوستان:
یه سوال: یه دیتا گرید داریم که توش یه سری قیمت ها هستن حالا من میخوام جمع این قیمت ها را بدست بیارم و تو یه تکست باکس ذخیره کنم طوری که با هر بار جستجو میشه جمع قیمت ها هم متناسب با آن کم یا زیاد بشه (اینم بگم نمی خوام از بانک اطلاعاتی استفاده کنم)؟
و یه جای دیگه هم میخوام کانت نتیجه جستجو رو هم داشته باشم. (مثلاً تعداد ردیف های نتیجه جستجو)