PDA

View Full Version : ارسال پارامتر به گزارش



maryamgol
دوشنبه 10 آبان 1389, 08:34 صبح
سلام
يه كامبوباكس در فرم قرار دادم براي گزارش گيري كه كاربر هركدام را انتخاب كند بر اساس آن گزارش مي گيرد.حالا ميخوام يه جعبه متن در صفحه گزارش قرار دهم و هر رديفي از كامبو باكس كاربر انتخاب كرد در آن جعبه متن قرار گيرد. ميدونم با ارسال پارامتر (Set valueparameter) بايد اين كار را بكنم. اما كد دقيق آن را بلد نيستم.:گیج:

maryamgol
دوشنبه 10 آبان 1389, 10:09 صبح
كسي پيدا نمي شه جواب اين سوال رو بده؟:عصبانی++::عصبانی++::عصبا ی++::عصبانی++:

hamid67fathi
دوشنبه 10 آبان 1389, 10:40 صبح
سلام
Calm down please!!!

نگفتيد ابزار گزارش گيريتون چی هست ؟؟
اگر کريستال ريپورت هست ميتونيد از کد زير استفاده کنيد.

reportClass.SetParameterValue("ParametrName"," Value");

niloo17
دوشنبه 10 آبان 1389, 19:28 عصر
سلام دوستان
من در کریستال ریپورت گزارشمو با جهار پارامتر ساختم موقع فراخوانی گزارش پارامترها را مقدار دهی می کنم ولی در اجرا پنجره بار می شه ازم مقدار پارمتر ها می خواد

hamid67fathi
دوشنبه 10 آبان 1389, 20:47 عصر
اگر از کد بالا استفاده کرديد و جواب نگرفتيد ، فايل را ارسال کنيد،شايد تونستم مشکلش رو رفع کنم

niloo17
دوشنبه 10 آبان 1389, 20:57 عصر
ممنون این کد من


DataTable dt = clsPardakhtDetailViewFactory.GetAllByFieldDT(clsPa rdakhtDetailView.clsPardakhtDetailViewFields.Parda khtID, Id);
DataTable dtdaryaft = clsDaryaftViewFactory.GetAllByFieldDT(clsDaryaftVi ew.clsDaryaftViewFields.CustomerID, dt.Rows[0]["CustomerID"]);
DataTable dtpardakht = clsPardakhtViewFactory.GetAllByFieldDT(clsPardakht View.clsPardakhtViewFields.CustomerID, dt.Rows[0]["CustomerID"]);
double daryaftt,pardakhtt;
int daryaftp,pardakhtp;
if (dtdaryaft.Rows.Count > 0)
{
daryaftp = Convert.ToInt32(dtdaryaft.Rows[0]["TalabP"]);
daryaftt = Convert.ToDouble(dtdaryaft.Rows[0]["TalabT"]);
}
else
{
daryaftt = 0;
daryaftp = 0;
}
if (dtpardakht.Rows.Count > 0)
{
pardakhtp = Convert.ToInt32(dtpardakht.Rows[0]["TalabPP"]);
pardakhtt = Convert.ToDouble(dtpardakht.Rows[0]["TalabTP"]);
}
else
{
pardakhtt = 0;
pardakhtp = 0;
}
ReportDocument rd = new ReportDocument();
string path = Application.StartupPath.Substring(0, Application.StartupPath.Length - 10)+"\\report\\pardakht.rpt";
rd.Load(path);
rd.SetParameterValue("daryaftt", daryaftt);
rd.SetParameterValue("pardakhtt", pardakhtt);
rd.SetParameterValue("daryaftp", daryaftp);
rd.SetParameterValue("pardakhtp", pardakhtp);
rd.SetDataSource(dt);
crystalReportViewer1.ReportSource = rd;

maryamgol
سه شنبه 11 آبان 1389, 07:04 صبح
من در ارسال پارامتر با خطاي زير مواجه ميشم.

niloo17
سه شنبه 11 آبان 1389, 17:54 عصر
سلام دوستان
یعنی هیچ روش دیگری برای ارسال پارامتر نیست

hamid67fathi
سه شنبه 11 آبان 1389, 22:22 عصر
دوست عزيز مطمئنی که در زمان ارسال پارامتر به اين خطا بر ميخوری ؟؟
دقيقاً کدوم خط اين خطا رو توليد ميکنه ؟

mmd2009
چهارشنبه 12 آبان 1389, 02:02 صبح
تاريخ شمسي در گزارش (http://barnamenevis.org/forum/showthread.php?t=254115&highlight=%D8%A7%D8%B1%D8%B3%D8%A7%D9%84+%D9%BE%D8 %A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1)

با سلام

در تاپیک بالا من که یک مثال براتون زده بودم قبلا برای ارسال پارمتر

موفق باشید

niloo17
چهارشنبه 12 آبان 1389, 08:04 صبح
سلام ممنون از راهنماییتون
منم از همین روش استفاده کردم برنامه خطا نمی ده ولی در حالت اجرا واسه هر پارامتر از من مقدار می خواد :متفکر::متفکر::متفکر:

mahdi87_gh
چهارشنبه 12 آبان 1389, 11:29 صبح
کدتون که مشکلی نداره!!!
حالا شما برای اطمینان خاطر پارامترها را بعد از دستور SetDatasource مقداردهی کنید

sepide1
چهارشنبه 12 آبان 1389, 15:09 عصر
یک سوال مطمئن هستید در کریستال نوع پارامترهایت را صحیح وارد کرده ای؟

niloo17
چهارشنبه 12 آبان 1389, 18:43 عصر
کدتون که مشکلی نداره!!!
حالا شما برای اطمینان خاطر پارامترها را بعد از دستور SetDatasource مقداردهی کنید
ممنون از لطفتون درست شد:تشویق::تشویق: