PDA

View Full Version : سوال: مشکل در نمایش کریستال ریپورت



rezarko
پنج شنبه 26 بهمن 1391, 19:22 عصر
سلام. من با کد نویسی به پارامتر های ریپورتم مقدار میدم ولی وقتی میخوام اونو توی crystal report viewr نشون بدم ازم میخواد که پارامتر هارو دستی پر کنم. لطفا سریعتر راهنمایی کنید
با تشکر

rezarko
پنج شنبه 26 بهمن 1391, 23:22 عصر
:متفکر::افسرده:

saeedgholami
پنج شنبه 26 بهمن 1391, 23:29 عصر
سلام
بیشتر توضیح بدید یا خطا رو بگید

ma.rad
پنج شنبه 26 بهمن 1391, 23:32 عصر
خب هنگام لود cr viewr مقادیر به صورت دستی بهش ارسال کنید.
مثال:

rd.SetParameterValue("date", DATE);

rezarko
پنج شنبه 26 بهمن 1391, 23:48 عصر
همین کارو کردم ولی بازم پارامتر هارو ازم میخواد:


http://upload.tehran98.com/img1/t85hobknyzgkr9g0szv8.png
کد:
cnn.Open();
SqlDataAdapter DAcr = new SqlDataAdapter("Select * From _Print;select * from Tbl_Setting", cnn);
DataTable dtcr = new DataTable();
DAcr.Fill(dtcr);
ReportDocument rd = new ReportDocument();
String Sum = "32";
SqlDataAdapter DAs = new SqlDataAdapter("select * from Tbl_Setting", cnn);
DataTable dts = new DataTable();
DAs.Fill(dts);
string size = dts.Rows[0]["Set_Printer"].ToString();
if (size == "57")
{
rd.FileName = Application.StartupPath + "\\Report\\rpt_Print80mm.rpt";
rd.SetParameterValue("Date", ConvertMiladi2Shamsi(DateTime.Now).ToString());
rd.SetParameterValue("Customer", "رضا حداد");
rd.SetParameterValue("FaktorID", "1");

}
else
{
rd.FileName = Application.StartupPath + "\\Report\\rpt_Print57mm.rpt";
rd.Load(Application.StartupPath + "\\Report\\rpt_Print57mm.rpt");
}

rd.SetDataSource(dtcr);

crystalReportViewer1.ReportSource = rd;
cnn.Close();

mc_laren
جمعه 27 بهمن 1391, 00:31 صبح
نکته ای که در مورد ارسال پارامتر به کریستال ریپورت باید رعایت اینه که مقادیر پرامتر ها رو باید بعد از فرستادن مقدار دیتاتیبل به گزارش انجام بشه در واقع فرستادن پارامتر باید آخرین کار باشه
که در اینجا شما باید بعد از خط زیر اینکار رو انجام بدین

rd.SetDataSource(dtcr);

docendo
جمعه 27 بهمن 1391, 00:31 صبح
اگر یکی از کاربران گرامی این کریستال ریپورت کامل آموزش میداد خیلی خوب میشد البته آموزش های زیادی در این مورد هم در این سایت و در سایتهای دیگر و حتی بطورت پی دی اف وجود دارد ولی هیچکدام صد درصد کامل نیست هرکسی با توجه به نیاز خودش توضیح داده است
و آیا کریستال ریپورت رایگان است یا تریال و درصورت تریال آلترناتیوی که رایگان باشد کدام است

rezarko
جمعه 27 بهمن 1391, 12:10 عصر
ممنون دوست عزیز مشکلم حل شد. فقط یه سوال دیگه: سایز گزارش واسه پرینتر 58mm رو چه طور تعیین کنم که عرضش 58مم و طولش به اندازه تعداد داده ها باشه؟

ma.rad
جمعه 27 بهمن 1391, 12:51 عصر
اگر منظورت رو درست متوجه شده باشم
چاپ گزارش براساس اندزه گزارش شما در کرستال رپورت و چاپگر مورد نظره تون هست.

rezarko
جمعه 27 بهمن 1391, 13:04 عصر
اره ممنون میشم راهنمایی کنید

ma.rad
جمعه 27 بهمن 1391, 13:22 عصر
باید ببینی تو اندازه های پیش فرض کریستال تعریف شده یا نه مثلا این نمونه برا اندازه A5 هست

rd.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA5;

ma.rad
جمعه 27 بهمن 1391, 13:41 عصر
این هم نحوه ایجاد اندازه های جدید:

PrintDocument printDoc = new PrintDocument();

System.Drawing.Printing.PaperSize pkSize = new System.Drawing.Printing.PaperSize();

pkSize.Height = 5;

pkSize.Width = 8;

pkSize.PaperName ="B4 (JIS)";

int rawKind = 0;

for (int a = 0; a < printDoc.PrinterSettings.PaperSizes.Count; a++)

{
int a11 = 5; //printDoc.PrinterSettings.PaperSizes.Count;
if (printDoc.PrinterSettings.PaperSizes[a11].PaperName == "B4 (JIS)")
{

rawKind = (int)printDoc.PrinterSettings.PaperSizes.GetType() .GetField("kind", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue( printDoc.PrinterSettings.PaperSizes);

}

}
rd.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)rawKind;

rezarko
جمعه 27 بهمن 1391, 17:20 عصر
کسی سایز استاندارد 58مم رو نداره؟