PDA

View Full Version : سوال: مشکل با تعریف تیبل در قسمت سورس Crystal Report



MoRTeZa`
سه شنبه 10 شهریور 1394, 22:23 عصر
با سلام
بعد از ساختن ریپورت با کریستال ریپورت و تست اون ، جهت اینکه در فرم لود مربوط به crystal report viewer اتصال به دیتابیس رو میخوام برقرار کنم مشکل دارم
و مشکلم اینه که چون در ریپورت ساخته شده از دو تیبل استفاده میکنم موقعی که میخوام دستور select و مابقی دستورات رو بدم بلد نیستم و به مشکل خوردم
ممنون میشم اساتید کمکی بهم بکنند .

با تشکر
این کدی که من استفاده میکنم


private void frmreportdarbast_Load(object sender, EventArgs e)
{
// MessageBox.Show(x1);
SqlConnection cn = new SqlConnection("Data Source=c;Initial Catalog=db-DB;Integrated Security=True");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdapter = new SqlDataAdapter("SELECT * FROM tblusers where id ="+ x1 +
"UNION ALL SELECT * FROM TBLUNI where tid=" + x1, cn);
objDataAdapter.Fill(objDataSet);
DataTable dt = objDataSet.Tables["tblusers","TBLUNI"];
ReportDocument cr = new ReportDocument();
cr.Load(@"CrystalReport_darbast.rpt");
cr.VerifyDatabase();
cr.SetDataSource(objDataSet);
crystalReportViewer1.ReportSource = cr;
crystalReportViewer1.Show();

}


توضیح : در کد اصلی یک مقدار بعنوان ID , TID ساختم چون از این طریق دو تیبل به هم متصل هستن و از اونها واکشی اطلاعات صورت میگیره .
کدم مشکل داره امیدوارم یاری برسونید .
تشکر

yanni2
چهارشنبه 11 شهریور 1394, 12:50 عصر
دوست عزیز کریستال ریپورت با دو تا جدول کار نمیکنه تا اونجایی که میدونم

برای این کار بهتره شما در SQL یک کوئری یا stored procdure بسازی و دو تا جدول را اونجا select کنی
این روش کلیش هست

MoRTeZa`
پنج شنبه 12 شهریور 1394, 06:48 صبح
تشکر
میشه یه نمونه کد هم بذارید ؟
برای ساختش و هم فراخوانیش .

y_ziaee
چهارشنبه 18 شهریور 1394, 11:28 صبح
سلام
میشه در مورد اینکه میخواهی چکار کنی توضیح بدی؟

aminmousavi
پنج شنبه 19 شهریور 1394, 04:40 صبح
سلام دوست عزیز .
اگر مقدار دو جدول رو میخواهید درون کریستال ریپورت نمایش بدین ، میتونین از Relation خود CrystalReport استفاده کنید .
بعد با ایجاد Group میتونین مقادیر هر جدول رو مدیریت کنید .
از طریق ADO.net این روش رو امتحان نکردم اما از طریق .NET Object تجربه دارم (میتونید برای هر جدول یک کلاس بسازید و اون رو پاس بدید به CrystalReport)
برای استفاده .NET Object بر روی Datbase Fields کلیک سمت راست کنید و گزینه (درون کریستال ریپورت) و گزینه Databse Expert رو بزنید و بعد بریرد تو قسمت Project Data و بعدش توی .net Object