نیما حتمی
چهارشنبه 18 خرداد 1390, 09:41 صبح
با سلام
من برنامه حسابداری نوشتم که کاربر در آن سند می زنه به تاریخ روز.حالا وقتی کاربر سند زد یک شماره سند براش ایجاد میشه که این شماره رو سیستم تولید میکنه و دست کاربر نیست.در مواردی پیش میاد که به کاربر ثبت سند، سندهای 10 رو یا .... قبل رو میدن کاربر باید اسناد رو به همون تاریخی که اسناد هستن بزنه یعنی اگر اسناد 10 رو قبل رو میدن باید به تاریخ 10 روز قبل این اسناد رو بزنه.حالا وقتی کاربر میادو این کارو میکنه شماره سندی که زده میشه ادامه آخرین شماره سند زده شده است(مثلا فرض کنید تا امروز تا 100 رفته حالا امروز اسناد 10 رو قبل رو میاد می زنه میشه 101و.....)در این سیستم شماره اسناد باید براساس تاریخ مرتب بشن (تاریخ عقبتر شماره سند کوچکتر) من برای این کار فرمی طراحی کردم که میاد این کارو میکنه ولی مشکل اینجاست که به ازای هر سطر که میخواد مرتب کنه باید یک بار دکمه مرتب سازی رو بزنه کاربر اینم کدم:
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
if ((Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value) > Convert.ToInt32(dataGridView1.Rows[i + 1].Cells[1].Value)) || (Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value.ToString().Replace("/", "")) > Convert.ToInt32(dataGridView1.Rows[i + 1].Cells[3].Value.ToString().Replace("/", ""))))
{
int temp = Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value);
dataGridView1.Rows[i].Cells[1].Value = Convert.ToInt32(dataGridView1.Rows[i + 1].Cells[1].Value);
dataGridView1.Rows[i + 1].Cells[1].Value = temp;
}
}
for (int j = 0; j < dataGridView1.Rows.Count; j++)
{
SqlDataAdapter u = new SqlDataAdapter("update EmissionDocView set NumReceipt='" + dataGridView1.Rows[j].Cells[1].Value + "' where AtfDoc='" + dataGridView1.Rows[j].Cells[2].Value + "'and DateDoc='" + dataGridView1.Rows[j].Cells[3].Value + "'", connect);
DataTable u1 = new DataTable();
u.Fill(u1);
}
دوستان کمک کنید که خیلی گیرم
ممنونم
من برنامه حسابداری نوشتم که کاربر در آن سند می زنه به تاریخ روز.حالا وقتی کاربر سند زد یک شماره سند براش ایجاد میشه که این شماره رو سیستم تولید میکنه و دست کاربر نیست.در مواردی پیش میاد که به کاربر ثبت سند، سندهای 10 رو یا .... قبل رو میدن کاربر باید اسناد رو به همون تاریخی که اسناد هستن بزنه یعنی اگر اسناد 10 رو قبل رو میدن باید به تاریخ 10 روز قبل این اسناد رو بزنه.حالا وقتی کاربر میادو این کارو میکنه شماره سندی که زده میشه ادامه آخرین شماره سند زده شده است(مثلا فرض کنید تا امروز تا 100 رفته حالا امروز اسناد 10 رو قبل رو میاد می زنه میشه 101و.....)در این سیستم شماره اسناد باید براساس تاریخ مرتب بشن (تاریخ عقبتر شماره سند کوچکتر) من برای این کار فرمی طراحی کردم که میاد این کارو میکنه ولی مشکل اینجاست که به ازای هر سطر که میخواد مرتب کنه باید یک بار دکمه مرتب سازی رو بزنه کاربر اینم کدم:
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
if ((Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value) > Convert.ToInt32(dataGridView1.Rows[i + 1].Cells[1].Value)) || (Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value.ToString().Replace("/", "")) > Convert.ToInt32(dataGridView1.Rows[i + 1].Cells[3].Value.ToString().Replace("/", ""))))
{
int temp = Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value);
dataGridView1.Rows[i].Cells[1].Value = Convert.ToInt32(dataGridView1.Rows[i + 1].Cells[1].Value);
dataGridView1.Rows[i + 1].Cells[1].Value = temp;
}
}
for (int j = 0; j < dataGridView1.Rows.Count; j++)
{
SqlDataAdapter u = new SqlDataAdapter("update EmissionDocView set NumReceipt='" + dataGridView1.Rows[j].Cells[1].Value + "' where AtfDoc='" + dataGridView1.Rows[j].Cells[2].Value + "'and DateDoc='" + dataGridView1.Rows[j].Cells[3].Value + "'", connect);
DataTable u1 = new DataTable();
u.Fill(u1);
}
دوستان کمک کنید که خیلی گیرم
ممنونم