PDA

View Full Version : استفاده از دستورات پیچیده sql در کریستال رپورت



hofa_7
چهارشنبه 08 آبان 1387, 17:44 عصر
سلام
چطور می تونم از دستورات پیچیده تر sql در سی شارپ استفاده کنم ، آموزش هایی که من پیدا کردم همگی از یه select ساده استفاده کردن ولی اگر بخواهیم چند تا جدول رو join کنیم و روی نتیجه با دستورات sql کار کنیم (به طور کل بخواهیم از قابلیت های sql توی کریستال رپورت استفاده کنیم باید چکار کنیم )
اگه می شه یه کتاب آموزش پیشرفته کریستال رپورت بزارید ممنون می شم
ممنون

مهدی رحیم زاده
چهارشنبه 08 آبان 1387, 20:34 عصر
سلام
چطور می تونم از دستورات پیچیده تر sql در سی شارپ استفاده کنم ، آموزش هایی که من پیدا کردم همگی از یه select ساده استفاده کردن ولی اگر بخواهیم چند تا جدول رو join کنیم و روی نتیجه با دستورات sql کار کنیم (به طور کل بخواهیم از قابلیت های sql توی کریستال رپورت استفاده کنیم باید چکار کنیم )
اگه می شه یه کتاب آموزش پیشرفته کریستال رپورت بزارید ممنون می شم
ممنون
میشه منظورتونو دقیق تر بگید
مثلا با یه مثال

پاييز بسيار زيباست
پنج شنبه 09 آبان 1387, 11:04 صبح
سلام به نظر من شما مي تونيد دستورات sql مورد نظر خودتونو هرچند پيچيده باشند رو توي veiw بسازيد بعد دستورات sql رو توي كد زير جاي select قرار بديد .


hotel1DataSet ds2 = new hotel1DataSet();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = con;
.......da.SelectCommand.CommandText = "SELECT )";
ReportDocument crp = new CrystalReport1();
totalrep fr = new totalrep();
da.Fill(ds2.Tables[0]);
fr.crystalReportViewer1.ReportSource = crp;
crp.SetDataSource(ds2.Tables[0]);
fr.Show(this);


شما بايد يك فرم بسازيد و يك crystalreport توي صفحه بذارين مثلا totalrep اسم اون صفحه مي تونه باشه. با آرزوي موفقيت

pars.engineer
پنج شنبه 09 آبان 1387, 19:47 عصر
سلام؛
لطفا از تگ كد استفاده كنيد:



hotel1DataSet ds2 = newhotel1DataSet();
da.SelectCommand = newSqlCommand();
da.SelectCommand.Connection = con;
.......da.SelectCommand.CommandText = "SELECT )";
ReportDocument crp = newCrystalReport1();
totalrep fr = newtotalrep();
da.Fill(ds2.Tables[0]);
fr.crystalReportViewer1.ReportSource = crp;
crp.SetDataSource(ds2.Tables[0]);
fr.Show(this);



من هم پيشنهاد مي كنم كه اگر به گزارش هاي دايناميك احتياج نداريد از View ها استفاده كنيد.
در ضمن پيچيده ترين دستورات SQL را نيز مي توان در محيط #C اجرا نمود و به كنترل Crystal Report Viewer فرستاد.
مثل:



query =

"SELECT dbo.tblYarnCode.YarnType, dbo.tblYarnCode.YarnColorCode, dbo.tblYarnCode.YarnColorName, dbo.tblYarnStore.VariableStore," +


" dbo.TotalNeededYarn.Expr1 AS NeededYarn, dbo.OrderedYarns.Expr1 AS OrderedYarn, dbo.OrderedYarns.Expr2 AS HasbeenSent," +

" dbo.EquivalentYarnStore.SumTotal" +

" FROM dbo.tblYarnCode INNER JOIN" +
" dbo.tblYarnStore ON dbo.tblYarnCode.YarnID = dbo.tblYarnStore.YarnID LEFT OUTER JOIN" +
" dbo.EquivalentYarnStore ON dbo.tblYarnStore.YarnID = dbo.EquivalentYarnStore.CompanyYarn LEFT OUTER JOIN" +
" dbo.TotalNeededYarn ON dbo.tblYarnStore.YarnID = dbo.TotalNeededYarn.YarnID FULL OUTER JOIN" +
" dbo.OrderedYarns ON dbo.tblYarnStore.YarnID = dbo.OrderedYarns.YarnID" +
" WHERE (dbo.tblYarnStore.LastStore = 1) AND ((dbo.tblYarnStore.VariableStore - dbo.TotalNeededYarn.Expr1 < 0) OR (dbo.tblYarnStore.VariableStore<0))";







لازم به ذكر است خود كوئري بالا نيز از چند View تشكيل شده است.

موفق باشيد.