PDA

View Full Version : کد پرینت در کریستال ریپورت



mhkpnu
شنبه 20 اسفند 1390, 16:28 عصر
با کریستال ریپورت یه فرم رو طراحی کردم.که چندتا از فیلدهای پایگاه داده درش هست
الان می خوام این رو چاپ کنم،البته اول باید یه سلکت هم از پایگاه داده کنم و بعد چاپ کنم(نیازی به نمایش ندارم و مستقیم با زدن دکمه،باید چاپ بشه)

دستورش رو نمیدونم
ممنون میشم کدش رو بگید

Mahmoud Zaad
شنبه 20 اسفند 1390, 17:37 عصر
سلام


OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DB.mdb");
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM tb1 ORDER BY id ASC", con);
DataSet ds = new DataSet();
DataTable tb1 = new DataTable();
da.Fill(ds, "tb1");
CrystalReport1 myrpt = new CrystalReport1();
myrpt.SetDataSource(ds);
//baraye namayesh dar crystalReportViewer
//crystalReportViewer1.ReportSource = myrpt;
//baraye chap bedune namayesh
myrpt.PrintToPrinter(1, true, 1, 100);

mhkpnu
شنبه 20 اسفند 1390, 20:53 عصر
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
Novin_Pendar;Initial Catalog=parking;Integrated Security=True\\parking.mdb
");
myrpt.OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM park ORDER BY plknum ASC", con);
DataSet ds = new DataSet();
DataTable park = new DataTable();
da.Fill(ds, "park");
CrystalReport1 myrpt = new CrystalReport1();
myrpt.SetDataSource(ds);
PrintToPrinter(1, true, 1, 100);
سلام
ممنون از جوابتون
من کد بالا رو نوشتم
اسم پایگاه داده:parking
جدول:park
کلیدplknum

خط 5 این برنامه رو اشکال میگیره
da.Fill(ds, "park");
وقتی این خط رو غیر فعال میکنم از قالب کریستال ریپورت(بدونه داده های پایگاه داده) پرینت میگیره

برای سلکت براساس plknum چه کدی باید بنویسیم؟
منظورم معادل دستور زیر برای کریستال ریبورت هست


comm1.CommandText =


"select plkpass from park where plknum=@plknum ";
comm1.Parameters.AddWithValue(
"@plknum", plknum);

شرمنده اگر سولات مبتدی میپرسم،کرستال ریپورت رو تا الان کار نکردم
باید به هم ریختگی کدها معذرت می خوام.هرکاری کردم نشد بزارم داخل تگ.

Mahmoud Zaad
یک شنبه 21 اسفند 1390, 10:04 صبح
این کدی که من نوشتم برای اکسس هست، بنابراین اولا شما باید همه OleDB ها به Sql تبدیل کنید و البته فضای نام مربوطه رو هم اضافه کنید ثانیا باید کانکشن استرینگ رو با توجه به سیستم خودتون تغییر بدید. اسم جدول ها رو هم که باید با توجه به دیتابیس خودتون بنویسید. بقیه کدها رو هم شبیه به کدی که نوشتم، بنویسید.

mhkpnu
دوشنبه 22 اسفند 1390, 08:07 صبح
خیلی ممنون
فقط یه مشکل دیگه دارم
این که چه جوری پارامتری که میخوام بر اساس اون سلکت انجام بشه رو به کد بدم
کد زیر رو نوشتم


SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM park where plknum=@plknum ", con);
حالا این @plknum
چطور باید بهش مقدار بدم

Mahmoud Zaad
دوشنبه 22 اسفند 1390, 10:07 صبح
به صورت زیر:


da.SelectCommand.Parameters.AddWithValue("@plknum", txtPelak.Text);

اگه پارامترهایی دیگه ای هم داشته باشی به همین صورت می تونی مقدار دهی کنی.

mhkpnu
دوشنبه 22 اسفند 1390, 22:46 عصر
واقعا ممنونم از این که سوالاتم رو پاسخ دادید
آرزومندم در هر لحظه از زندگیتون شاد و باخدا باشید
تشکر