コード例 #1
0
        /// <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;
            }
        }