Ejemplo n.º 1
0
        /// <summary> Gets report options. </summary>
        /// <typeparam name="T"> Generic type parameter. </typeparam>
        /// <param name="request"> The request. </param>
        /// <param name="getHeadersMetadata"> The get headers metadata. </param>
        /// <param name="getOptions"> Options for controlling the get. </param>
        /// <returns> The report options. </returns>
        protected List <ReportOptions <T> > GetReportOptions <T>(IReportsHeader request, Func <List <HeaderMetadata> > getHeadersMetadata, Func <HeaderMetadata, ReportOptions <T> > getOptions)
        {
            List <HeaderMetadata>     headersMetadata = getHeadersMetadata();
            List <ReportOptions <T> > options         = new List <ReportOptions <T> >();
            ReportDisplayType         displayType     = ReportHelper.GetReportDisplayType(request.DisplayType);

            foreach (HeaderMetadata header in headersMetadata)
            {
                ReportOptions <T> headerOptions = getOptions(header);
                if (this.DisplayTypeVisible(headerOptions.Header.DisplayType, displayType))
                {
                    options.Add(headerOptions);
                }
            }

            if (request != null && !string.IsNullOrEmpty(request.ReportColumns))
            {
                List <HeaderMetadata> headersMetadataFiltered = ReportHelper.GetFilteredReportHeaderMetadata(request.ReportColumns, () => headersMetadata);
                foreach (ReportHeader header in options.Select(x => x.Header))
                {
                    if (this.DisplayTypeVisible(header.DisplayType, displayType))
                    {
                        if (!headersMetadataFiltered.Contains(header.FieldName) && displayType != ReportDisplayType.Export)
                        {
                            header.DisplayType = ReportDisplayType.None;
                        }
                    }
                    else
                    {
                        header.DisplayType = ReportDisplayType.None;
                    }
                }
            }

            return(options);
        }
Ejemplo n.º 2
0
        /// <summary> Gets the headers. </summary>
        /// <typeparam name="T"> Generic type parameter. </typeparam>
        /// <param name="request"> The request. </param>
        /// <param name="getHeadersMetadata"> The get headers metadata. </param>
        /// <param name="getOptions"> Options for controlling the get. </param>
        /// <returns> The headers. </returns>
        protected List <ReportHeader> GetHeaders <T>(IReportsHeader request, Func <List <HeaderMetadata> > getHeadersMetadata, Func <HeaderMetadata, ReportOptions <T> > getOptions)
        {
            List <ReportOptions <T> > options = this.GetReportOptions(request, getHeadersMetadata, getOptions);

            return(this.GetHeaders(options));
        }