protected void BindChartData(IEnumerable <BindingInfoEntity> entities, int?xLabelAngle) { var namesSet = new HashSet <String>(); var xMembersSet = new HashSet <String>(); var yMembersSet = new HashSet <String>(); var dataSet = new DataSet(); foreach (var entity in entities) { if (entity.Bindings == null) { continue; } var modelLp = entity.Bindings.ToLookup(n => n.Caption); var modelsGrp = modelLp.FirstOrDefault(); if (modelsGrp == null) { continue; } var byTargetLp = modelsGrp.ToLookup(n => n.Target); var groupMember = modelsGrp.Key; var yMember = byTargetLp["YValue"].Select(n => n.Source).Distinct().FirstOrDefault(); var xMember = byTargetLp["XValue"].Select(n => n.Source).Distinct().FirstOrDefault(); var sortData = false; if (entity.QueryType == "Logic") { sortData = !entity.Ordered; } var collection = GetCollection(entity, groupMember, xMember); var dataTable = ReportUnitHelper.GetChartDataTable(groupMember, yMember, xMember, collection, sortData); dataTable.TableName = String.Format("{0}; {1}", xMember, yMember); dataSet.Tables.Add(dataTable); BindChartData(dataTable, entity.Type, groupMember, xMember, yMember, xLabelAngle); namesSet.Add(entity.Name); xMembersSet.Add(xMember); yMembersSet.Add(yMember); } BindGridData(dataSet); lblReportTitle.Text = String.Join(", ", namesSet); var xMembers = String.Join(", ", xMembersSet); var yMembers = String.Join(", ", yMembersSet); lblXYDescription.Text = String.Format("X - {0}; Y - {1}", xMembers, yMembers); }
protected void BindUnitData(ReportUnitModel unitModel) { var entities = ReportUnitHelper.GetQueries(unitModel, DataContext); if (unitModel.Type == "Grid") { pnlMainGrid.Visible = true; pnlChartImage.Visible = false; tdChartCommands.Visible = false; var entiry = entities.FirstOrDefault(); if (entiry != null) { BindGridData(entiry); } } else { pnlMainGrid.Visible = true; pnlChartImage.Visible = true; tdChartCommands.Visible = true; BindChartData(entities, unitModel.XLabelAngle); } var url = new UrlHelper("~/Pages/User/ReportFullscreen.aspx"); url["ReportID"] = unitModel.ID; btnFullscreen.NavigateUrl = url.ToEncodedUrl(); }
protected void btnExportReportOK_OnClick(object sender, EventArgs e) { var targetType = GetExportTargetType(); if (pnlChartImage.Visible) { var dataSource = reportGridsControl.DataSource as DataSet; if (dataSource == null) { return; } if (targetType == "PDF" || targetType == "Image") { using (var chartImage = GetChartImage()) { var fileName = ReportUnitHelper.GetDownloadFileName(targetType); var reportBytes = ReportUnitHelper.GetReportChartBytes(targetType, dataSource, chartImage); SendDownloadFile(fileName, reportBytes); } } else { var fileName = ReportUnitHelper.GetDownloadFileName(targetType); var reportBytes = ReportUnitHelper.GetReportGridBytes(targetType, dataSource); SendDownloadFile(fileName, reportBytes); } } else if (pnlMainGrid.Visible) { if (targetType == "Image") { return; } var dataSource = reportGridsControl.DataSource as DataSet; if (dataSource == null) { return; } var fileName = ReportUnitHelper.GetDownloadFileName(targetType); var reportBytes = ReportUnitHelper.GetReportGridBytes(targetType, dataSource); SendDownloadFile(fileName, reportBytes); } }
protected IEnumerable <DataRowView> GetCollection(BindingInfoEntity entity, String groupMember, String xMember) { var sqlDs = ReportUnitHelper.CreateDataSource(entity.SqlQuery); var dataView = (DataView)sqlDs.Select(new DataSourceSelectArguments()); if (dataView == null) { return(null); } if (!String.IsNullOrWhiteSpace(groupMember)) { FillCaptionsList(dataView, groupMember); } FillXYValuesList(dataView, xMember); var selCaptions = GetSelectedCaptions().ToHashSet(); var selXYValues = GetSelectedXYSeries().ToHashSet(); var collection = dataView.Cast <DataRowView>(); if (selCaptions.Count > 0) { collection = (from n in collection let v = Convert.ToString(n[groupMember]) where selCaptions.Contains(v) select n); } if (selXYValues.Count > 0) { collection = (from n in collection let v = Convert.ToString(n[xMember]) where selXYValues.Contains(v) select n); } return(collection); }
protected void BindGridData(BindingInfoEntity entiry) { var sqlDs = ReportUnitHelper.CreateDataSource(entiry.SqlQuery); var dataView = (DataView)sqlDs.Select(new DataSourceSelectArguments()); if (dataView == null) { return; } lblReportTitle.Text = entiry.Name; var dataTable = ReportUnitHelper.GetGridDataTable(entiry, dataView.Cast <DataRowView>()); var dataSet = new DataSet(); dataSet.Tables.Add(dataTable); BindGridData(dataSet); }
protected void BindChartData(DataTable dataTable, String defChartType, String groupMember, String xMember, String yMember, int?xLabelAngle) { var selReportType = GetSelectedReportTypes().FirstOrDefault(); var reportType = ReportUnitHelper.GetChartType(selReportType, defChartType); var chartType = reportType.GetValueOrDefault(SeriesChartType.Line); FillChartData(dataTable, chartType, xLabelAngle); mainChart.ApplyPaletteColors(); if (selReportType == "Grid") { pnlMainGrid.Visible = true; pnlChartImage.Visible = false; } else { pnlMainGrid.Visible = false; pnlChartImage.Visible = true; } }