مشاهده نسخه کامل
: ساختن گزارش با کریستال ریپورت (با استفاده از دیتاسورس) در #C؟
Macdiano
02-05-2011, 12:30
سلام
من گزارش ساختن از طریق کریستال ریپورت رو تقریبا میدونم یعنی ارتباط خود کریستال با Sql
ولی میخوام از طریق net. دیتاست ایجاد کنم و اون رو لینک کنم به گزارشم در کریستال ریپورت
اگر کسی اطلاع داره خواهشا کمک کنه
ممنون
neda_traveler
02-05-2011, 21:47
شما بايد يك ديتا ست درست كني و از طرفي هم با crystal rport viewr اطلاعلت پاس بديد
چقدرشو ميدونيد؟
هر چقدر ميدونيد بگيد تا من بقيشو ادامه بدم
Macdiano
03-05-2011, 08:17
در پاس دادن اطلاعات مشکل دارم
ممنون میشم اگر پاسخ بدید
neda_traveler
03-05-2011, 21:33
SqlConnection con = new SqlConnection("server=.;database=student;integrated security=true;");
SqlDataAdapter dap = new SqlDataAdapter("select * from student" , con);
DatasetTarazKol dst = new DatasetTarazKol();
CrystalTarazKol orpt = new CrystalTarazKol();
con.Open();
dap.Fill(dst, "Tarazkol");
con.Close();
orpt.SetDataSource(dst);
crystalReportViewer1.ReportSource = orpt;
شما بايد در يك فرم كه ايجاد كرديد يك crystal report vier بذاريد و در form load اينها رو بذاري
بعد يك dataset درست كني و مطابق با فيلدهايي كه در select ميخواي متناظر درست كني
DatasetTarazKol dst = new DatasetTarazKol();
DatasetTarazKolنام ديتاست هست
dap.Fill(dst, "Tarazkol");
اينجا هم به جاي taraz kol نام ديتا تيبل كه درون ديتاست درست كرديد بگذاريد
و يك كريستال ريپورت هم كه طراحي مي كنيد
هر جا مشكل داشتيد بگيد
aliaghaaaaa
04-05-2011, 08:38
سلام.
لطفا اگه میشه از ابتدا یه گزارش گیری توسط کریستال رو آموزش بدین تا هم من و هم بقیه که بلد نیستن یاد بگیریم.
ممنون.
neda_traveler
04-05-2011, 21:14
ابتدا روي فرمتون از قسمت toolbar يك crystal report viewr بذاريد
حالا فرض كنيد ما مي خوايم اطلاعات نام نام خانوادگي و ادرس يك دانش اموز پاس بديم .و چاپ كنيم
پس در همين form load اين فرممون مي نويسيم
SqlDataAdapter dap = new SqlDataAdapter("select name,family ,adress from student" , con);
Datasetst dst = new Datasetst();نام ديتاستي كه ساخته ايم و من datasetstگذاشتم
CrystalTarazKol orpt = new CrystalTarazKol(); اين هم كه نام كريستالي هست كه درست كردم
;
con.Open();
dap.Fill(dst, "student");اين هم نام ديتا تيبلي كه در ديتاست درست كرديم
con.Close();
orpt.SetDataSource(dst);
crystalReportViewer1.ReportSource = orpt;
neda_traveler
04-05-2011, 21:20
قسمت بعدي بايد ديتاست درست كنيم
كه مانند درست كردن فرم هست فقط ديتاست انتخاب مي كنيم كه من نامش datasetstگذاشتم
بعد بايد داخلش datatable درست كنيم
بعد داخلش كليك راست بعد add...datatableانتخاب مي كنيم
بعد مطابق با فيلدهايي كه مي خواهين پاس دهيم اينجا درست مي كنيم
كه ما بايد name,family,adress درست كنيم
neda_traveler
04-05-2011, 21:28
حالا با يد يك كريستال درست كنيم
درست كردنش مثل فرم هست فقط كريستال ريپورت بايد انتخاب كنيم
و as blank انتخاب كنيد چون ويزاردي جالب در نمياد
حالا بايد ديتاست پاس بديم
روي database fieldكليك راست database export انتخاب كنيد
بعد هم مسير ديتاست بديد و بعد خودش اضافه مي كنه و ميتونيد فيلدها رو روي صفحه بكشيد
و فونت رنگ و ...تغيير بديد
...
اينو بدونيد كه كريستال امكانات زيادي داره اگر كمكي خواستيد در خدمتم
اميدوارم كه بدردتون بخوره و بتونيد استفاده كنيد و من هم دعا كنيد:11:
Macdiano
08-05-2011, 08:02
SqlConnection con = new SqlConnection("server=.;database=student;integrated security=true;");
SqlDataAdapter dap = new SqlDataAdapter("select * from student" , con);
DatasetTarazKol dst = new DatasetTarazKol();
CrystalTarazKol orpt = new CrystalTarazKol();
con.Open();
dap.Fill(dst, "Tarazkol");
con.Close();
orpt.SetDataSource(dst);
crystalReportViewer1.ReportSource = orpt;
شما بايد در يك فرم كه ايجاد كرديد يك crystal report vier بذاريد و در form load اينها رو بذاري
بعد يك dataset درست كني و مطابق با فيلدهايي كه در select ميخواي متناظر درست كني
DatasetTarazKol dst = new DatasetTarazKol();
DatasetTarazKolنام ديتاست هست
dap.Fill(dst, "Tarazkol");
اينجا هم به جاي taraz kol نام ديتا تيبل كه درون ديتاست درست كرديد بگذاريد
و يك كريستال ريپورت هم كه طراحي مي كنيد
هر جا مشكل داشتيد بگيد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خط 8 Runtime error میده: The report has no tables
ممنون از راهنماییتون
Macdiano
08-05-2011, 08:30
درست شد
داخل گزارشم در قسمت Database Fields هیچ دیتابیسی Add نکرده بودم.
الان مشکلی که دارم اینه که خب من command sql رو خودم مینویسم و دیتاسورس گزارش رو تعیین میکنم, حالا اگر command ی که مینویسم join بین چند
تا table باشه مثلا یه فیلد مجازی از حاصل جمع چند فیلد ایجاد میکنم. اونوقت از این فیلد در گزارشم چطوری استفاده کنم؟ (در گزارش فقط فیلدهایی رو
میتونم استفاده کنم که واقعا در دیتابیس موجود هست)
neda_traveler
08-05-2011, 21:16
باز هم مشكلي نيست
شما جواب در ديتاست كه متناظر با فيلدها هست ميريزيد و ديگه مهم نيست اين ها join يا نه
میتونم استفاده کنم که واقعا در دیتابیس موجود هست)
ميتوني از تمام فيلدهاي ديتاستت استفاده كني نه ديتابيس
در ضمن خيلي از كارها رو هم ميتوني در خود كريستال انجام بدي مثل حاصل جمع و حاصل جمع گروهها
Macdiano
09-05-2011, 08:27
باز هم مشكلي نيست
شما جواب در ديتاست كه متناظر با فيلدها هست ميريزيد و ديگه مهم نيست اين ها join يا نه
ميتوني از تمام فيلدهاي ديتاستت استفاده كني نه ديتابيس
در ضمن خيلي از كارها رو هم ميتوني در خود كريستال انجام بدي مثل حاصل جمع و حاصل جمع گروهها
علاوه بر فیلدهایی که متناظر با اونها در دیتابیس موجود هست, من میخوام از فیلدهایی هم که خودم در command ایجاد کردم استفاده کنم.
ولی در کریستال نمیدونم چطوری باید از این فیلدها استفاده کنم. (با توجه به شکل زیر من فقط از فیلدهایی در گزارشم میتونم استفاده کنم که در دیتابیس
موجود هست)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
neda_traveler
10-05-2011, 22:44
خوب شما چرا اون فيلدهاي اضافه رو در ديتاست ايجاد نكردي
هر فيليدي مي خوايبه ديتاست خودت اضافه كن و نيازي نيست كه حتما درفيلدهاي table باشه و با توجه به دستورت پر ميشه و به كريستال فرستاده ميشه
اگه متوجه نشدي دستورتو بذار ببينم
Macdiano
11-05-2011, 07:53
درست شد
داخل گزارشم در قسمت database expert باید از datatable ای که در دیتاست ایجاد کرده بودم استفاده میکردم.
ممنون دوست عزیز
neda_traveler
11-05-2011, 21:29
خواهش ميكنم
سوالي بود در خدمتم
Macdiano
25-05-2011, 10:34
چطوری میتونم طول هر ستون در گزارش رو RunTime تغییر بدم؟
Macdiano
31-05-2011, 07:41
چطوری میتونم طول هر ستون در گزارش رو RunTime تغییر بدم؟
راهشو پیدا کردم.
کریستال حرف نداره. :46:
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.