PDA

View Full Version : آموزش: ارسال اطلاعات از فرم یک به CrystalReportViewer در فرم دو



Kurdia
جمعه 26 شهریور 1389, 00:46 صبح
با سلام
در فرم دو CrystalreportViewer با نام CrRpt دارم و می خواهم از فرم یک، به این شی مقدار ID بدست آمده از دیتابیس رو ارسال کنم
اطلاعات به خوابی جستجو و یافت می شن اما مشکل اینه که نمی تونم به فرم دو مطالب رو ارسال کنم
از دستور



private int Num;
public int NUM
{
get
{
return Num;
}
set
{
Num = value;
}
}

نتونستم استفاده کنم
لطفا راهنمایی کیند

shima2006
جمعه 26 شهریور 1389, 01:01 صبح
میشه اون کدی رو که دارید باهاش مقادیر رو به فرم دوم ارسال می کنید اینجا قرار بدید؟
مشکلتون رو هم واضح تر بگید!

mmd2009
جمعه 26 شهریور 1389, 01:29 صبح
با سلام

تو فرم دوم اینو بنویس ( همه که باید مقدار INT رو بگیره )



public frm_show_picture(int id)
{
InitializeComponent();
}


حالا میتونی از اون id که از فرم یک موقع نمایش فرم 2 اوردی استفاده بکنی و تو فرم 2 هر جایی بذاریش

موفق باشی.

Kurdia
جمعه 26 شهریور 1389, 15:23 عصر
با سلام

تو فرم دوم اینو بنویس ( همه که باید مقدار INT رو بگیره )



public frm_show_picture(int id)
{
InitializeComponent();
}
حالا میتونی از اون id که از فرم یک موقع نمایش فرم 2 اوردی استفاده بکنی و تو فرم 2 هر جایی بذاریش

موفق باشی.

منظور از frm_show_picture اسم فرم است(و نباید تابع جدید ایجاد بشه)
می شه بیشتر توضیح بدی لطفا

mmd2009
جمعه 26 شهریور 1389, 23:33 عصر
frm = form و نیازی به تابع جدیدی نیست.

Kurdia
شنبه 27 شهریور 1389, 03:40 صبح
اصلا متوجه نمی شم
من می خوام یک یا چند مقدار رو از فرم یک به CrystalReportViewr در فرم دو انتقال بدم
متوجه منظورت نمی شم


form2 frm2 = new form2();
frm2.showdialog();


این برای نمایش فرم دو، اما انتقال اطلاعات از فرم یک به فرم دو چی می شه

mhs377
شنبه 27 شهریور 1389, 03:57 صبح
چند راه داره
1- میتونی از property ها استفاده کنی
2- همونطور که mmd2009 گفتن میتونی متغیر رو به فرم دیگه پاس بدی
مثلا تو همون کدی که گذاشته میتونی این کارو بکنی


public frm_show_picture(int id)
{
textbox1.text=id.tostring(); //sample
InitializeComponent();
}

3- میتونی اون متغیر رو بصورت public static تعریف کنی که در این صورت از فرمهای دیگه قابل دسترسی هست

در مورد crystalreportviewer هم میتونی اطلاعات رو بصورت پارامتر به report ارسال کنی


report1.
SetParameterValue(textbox1.text);

--------------------
عنوان مربوطه آموزش درج شده بود
در این مورد نیز دقت کنید
موفق باشید

shima2006
شنبه 27 شهریور 1389, 10:26 صبح
من از این روش استفاده می کنم


NewFrm objcrpt = newNewFrm();
objcrpt.ParameterFields["tname"].CurrentValues.AddValue(tname.Text);
objcrpt.ParameterFields["tfamily"].CurrentValues.AddValue(tfamily.Text);
ShowPrint sp = newShowPrint();
sp.Report = objcrpt;
sp.ShowDialog();

در این کدNewFrm فرم کریستال ریپورت هست و ShowPrint هم فرمی هست که تمام اطلاعات گزارشها اول به این فرم فرستاده می شوند و باید این کد رو هم در ShowPrint بنویسید
پارامترهای tname & tfamily هم باید از قبل در NewFrm تعریف شده باشند.


publicReportClass Report;
void ShowPrint_Load(object sender, EventArgs e)
{
this.crystalReportViewer1.ReportSource = Report;
}