private void simpleButton1_Click(object sender, EventArgs e) { XtraReport report = new XtraReport(); NwindDataSet dataSet = FillDataSet(); report.DataSource = dataSet; report.DataMember = dataSet.Customers.TableName; CreateReportHeader(report, "Runtime Generated Customer-Orders report", Color.PowderBlue, 32); CreateDetailBand(report, dataSet.Customers, "Customers", Color.Silver, false); CreateGrouping(report); switch (radioGroup1.SelectedIndex) { case 0: CreateDetailReportBasedOnSubreport(report); break; case 1: CreateDetailReportBasedOnDetailReportBand(report); break; } report.ShowPreviewDialog(); }
private NwindDataSet FillDataSet() { //Filling DataTables NwindDataSet dataSet = new NwindDataSet(); NwindDataSetTableAdapters.CustomersTableAdapter custAdapter = new NwindDataSetTableAdapters.CustomersTableAdapter(); NwindDataSetTableAdapters.OrdersTableAdapter orderAdapter = new NwindDataSetTableAdapters.OrdersTableAdapter(); custAdapter.Fill(dataSet.Customers); orderAdapter.Fill(dataSet.Orders); return(dataSet); }
private void CreateDetailReportBasedOnDetailReportBand(XtraReport report) { //Create a Detail Report DetailReportBand detailReport = new DetailReportBand(); report.Bands.Add(detailReport); //Init Styles at the level of the RootReport InitStyles(report); //Generate the DataMember based on data relations NwindDataSet ds = report.DataSource as NwindDataSet; string detailDataMember = string.Format("{0}.{1}", ds.Tables[report.DataMember].TableName, ds.Relations[0].RelationName); detailReport.DataSource = ds; detailReport.DataMember = detailDataMember; //Create bands CreateReportHeader(detailReport, "Orders", Color.Gold, 16); CreateDetailBand(detailReport, ds.Orders, detailDataMember, Color.Transparent, true); }
private void CreateDetailReportBasedOnSubreport(XtraReport report) { //Create a Subreport XRSubreport subreport = new XRSubreport(); DetailBand detailBand = report.Bands[BandKind.Detail] as DetailBand; detailBand.Controls.Add(subreport); subreport.LocationF = new PointF(0, detailBand.HeightF); subreport.WidthF = report.PageWidth - report.Margins.Right - report.Margins.Left; //Create a detail Report XtraReport detailReport = new XtraReport() { DataSource = report.DataSource, DataMember = "Orders" }; InitStyles(detailReport); subreport.ReportSource = detailReport; //Create bands CreateReportHeader(detailReport, "Orders", Color.Gold, 16); NwindDataSet ds = report.DataSource as NwindDataSet; CreateDetailBand(detailReport, ds.Orders, "Orders", Color.Transparent, true); //Add a parameter for filtering Parameter param = new Parameter() { Name = "custID", Type = typeof(string), Visible = false, Value = string.Empty }; detailReport.Parameters.Add(param); detailReport.FilterString = "[CustomerID]==?custID"; //Handle the Subreport.BeforePrint event for filtering details dynamically subreport.BeforePrint += subreport_BeforePrint; }