PDA

View Full Version : فرمول نويسي براي كريستال ريپورت با سي شارپ



debugger
جمعه 23 مرداد 1388, 09:10 صبح
سلام

من وقتي ميخوام با كريستال ريپورت گزارش تهيه كنم . موقع چاپ گزارش همه ركورد ها را برام چاپ مي كنه

در حالي كه ميخوام فقط يك ركورد را چاپ كنه ، اونم ركوردي كه كاربر انتخاب مي كنه

كد فرمول را در سي شارپ مي نويسم نه در كريستال ريپورت

و شماره ايدي شخص مورد نظر را فرمول ست مي كنم تا فقط اونو چاپ كنه ولي موقع چاپ همه ركورد هاي ديتا بيس را چاپ مي كنه

اينم كد هاي بنده



ReportDocument repDoc = newReportDocument();
connectioninfo.ServerName = "(local)";
connectioninfo.DatabaseName = "kdb";
reportpath = Application.StartupPath + "\\Report1.rpt";
repDoc.Load(reportpath);
crystalReportViewer1.ReportSource = reportpath;
string formol = "{tbk.idform} = 3";
repDoc.DataDefinition.RecordSelectionFormula = formol;



لطفا كد سي شارپ بزارين چون در اين زمينه مبتدي هستم

samrand_1360
پنج شنبه 13 اسفند 1388, 14:53 عصر
بنده نيز چنين مشكلي دارم . يعني مي خواهم وقتي كه كاربر موردي را در تكست باكس وارد مي كند كريستال ريپورت با توجه به آن فيلتر كند و نمايش دهد ... لطفا راهنمايي كنيد ....

sara.f
پنج شنبه 13 اسفند 1388, 19:53 عصر
بنده نيز چنين مشكلي دارم . يعني مي خواهم وقتي كه كاربر موردي را در تكست باكس وارد مي كند كريستال ريپورت با توجه به آن فيلتر كند و نمايش دهد ... لطفا راهنمايي كنيد ....

سلام
می تونید با توجه به مقدار textbox یک dataset را پر کنید و اون dataset را به عنوان datasource به گزارش بدید.
اینطوری:


ReportDocument reportDocument = new ReportDocument();
reportDocument.SetDataSource(objdataset);

bad_boy_2007
پنج شنبه 13 اسفند 1388, 22:59 عصر
سلام
در تكميل گفته سارا ، من عادت دارم تو فرم لود يا سازنده فرمها منبع داده (Dataset) را پر ميكنم و در Event Change يك Text منبع داده گريد را به يك Dataview تغيير داده و به يوزر نمايش ميدهم . حال چه چيزي بايد چاپ شود ؟ با تبديل نوع Dataview به DataTable و ارسال آن به گزارش مشكل رفع ميشود .



DV.toTable()


باز هم مطابق روال هميشه توصيه ميكنم كه كريستال را بگذاريد كنار و از StimulReport استاده كنيد ، بخصوص در اين زمينه Stimul خيلي عادي كار ميكند .