PDA

View Full Version : سوال: چجوری میتونم از محتویات گریدم که هر دفعه تغییر میکنه اطلاعات چاپ کنم؟؟



shahinfarasystem
دوشنبه 15 اسفند 1390, 10:30 صبح
سلام روز به خیر
یه برنامه ای دارم مینویسم توش یه همچین بخشی دارم
یعنی یه فرم جستجو هست که براساس هر کدوم از موردهایی که توی combo box هست میتونم table رو فیلتر کنم

http://eint.net76.net/photos/3a8381281635.jpghttp://eint.net76.net/photos/3a8381281635.jpg

برای اتصال به بانکم هم از این دو بخش کد استفاده کردم

1) برای پر کردن data Grid



2) public void FillDB()
3) {
4) SqlConnection OSqlConnection = new SqlConnection("Data Source=.\;Initial Catalog=OPS_101_901214;user id=sa;password=1234");

6) SqlDataAdapter OSqlDataAdapter = new SqlDataAdapter("Select * from Worker_Ids", OSqlConnection);

8) DataSet ODataSet = new DataSet();

10) OSqlConnection.Open();
11)
12) OSqlDataAdapter.Fill(ODataSet, "Worker_Ids");
13) OSqlConnection.Close();
14) MainForm OMainForm = new MainForm();
15)
16) WorkersIdsGrid.AutoGenerateColumns = true;
17) WorkersIdsGrid.DataSource = ODataSet;
18) WorkersIdsGrid.DataMember = "Worker_Ids";
19)
20) OSqlDataAdapter = null;
21) OSqlConnection = null;
22)
23) }





2) برای فیلترینک Data Grid که توی Text Change مربوط به کادر جستجو نوشتم





public void Search_The_Bank()
{
string StrSearchSql = string.Empty;

SqlConnection OSqlConnection = new SqlConnection("Data Source=.\;Initial Catalog=OPS_101_901214;user id=sa;password=1234");


switch (CmbxSortedBy.Text)
{
case "نام و نام خانوادگی":
{
StrSearchSql = "Select * from Worker_Ids where WI_FullName LIKE '%'+@TxtSearch+'%' ";
break;
}

case "شماره شناسنامه":
{
StrSearchSql = "Select * from Worker_Ids where WI_ShomareShenasname LIKE '%'+@TxtSearch+'%' ";
break;
}

case "کد ملی":
{
StrSearchSql = "Select * from Worker_Ids where WI_CodeMelii LIKE '%'+@TxtSearch+'%' ";
break;
}

case "تاریخ تولد":
{
StrSearchSql = "Select * from Worker_Ids where WI_BirthDate LIKE '%'+@TxtSearch+'%' ";
break;
}

case "وضعیت تاهل":
{
StrSearchSql = "Select * from Worker_Ids where WI_MaritalStatus LIKE '%'+@TxtSearch+'%' ";
break;
}


case "تلفن ثابت":
{
StrSearchSql = "Select * from Worker_Ids where WI_Tel LIKE '%'+@TxtSearch+'%' ";
break;
}

case "تلفن همراه":
{
StrSearchSql = "Select * from Worker_Ids where WI_Mobile LIKE '%'+@TxtSearch+'%' ";
break;
}

case "آدرس":
{
StrSearchSql = "Select * from Worker_Ids where WI_Address LIKE '%'+@TxtSearch+'%' ";
break;
}



default:
{
CmbxSortedBy.Text = "نام و نام خانوادگی";
MessageBox.Show("لطفا یکی از موارد معتبر راانتخاب نمایید", "");
StrSearchSql = "Select * from Worker_Ids where WI_FullName LIKE '%'+@TxtSearch+'%' ";
break;

}


}

SqlDataAdapter OSqlDataAdapter = new SqlDataAdapter(StrSearchSql, OSqlConnection);


OSqlDataAdapter.SelectCommand.Parameters.AddWithVa lue("@TxtSearch", TxtSearch.Text);


DataSet ODataSet = new DataSet();
OSqlConnection.Open();
OSqlDataAdapter.Fill(ODataSet, "Worker_Ids");
OSqlConnection.Close();

WorkersIdsGrid.AutoGenerateColumns = true;
WorkersIdsGrid.DataSource = ODataSet;
WorkersIdsGrid.DataMember = "Worker_Ids";

OSqlDataAdapter = null;
OSqlConnection = null;

}




میدونم کدم بهینه نیست اما الان میخوام بتونم فعلا نتیجه بگیرم

حالا سوالم
من میخوام با زدن اون دکمه چاپ محتویات جدول تمام اطلاعات فیلتر شده براساس کادر جستجوی بالای گرید رو بتونم توی یک report viewer ببینم و پرینت بگیرم... یه بار2 تا رکورده یه بار ممکنه 30 تا باشه


http://eint.net76.net/photos/3a8381281635.jpghttp://eint.net76.net/photos/3a8381281635.jpg


حالا من که با کد دارم به دیتا بیس وصل میشم چجوری میتونم با استفاده از Report Wizard اطلاعات مربوط به گرید رو هر دفعه توی Report viewer لود کنم؟؟؟


http://eint.net76.net/photos/1a59b315fc9a.jpg



اگه دقت کنید اینجا توی Choose report از من اسم یه گزارش رو میخواد که درست کردم
اما گزارشی که من با Report Wizard میسازم خودش data set و data source جداگانه برای خودش میسازه و با اون چیزی که من توی کد دستی درست کردم فرق میکنه......



http://eint.net76.net/photos/fd2308e9e752.jpg


نهایتا باید چی کار بکنم تا بتونم با زدن دکمه چاپ محتویات جدول تمام اطلاعات فیلتر شده براساس کادر جستجوی بالای گرید رو بتونم توی یک report viewer ببینم و پرینت بگیرم... یه بار2 تا رکورده یه بار ممکنه 30 تا باشه



http://eint.net76.net/photos/3a8381281635.jpg

shahinfarasystem
سه شنبه 16 اسفند 1390, 09:48 صبح
آقا کسی نیست اینجا یه جوابی به ما بده؟؟؟