PDA

View Full Version : دسترسی به اجزای CrystalReport از طریق کد



unique1984
یک شنبه 17 آذر 1387, 10:30 صبح
با سلام
من می خوام به اجزای کریستال ریپورت از طریق کد دسترسی داشته باشم.بعنوان مثال می خوام بتونم یه سکشن Details (که طبعا در این سکشن اطلاعاتی وجود داره)رو در مواقعی مخفی کنم و در مواقعی بر حسب نیاز نشون بدم.
اگر دوستان در این زمینه اطلاعات دارند ممنون می شم راهنمائی کنند.

fa_te64
یک شنبه 17 آذر 1387, 10:52 صبح
در داخل محيط كريستال ميتونين كدهاي مورد نظر رو اعمال كنين:
كليك راست>format objects براي هر شي ميتونين كدنويسي كنيد مثلا براي مخفي كردن يك شي گزينه suppres وجود داره كه يك شي رو مخفي ميكنه و اين مخفي كردن شي را ميتوان منوط به شرط خاصي كرد،تيك suppres رو بزنيد و دكمه كنار اون كليك كنيد بخش كد باز ميشه و ميتونين شرط لازم براي عدم نمايش كنترل رو بنويسيد و به همين ترتيب ساير خواص قابل تنظيمه

s_ahmadneya
یک شنبه 17 آذر 1387, 10:52 صبح
من تونستم فیلدها را تغییر مکان دهم اما هر کاری کردم یک فیلد جدید درست کنم نتونستم .این تاپیک را دنبال می کنم منم نیاز به این امکانات دارم برای گزارش ساز

unique1984
یک شنبه 17 آذر 1387, 22:27 عصر
fa_te64
در داخل محيط كريستال ميتونين كدهاي مورد نظر رو اعمال كنين:
كليك راست>format objects براي هر شي ميتونين كدنويسي كنيد مثلا براي مخفي كردن يك شي گزينه suppres وجود داره كه يك شي رو مخفي ميكنه و اين مخفي كردن شي را ميتوان منوط به شرط خاصي كرد،تيك suppres رو بزنيد و دكمه كنار اون كليك كنيد بخش كد باز ميشه و ميتونين شرط لازم براي عدم نمايش كنترل رو بنويسيد و به همين ترتيب ساير خواص قابل تنظيمه
تشکر ، اما من منظورم اینه که از طریق کدنویسی سی شارپ این کارو انجام بدم. فرض کنید کاربر روی فرمی می تونه انتخاب کنه که در گزارشش مثلا فقط Details نشون داده بشه و بعد از انتخاب سکشن مورد نظرش (مثلا از طریق checkboxدر فرم سی شارپ )، پیش نمایش چاپ رو ببینه.

rs1111
دوشنبه 18 آذر 1387, 09:11 صبح
سلام-خسته نباشید
شاید این پست به شما کمک کند
http://barnamenevis.org/forum/showthread.php?t=124949

fa_te64
سه شنبه 19 آذر 1387, 10:35 صبح
تشکر ، اما من منظورم اینه که از طریق کدنویسی سی شارپ این کارو انجام بدم. فرض کنید کاربر روی فرمی می تونه انتخاب کنه که در گزارشش مثلا فقط Details نشون داده بشه و بعد از انتخاب سکشن مورد نظرش (مثلا از طریق checkboxدر فرم سی شارپ )، پیش نمایش چاپ رو ببینه.
براي اين كار ميشه يك پارامتر تعريف كنيد كه توسط كاربر مقداردهي ميشه و در قسمت كدsuppres نام پارامتر قابل دسترسي هست كه ميتونين كد مورد نظرتون رو اعمال كنيد

unique1984
سه شنبه 19 آذر 1387, 14:21 عصر
دوست عزیز fa_te64 بازم تشکر.

تيك suppres رو بزنيد و دكمه كنار اون كليك كنيد بخش كد باز ميشه و ميتونين شرط لازم براي عدم نمايش كنترل رو بنويسيد و به همين ترتيب ساير خواص قابل تنظيمه
اصلا بخش کد نویسی نداره!!!یعنی دکمه ای کنارش نیست !!! (من از کریستال ریپورت خود VSاستفاده میکنم)
و در ضمن سکشن ها formatobject ندارند ، اما suppres رو دارند.
در کل بخش کدنویسی نداره !


شاید این پست به شما کمک کند
http://barnamenevis.org/forum/showthread.php?t=124949
ممنونم . اما متوجه نشدم report document چی میتونه باشه.

اگه یه نمونه کوچیک بذارین ممنون میشم.

fa_te64
چهارشنبه 20 آذر 1387, 09:01 صبح
در كريستال خود زبان اين امكانات هست،تصاويري كه براتون گذاشتم نشون ميده

esfahanitg
جمعه 22 آذر 1387, 19:29 عصر
سلام شما ميتونين به راحتي و بدون درد سر اين كارو انجام بدين.ميتونين اين خط كد رو به برنامه سوال قبليتون اضافه كنين تا مشكل حل بشه :
rpt.ReportDefinition.Sections["Section2"].SectionFormat.EnableSuppress=true;
كل برنامه هم ميشه اين:
CrystalDecisions.CrystalReports.Engine.ReportDocum ent rpt = new CrystalDecisions.CrystalReports.Engine.ReportDocum ent();
rpt.Load(Request.PhysicalApplicationPath + "CrystalReport.rpt");

rpt.ReportDefinition.Sections["Section2"].SectionFormat.EnableSuppress=true;
rpt.SetDatabaseLogon("testlogin","123456");
string select="select * from customer";
SqlConnection con=new SqlConnection(ConfigurationManager.ConnectionStrin gs[1].ToString());
SqlDataAdapter da=new SqlDataAdapter (select,con);
DataTable dt=new DataTable();
da.Fill(dt);
Response.Write(Request.PhysicalApplicationPath + "CrystalReport.rpt");
rpt.SetDataSource(dt);
CrystalReportViewer1.DisplayGroupTree = false;
CrystalReportViewer1.ReportSource =rpt;
CrystalReportViewer1.DataBind();