ورود

View Full Version : سوال: عدم نمایش اطلاعات در گزارش



amineashna
پنج شنبه 15 اسفند 1387, 14:56 عصر
سلام
من یک DataSet دارم که دارای یک Table است. این Table توسط یک Query از جدول های مختلف پایگاه داده مقدار می گیرد.
مثلا اطلاعات شخصی دانشجو را از جدول Student و اطلاعات مربوط به رشته تحصیلی را از جدول Field استخراج می کند. این دو جدول با یکدیگر ارتباط یک به چند دارند.
حالا میخوام این جدول را به عنوان DataSource برای فرم گزارشم قرار بدم و برای این کار قطعه کد زیر را نوشتم ولی هیچ اطلاعاتی در گزارش نمایش داده نمی شود.



public Form2()
{
myConnection = new SqlConnection("Server=(local);Database=universityDB;Integrated Security=True");
myCommand = myConnection.CreateCommand();
myDataSet = new DataSet();
myReport = new CrystalRep();

InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)
{
myAdaptor = new SqlDataAdapter("SELECT Student.StdFirstName, Student.StdLastName, Student.StdNO, Field.FieldName"
+ " FROM Student INNER JOIN Field ON Student.FieldID = Field.FieldID", myConnection);
myConnection.Open();
myAdaptor.Fill(myDataSet);
myConnection.Close();

myReport.SetDataSource(myDataSet);
myCrystalRepViewer.ReportSource = myReport;
myCrystalRepViewer.Refresh();

}


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

hasan_esfahan
پنج شنبه 15 اسفند 1387, 15:12 عصر
دوست عزیز شما نمی تونید به صورت مستقیم اطلاعات را نمایش بدهید

چون باید فیلد مورد نظر در کریستال باشه

http://barnamenevis.org/forum/showthread.php?t=148812

amineashna
پنج شنبه 15 اسفند 1387, 15:30 عصر
سلام
مقاله شما راخواندم.
کدی که من نوشته ام به شکل زیر است و اگر دقت کنید می بینید که یک DataSet که قبلا و در یک فرم دیگه مقدار گرفته به عنوان آرگومان برای نمایش در این فرم فرستاده میشه


public partial class Form2 : Form
{
private DataSet myDataSet;
private CrystalRep myReport;

public Form2(DataSet mDataSet)
{
myDataSet = new DataSet();
myReport = new CrystalRep();
myDataSet = mDataSet;

InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)
{
myReport.SetDataSource(myDataSet.Tables[0]);
myCrystalRepViewer.ReportSource = myReport;
myCrystalRepViewer.Refresh();

}
}


خروجی گزارش من به شکل زیر است (مشخصات فردی را نماش نمی ده و فقط نام رشته تحصیلی را نمایش میدهد.)
اگه کسی می دونه عیب کار کجاست لطفا راهنمایی کنه.
ممنون

hasan_esfahan
پنج شنبه 15 اسفند 1387, 18:56 عصر
دوست عزیز شما با این روش اصلا نمی تونید به جواب برسید اگه دوست داشتی یک سمپلی از پروژه خودت را بگذار تا کمکت کنیم وگرنه که هیچ

Mainar
یک شنبه 17 خرداد 1388, 16:09 عصر
اگه درست متوجه شده باشم که مشکلتون چیه راهی که خودم استفاده میکنم اینه:
اول توی database یک viwe میسازم و به روش wizard به اون viwe وصل میشم.

و بعد برای نمایش گزارش درCrystalReportViwer از این کد استفاده میکنم:

MyReport cr = new MyReport();
cr.DataSourceConnections[0].SetConnection(string server,string database,true);
crystalReportViewer1.ReportSource = cr;