/// <summary> /// Binds the data filters grid in the Settings dialog /// </summary> protected void BindDataFiltersGrid() { var rockContext = new RockContext(); var reportService = new ReportService(rockContext); var reportId = rpReport.SelectedValueAsId(); Report report = null; if (reportId.HasValue) { report = reportService.Get(reportId.Value); } nbConfigurationWarning.Visible = false; if (report != null && report.DataView != null && report.DataView.DataViewFilter != null) { var filters = ReportingHelper.GetFilterInfoList(report.DataView); // remove the top level group filter if it is just a GROUPALL filters = filters.Where(a => a.ParentFilter != null || a.FilterExpressionType != FilterExpressionType.GroupAll).ToList(); // set the Title and Summary of Grouped Filters based on the GroupFilter's child filter titles foreach (var groupedFilter in filters.Where(a => a.FilterExpressionType != FilterExpressionType.Filter)) { groupedFilter.Title = string.Format("[{0}]", groupedFilter.FilterExpressionType.ConvertToString()); } ddlPersonIdField.Visible = report.EntityTypeId != EntityTypeCache.GetId <Rock.Model.Person>(); ddlPersonIdField.Items.Clear(); ddlPersonIdField.Items.Add(new ListItem()); ddlPersonIdField.Items.Add(new ListItem("Id", "Id")); foreach (var reportField in report.ReportFields) { ddlPersonIdField.Items.Add(new ListItem(reportField.ColumnHeaderText, reportField.ColumnHeaderText)); } rptDataFilters.Visible = true; mdConfigure.ServerSaveLink.Disabled = false; rptDataFilters.DataSource = filters; rptDataFilters.DataBind(); } else { rptDataFilters.Visible = false; } }