PDA

View Full Version : مشکل گزارش



arash ahmadi
سه شنبه 06 شهریور 1386, 15:57 عصر
با سلام.

اگه بخواهیم بعد از اینکه اطلاعات یک جدول نمایش داده شد. اطلاعات جدول دوم که با جدول اول رابطه دارد نمایش داده شود. چه راهی پیشنهاد می دهید؟

منظورم اینه که در دیتل گزارش بتوان بعد از نمایش جدول اول , جدول دوم را هم نمایش بدهم.

mohammad272005
چهارشنبه 07 شهریور 1386, 03:21 صبح
DataSource جدول دوم رو باید فیلتر کنی. بسته به اینکه چی انتخاب کردی. مثلا اگه از BindingSource استفاده می‏کنی (حالت ایده‏آل) از خصوصیت Filter و یا اگه از DataTable استفاده می‏کنی از Select و الخ…

asgari2005
چهارشنبه 07 شهریور 1386, 13:43 عصر
فقط نیاز است توی Dataset مربوطه جداول با هم ارتباط داشته باشند
سپس شما 2 تا DataGrid روی فرم قرار دهید و خصوصیت DataSource رو تنظیم کنید

hdv212
چهارشنبه 07 شهریور 1386, 14:23 عصر
اگه بخواهیم بعد از اینکه اطلاعات یک جدول نمایش داده شد. اطلاعات جدول دوم که با جدول اول رابطه دارد نمایش داده شود. چه راهی پیشنهاد می دهید؟

منظورم اینه که در دیتل گزارش بتوان بعد از نمایش جدول اول , جدول دوم را هم نمایش بدهم.
باید بین جداولت ارتباط یا Relation برقرار کنی، این مثال رو ببین :

private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=northwind;User Id=sa;Password=asdasd;");
SqlCommand cmd = new SqlCommand("select * from customers", con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();

adapter.Fill(ds, "customers");

cmd.CommandText = "select * from orders";
adapter.Fill(ds, "orders");

DataColumn dcPK = ds.Tables["customers"].Columns["customerID"];
DataColumn dcFK = ds.Tables["orders"].Columns["customerID"];

DataRelation CustomersToOrders = new DataRelation("CustomersToOrders", dcPK, dcFK);
ds.Relations.Add(CustomersToOrders);

this.dataGridView1.DataSource = ds;
this.dataGridView1.DataMember = "customers";

this.dataGridView2.DataSource = ds;
this.dataGridView2.DataMember = "customers.CustomersToOrders";
}
مثال بالا دو جدول Customers و Orders از دیتابیس Northwind رو در دیتاست میخونه و بین اونها relation بر قرار میکنه. بعد datagridView اولی رو به جدول Master بایند میکنه و datagridView دومی رو به ارتباط اون دو جدول، حالا در runTime روی هر رکورد از دیتاگرید اولی کلیک کنی، رکوردهای مربوط به سفارشاتش که از جدول orders میاد توی دیتاگرید دومی نمایش داده میشه.

در ضمن این مقاله رو هم بخون، خیلی کمکت میکنه :
http://www.codeproject.com/csharp/aob.asp