PDA

View Full Version : سوال: گزارش گیری از کنترل های روی فرم با کریستال ریپورت



firoozi90
دوشنبه 23 مرداد 1391, 11:26 صبح
سلام دوستان
من میخواستم بدونم چطور می تونم از محتویات کنترل هایی مثل تکست باکس ها و کمبوباکس ها و .. با کریستال ریپورت گزارش بگیرم.
لطفا منو راهنمایی کنید

veniz2008
دوشنبه 23 مرداد 1391, 12:03 عصر
سلام. تاپیک های خیلی زیاد و خوبی دربارش وجود داره. جستجو کنید خیلی بهتر نتیجه میگیرید.

ehsan7007
دوشنبه 23 مرداد 1391, 12:39 عصر
سلام.
این روش و نطره منه :
یک دیتابیس درست کن و اطلاعات کنترل هات رو بریز توش و از اون گزارش بگیر.

این هم یک لینک اموزش مبتدی (http://barnamenevis.org/showthread.php?321391-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A8%D8%AA%D8%AF%DB%8C-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%A9%D8%B1%DB%8C%D8%B3%D8%AA%D8%A7%D9%84-%D8%B1%DB%8C%D9%BE%D9%88%D8%B1%D8%AA-%D8%AF%D8%B1-Visual-Stadio-2010)

firoozi90
دوشنبه 23 مرداد 1391, 12:49 عصر
سلام.
این روش و نطره منه :
یک دیتابیس درست کن و اطلاعات کنترل هات رو بریز توش و از اون گزارش بگیر.

این هم یک لینک اموزش مبتدی (http://barnamenevis.org/showthread.php?321391-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A8%D8%AA%D8%AF%DB%8C-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%A9%D8%B1%DB%8C%D8%B3%D8%AA%D8%A7%D9%84-%D8%B1%DB%8C%D9%BE%D9%88%D8%B1%D8%AA-%D8%AF%D8%B1-Visual-Stadio-2010)

من برعکس همین کاری که شما می گید می خوام انجام بدم.
می خوام اطلاعات فیلد جدولمو بریزم توی کمبو باکس و یه سری اطلاعات هم که خودم دستی توی تکست باکس می نویسم.حالا می خوام اون آیت هایی که از کمبو باکس انتخاب کردم به اافه تکست باکس هایی که خودم پر کردم رو ازش گزارش بگیرم

firoozi90
دوشنبه 23 مرداد 1391, 12:50 عصر
سلام. تاپیک های خیلی زیاد و خوبی دربارش وجود داره. جستجو کنید خیلی بهتر نتیجه میگیرید.

سلام من زیاد جستجو کردم اما چیزی پیدا نکردم
شما لینک خاصی می شناسید به من بگید؟

ozzy_mra
سه شنبه 24 مرداد 1391, 08:21 صبح
سلام دوستان
من میخواستم بدونم چطور می تونم از محتویات کنترل هایی مثل تکست باکس ها و کمبوباکس ها و .. با کریستال ریپورت گزارش بگیرم.
لطفا منو راهنمایی کنید

سلام
تو کریستال ریپورتت چند تا متغییر تعریف کن ، بعد مقادیر کنترل هات رو به متغییرهات پاس بده و بعد در کریستال ریپورت ازش استفاده کن
تو این لینـــــــــــک پست شماره 9 (http://barnamenevis.org/showthread.php?321391-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A8%D8%AA%D8%AF%DB%8C-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%A9%D8%B1%DB%8C%D8%B3%D8%AA%D8%A7%D9%84-%D8%B1%DB%8C%D9%BE%D9%88%D8%B1%D8%AA-%D8%AF%D8%B1-Visual-Stadio-2010&p=1410522&viewfull=1#post1410522) نحوه تعریف پارامتر و ارسال به ریپورت رو آموزش داده

firoozi90
سه شنبه 24 مرداد 1391, 10:58 صبح
خب چطور می تونم از این پارامترها توی کریستال ریپورت استفاده کنم.
اگر ممکنه یه مثال بزنید خواهشا.خیلی مهمه

ozzy_mra
سه شنبه 24 مرداد 1391, 11:32 صبح
خب چطور می تونم از این پارامترها توی کریستال ریپورت استفاده کنم.
اگر ممکنه یه مثال بزنید خواهشا.خیلی مهمه
خیلی راحت
ایتدا پارامتر ها رو تو بخش Parameter fields تعریف می کنی و بعد از همون قسمت با Drag & Drop پارامترتو به هرجای گزارشت که بخوای قرار میدی و فقط کافیه از طریق کد مقدار رو به ریپورت داکیومنتت پاس بدی
مثلاً یه تکست باکس به نام Genre رو می خوای به گزارشت پاس بدی ، اول پارمترتو تعریف می کنی مثلاً به نام ExternalGenre و بعد با کد زیر به ReportDocument پاس می دی
من کل کد رو که برای ایجاد ریپورت و افزودن پارامتر هست رو می نویسم :
protected void Page_Load(object sender, EventArgs e)
{
ReportDocument rptDoc = new ReportDocument();
dsSample ds = new dsSample(); // .xsd file name
DataTable dt = new DataTable();
// Just set the name of data table
dt.TableName = "Crystal Report Example";
dt = getAllOrders(); //This function is located below this function
ds.Tables[0].Merge(dt);
// Your .rpt file path will be below
rptDoc.Load(Application.StartPath + "/SimpleReports.rpt");
//set dataset to the report viewer.
rptDoc.SetDataSource(ds);
rptDoc.SetParameterValue("ExternalGenre",Genre.Text);
CrystalReportViewer1.ReportSource = rptDoc;
}

firoozi90
جمعه 27 مرداد 1391, 19:05 عصر
خیلی راحت
ایتدا پارامتر ها رو تو بخش Parameter fields تعریف می کنی و بعد از همون قسمت با Drag & Drop پارامترتو به هرجای گزارشت که بخوای قرار میدی و فقط کافیه از طریق کد مقدار رو به ریپورت داکیومنتت پاس بدی
مثلاً یه تکست باکس به نام Genre رو می خوای به گزارشت پاس بدی ، اول پارمترتو تعریف می کنی مثلاً به نام ExternalGenre و بعد با کد زیر به ReportDocument پاس می دی
من کل کد رو که برای ایجاد ریپورت و افزودن پارامتر هست رو می نویسم :
protected void Page_Load(object sender, EventArgs e)
{
ReportDocument rptDoc = new ReportDocument();
dsSample ds = new dsSample(); // .xsd file name
DataTable dt = new DataTable();
// Just set the name of data table
dt.TableName = "Crystal Report Example";
dt = getAllOrders(); //This function is located below this function
ds.Tables[0].Merge(dt);
// Your .rpt file path will be below
rptDoc.Load(Application.StartPath + "/SimpleReports.rpt");
//set dataset to the report viewer.
rptDoc.SetDataSource(ds);
rptDoc.SetParameterValue("ExternalGenre",Genre.Text);
CrystalReportViewer1.ReportSource = rptDoc;
}

سلام دوست خوبم
من اینجا دیگه نیازی به پایگاه داده و جدول ندارم فقط می خوام محتویات تکست باکس ها و کمبو باکس ها توی گزارش نشون بدم که شما فرمودید با ارسال متغیر این کار شدنیه.
با این وجود من به تابع getallorder() نیاز دارم؟
و اینکه dssample چیه و از کجا اومده؟
و همچنین بجای startpath میتونم از startuppath استفاده کنم؟

لطفا در مورد این کد توضیح بدبد خیلی ممنون میشم.

ozzy_mra
شنبه 28 مرداد 1391, 09:39 صبح
سلام دوست خوبم
من اینجا دیگه نیازی به پایگاه داده و جدول ندارم فقط می خوام محتویات تکست باکس ها و کمبو باکس ها توی گزارش نشون بدم که شما فرمودید با ارسال متغیر این کار شدنیه.
با این وجود من به تابع getallorder() نیاز دارم؟
و اینکه dssample چیه و از کجا اومده؟
و همچنین بجای startpath میتونم از startuppath استفاده کنم؟


لطفا در مورد این کد توضیح بدبد خیلی ممنون میشم.

سلام
بله اگر به دیتابیس احتیاجی ندارید می تونید کد های مربوط به دریافت اطلاعات از دیتابیس و همچنین دیتاست رو پاک کنید و فقط مقادیر مورد نظرتون رو به ریپورت پاس بدید
در مورد startuppath هم فکر کنم مشکلی پیش نیاد ، امتحانش کن ، ضرری نداره :چشمک:

ozzy_mra
سه شنبه 31 مرداد 1391, 07:33 صبح
سلام عیدتون مبارک
یه تکه برنامه واسه این کارتون نوشتم دیگه خودتون کد های لازم رو ازش استخراج کنید.فقط توضیح اینکه فایل ریپورت تو شاخع Debug\bin قرار داره
ضمناً اگر از این کار برای چاپ فرم مثلاً فرم احکام یا چک و ... استفاده می کنی بهتر و سریعتر اینه که از راههای دیگه ای استفاده کنی برای شروع تو همین سایت چاپ روی چک رو سرچ کنی به نتایج خوبی می رسی
اینم برنامه :
91579