public string BuildReport(ReportViewType viewType, int templateID) { //prepare filter if (templateID != 0 && !Filter.FromDate.Equals(DateTime.MinValue)) { var interval = Filter.ToDate.DayOfYear - Filter.FromDate.DayOfYear; switch (ExtendedReportType.GetReportType()) { case ReportType.TasksByUsers: case ReportType.TasksByProjects: { Filter.FromDate = TenantUtil.DateTimeNow().Date.AddDays(-interval); Filter.ToDate = TenantUtil.DateTimeNow().Date; } break; case ReportType.MilestonesNearest: { Filter.FromDate = TenantUtil.DateTimeNow().Date; Filter.ToDate = TenantUtil.DateTimeNow().Date.AddDays(interval); } break; } } //exec var data = ExtendedReportType.BuildReport(Filter).ToList(); return(!data.Any() ? CreateNewReport(ReportType.EmptyReport, Filter).Transform(new List <object[]>(), viewType, templateID) : this.Transform(data.ToList(), viewType, templateID)); }
private static XsltArgumentList GetXslParameters(ReportType reportType, ReportViewType view) { var parameters = new XsltArgumentList(); if (view == ReportViewType.EMail) { parameters.AddParam("p0", string.Empty, CommonLinkUtility.GetFullAbsolutePath("~/products/projects/templates.aspx")); parameters.AddParam("p1", string.Empty, ReportResource.ChangeSettings); } else if (view == ReportViewType.Csv) { var csvColumns = ReportHelper.GetCsvColumnsName(reportType); for (int i = 0; i < csvColumns.Length; i++) { parameters.AddParam("p" + i, string.Empty, csvColumns[i]); } } else { var columns = ReportHelper.GetReportInfo(reportType).Columns; for (int i = 0; i < columns.Length; i++) { parameters.AddParam("p" + i, string.Empty, columns[i]); } } return(parameters); }
private static string ToString(object value, ReportViewType view) { if (value == null) { return(null); } if (value is Enum) { return(((Enum)value).ToString("d")); } if (value is DateTime) { return(((DateTime)value).ToString("o")); } if (value is float) { return(((float)value).ToString(CultureInfo.InvariantCulture)); } value = value.ToString() .Replace("&", "&") .Replace("<", "<") .Replace(">", ">") .Replace("\"", """); if (view == ReportViewType.Csv && (value as string).Contains(",")) { value = string.Format(""{0}"", value); } return(value.ToString()); }
/// <summary> Gets the given request. </summary> /// <param name="request"> The request. </param> /// <returns> A Task<object> </returns> public async Task <object> Get(GetReportHeaders request) { if (string.IsNullOrEmpty(request.IncludeItemTypes)) { return(null); } request.DisplayType = "Screen"; ReportViewType reportViewType = ReportHelper.GetReportViewType(request.ReportView); List <ReportHeader> result = new List <ReportHeader>(); switch (reportViewType) { case ReportViewType.ReportData: ReportBuilder dataBuilder = new ReportBuilder(_libraryManager); result = dataBuilder.GetHeaders(request); break; case ReportViewType.ReportActivities: ReportActivitiesBuilder activityBuilder = new ReportActivitiesBuilder(_libraryManager, _userManager); result = activityBuilder.GetHeaders(request); break; } return(ToOptimizedResult(result)); }
public ReportResult GetReportResult(BaseItem[] items, ReportViewType reportRowType, BaseReportRequest request) { List <HeaderMetadata> headersMetadata = this.GetFilteredReportHeaderMetadata(reportRowType, request); var headers = GetReportHeaders(reportRowType, headersMetadata); var rows = GetReportRows(items, headersMetadata); ReportResult result = new ReportResult { Headers = headers }; HeaderMetadata groupBy = ReportHelper.GetHeaderMetadataType(request.GroupBy); int i = headers.FindIndex(x => x.FieldName == groupBy); if (groupBy != HeaderMetadata.None && i > 0) { var rowsGroup = rows.SelectMany(x => x.Columns[i].Name.Split(';'), (x, g) => new { Genre = g.Trim(), Rows = x }) .GroupBy(x => x.Genre) .OrderBy(x => x.Key) .Select(x => new ReportGroup { Name = x.Key, Rows = x.Select(r => r.Rows).ToList() }); result.Groups = rowsGroup.ToList(); result.IsGrouped = true; } else { result.Rows = rows; result.IsGrouped = false; } return(result); }
public static string BuildReport(ReportType reportType, TaskFilter filter, ReportViewType viewType, int templateID) { //prepare filter if (templateID != 0 && !filter.FromDate.Equals(DateTime.MinValue)) { var interval = filter.ToDate.DayOfYear - filter.FromDate.DayOfYear; switch (reportType) { case ReportType.TasksByUsers: case ReportType.TasksByProjects: { filter.FromDate = TenantUtil.DateTimeNow().Date.AddDays(-interval); filter.ToDate = TenantUtil.DateTimeNow().Date; } break; case ReportType.MilestonesNearest: { filter.FromDate = TenantUtil.DateTimeNow().Date; filter.ToDate = TenantUtil.DateTimeNow().Date.AddDays(interval); } break; } } //exec var report = Report.CreateNewReport(reportType, filter); var data = report.BuildReport().ToList(); if (!data.Any()) report = Report.CreateNewReport(ReportType.EmptyReport, filter); return ReportTransformer.Transform(data.ToList(), report, filter.ViewType, viewType, templateID); }
public ReportResult GetReportResult(BaseItem[] items, ReportViewType reportRowType, BaseReportRequest request) { List<HeaderMetadata> headersMetadata = this.GetFilteredReportHeaderMetadata(reportRowType, request); var headers = GetReportHeaders(reportRowType, headersMetadata); var rows = GetReportRows(items, headersMetadata); ReportResult result = new ReportResult { Headers = headers }; HeaderMetadata groupBy = ReportHelper.GetHeaderMetadataType(request.GroupBy); int i = headers.FindIndex(x => x.FieldName == groupBy); if (groupBy != HeaderMetadata.None && i > 0) { var rowsGroup = rows.SelectMany(x => x.Columns[i].Name.Split(';'), (x, g) => new { Genre = g.Trim(), Rows = x }) .GroupBy(x => x.Genre) .OrderBy(x => x.Key) .Select(x => new ReportGroup { Name = x.Key, Rows = x.Select(r => r.Rows).ToList() }); result.Groups = rowsGroup.ToList(); result.IsGrouped = true; } else { result.Rows = rows; result.IsGrouped = false; } return result; }
public static string Transform(this Report report, IList<object[]> reportData, ReportViewType view, int templateID) { var xml = new StringBuilder(); if (reportData.Count != 0) { xml = xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>") .Append("<reportResult>"); foreach (var row in reportData) { xml.Append("<r "); for (var i = 0; i < row.Length; i++) { xml.AppendFormat("c{0}=\"{1}\" ", i, ToString(row[i], view)); } xml.Append("/>"); } xml.Append("</reportResult>"); } else { xml = xml.Append(string.Format("<div class='noContentBlock'>{0}</div>", ProjectsCommonResource.NoData)); } return report.Transform(xml.ToString(), view, templateID); }
public static string Transform(this Report report, string xml, ReportViewType view, int templateID) { if (view == ReportViewType.Xml) { return(Encoding.UTF8.GetString(Encoding.Convert(Encoding.Unicode, Encoding.UTF8, Encoding.Unicode.GetBytes(xml)))); } if (view == ReportViewType.EMail) { xml = report.Transform(xml, ReportViewType.Html, templateID); } var xslt = report.GetXslTransform(view); if (xslt == null) { throw new InvalidOperationException("Xslt not found for type " + report.ReportType + " and view " + view); } using (var reader = XmlReader.Create(new StringReader(xml))) using (var writer = new StringWriter()) using (XmlWriter.Create(writer, new XmlWriterSettings { Encoding = Encoding.UTF8 })) { xslt.Transform(reader, GetXslParameters(report, view, templateID), writer); return(writer.ToString()); } }
private static XslCompiledTransform GetXslTransform(this Report report, ReportViewType viewType) { var viewTypeStr = viewType.ToString().ToLower(); return(GetXslTransform(string.Format("{0}_{1}.{2}.xsl", report.ReportType, report.Filter.ViewType, viewTypeStr)) ?? GetXslTransform(string.Format("{0}.{1}.xsl", report.ReportType, viewTypeStr)) ?? GetXslTransform(string.Format("{0}.xsl", viewTypeStr))); }
/// <summary> Gets report statistic. </summary> /// <param name="request"> The request. </param> /// <returns> The report statistic. </returns> private async Task <ReportStatResult> GetReportStatistic(GetReportStatistics request) { ReportViewType reportRowType = ReportHelper.GetRowType(request.IncludeItemTypes); QueryResult <BaseItem> queryResult = await GetQueryResult(request).ConfigureAwait(false); ReportStatBuilder reportBuilder = new ReportStatBuilder(_libraryManager); ReportStatResult reportResult = reportBuilder.GetReportStatResult(queryResult.Items, ReportHelper.GetRowType(request.IncludeItemTypes), request.TopItems ?? 5); reportResult.TotalRecordCount = reportResult.Groups.Count(); return(reportResult); }
public List <HeaderMetadata> GetFilteredReportHeaderMetadata(ReportViewType reportRowType, BaseReportRequest request) { if (request != null && !string.IsNullOrEmpty(request.ReportColumns)) { var s = request.ReportColumns.Split('|').Select(x => ReportHelper.GetHeaderMetadataType(x)).Where(x => x != HeaderMetadata.None); return(s.ToList()); } else { return(this.GetDefaultReportHeaderMetadata(reportRowType)); } }
/// <summary> Gets the given request. </summary> /// <param name="request"> The request. </param> /// <returns> A Task<object> </returns> public async Task <object> Get(GetReportDownload request) { if (string.IsNullOrEmpty(request.IncludeItemTypes)) { return(null); } var headers = new Dictionary <string, string>(); string fileExtension = "csv"; string contentType = "text/plain;charset='utf-8'"; switch (request.ExportType) { case ReportExportType.CSV: break; case ReportExportType.Excel: contentType = "application/vnd.ms-excel"; fileExtension = "xls"; break; } var filename = "ReportExport." + fileExtension; headers["Content-Disposition"] = string.Format("attachment; filename=\"{0}\"", filename); headers["Content-Encoding"] = "UTF-8"; ReportViewType reportRowType = ReportHelper.GetRowType(request.IncludeItemTypes); ReportBuilder reportBuilder = new ReportBuilder(_libraryManager); QueryResult <BaseItem> queryResult = await GetQueryResult(request).ConfigureAwait(false); ReportResult reportResult = reportBuilder.GetReportResult(queryResult.Items, reportRowType, request); reportResult.TotalRecordCount = queryResult.TotalRecordCount; string result = string.Empty; switch (request.ExportType) { case ReportExportType.CSV: result = new ReportExport().ExportToCsv(reportResult); break; case ReportExportType.Excel: result = new ReportExport().ExportToExcel(reportResult); break; } object ro = ResultFactory.GetResult(result, contentType, headers); return(ro); }
/// <summary> Gets the given request. </summary> /// <param name="request"> The request. </param> /// <returns> A Task<object> </returns> public async Task <object> Get(GetReportHeaders request) { if (string.IsNullOrEmpty(request.IncludeItemTypes)) { return(null); } ReportViewType reportRowType = ReportHelper.GetRowType(request.IncludeItemTypes); ReportBuilder reportBuilder = new ReportBuilder(_libraryManager); var reportResult = reportBuilder.GetReportHeaders(reportRowType, request); return(ToOptimizedResult(reportResult)); }
private void OutputData(string result, string reportName, Report report, ReportViewType outputFormat) { switch (outputFormat) { case ReportViewType.Html: reportResult.Text = result; var sb = new StringBuilder(); sb.Append("<div class='report-name'>"); sb.Append(reportName); sb.Append("<span class='generation-date'> ("); sb.Append(TenantUtil.DateTimeNow().ToString(DateTimeExtension.ShortDatePattern)); sb.Append(")</span>"); sb.Append("</div>"); reportFilter.Text = sb.ToString(); break; case ReportViewType.Xml: case ReportViewType.EMail: if (result != null) { var ext = outputFormat.ToString().ToLower(); Response.Clear(); Response.ContentType = "text/" + ext + "; charset=utf-8"; Response.ContentEncoding = Encoding.UTF8; Response.Charset = Encoding.UTF8.WebName; Response.AppendHeader("Content-Disposition", string.Format("attachment; filename={0}.{1}", report.FileName, ext)); Response.Write(result); Response.End(); } break; case ReportViewType.Csv: string fileURL; using (var memStream = new MemoryStream(Encoding.UTF8.GetBytes(result))) { var file = FileUploader.Exec(Files.Classes.Global.FolderMy.ToString(), report.FileName + ".csv", result.Length, memStream, true); fileURL = CommonLinkUtility.GetFileWebEditorUrl((int)file.ID); fileURL += string.Format("&options={{\"delimiter\":{0},\"codePage\":{1}}}", (int)Global.ReportCsvDelimiter.Key, Encoding.UTF8.CodePage); } Response.Redirect(fileURL); break; } }
public String Transform(XDocument reportData, ReportType reportType, ReportViewType reportView) { var xsltTransformResult = new XDocument(); using (var writer = xsltTransformResult.CreateWriter()) { var xslt = new XslCompiledTransform(); xslt.Load(XmlReader.Create(new StringReader(GetXSLTMarking(reportType, reportView))), null, new ReportXmlUrlResolver()); xslt.Transform(reportData.CreateReader(), GetXsltArgumentList(reportType, reportView), writer); } return(xsltTransformResult.ToString()); }
private static XsltArgumentList GetXslParameters(Report report, ReportViewType view, int templateID) { var parameters = new XsltArgumentList(); var columns = report.GetColumns(view, templateID); string logo = string.IsNullOrEmpty(SetupInfo.MainLogoMailTmplURL) ? "http://cdn.teamlab.com/media/newsletters/images/00.jpg" : SetupInfo.MainLogoMailTmplURL; for (var i = 0; i < columns.Count; i++) { parameters.AddParam("p" + i, string.Empty, columns[i]); } parameters.AddParam("p" + columns.Count, string.Empty, Global.ReportCsvDelimiter.Value); parameters.AddParam("logo", string.Empty, logo); return(parameters); }
private static XsltArgumentList GetXslParameters(this Report report, ReportViewType view, int templateID) { var parameters = new XsltArgumentList(); var columns = report.GetColumns(view, templateID); var logo = string.IsNullOrEmpty(SetupInfo.MainLogoMailTmplURL) ? CommonLinkUtility.GetFullAbsolutePath(TenantLogoManager.GetLogoLight(true)) : SetupInfo.MainLogoMailTmplURL; for (var i = 0; i < columns.Count; i++) { parameters.AddParam("p" + i, string.Empty, columns[i]); } parameters.AddParam("p" + columns.Count, string.Empty, Global.ReportCsvDelimiter.Value); parameters.AddParam("logo", string.Empty, logo); return(parameters); }
public static string Transform(IList<object[]> report, ReportType type, int subType, ReportViewType view) { var xml = new StringBuilder() .Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>") .Append("<reportResult>"); foreach (var row in report) { xml.Append("<r "); for (int i = 0; i < row.Length; i++) { xml.AppendFormat("c{0}=\"{1}\" ", i, ToString(row[i])); } xml.Append("/>"); } xml.Append("</reportResult>"); return Transform(xml.ToString(), type, subType, view); }
public List <ReportHeader> GetReportHeaders(ReportViewType reportRowType, BaseReportRequest request) { List <ReportHeader> headersMetadata = this.GetReportHeaders(reportRowType); if (request != null && !string.IsNullOrEmpty(request.ReportColumns)) { List <HeaderMetadata> headersMetadataFiltered = this.GetFilteredReportHeaderMetadata(reportRowType, request); foreach (ReportHeader reportHeader in headersMetadata) { if (!headersMetadataFiltered.Contains(reportHeader.FieldName)) { reportHeader.Visible = false; } } } return(headersMetadata); }
public List<ReportHeader> GetReportHeaders(ReportViewType reportRowType, BaseReportRequest request) { List<ReportHeader> headersMetadata = this.GetReportHeaders(reportRowType); if (request != null && !string.IsNullOrEmpty(request.ReportColumns)) { List<HeaderMetadata> headersMetadataFiltered = this.GetFilteredReportHeaderMetadata(reportRowType, request); foreach (ReportHeader reportHeader in headersMetadata) { if (!headersMetadataFiltered.Contains(reportHeader.FieldName)) { reportHeader.Visible = false; } } } return headersMetadata; }
public List<ReportHeader> GetReportHeaders(ReportViewType reportRowType, List<HeaderMetadata> headersMetadata = null) { if (headersMetadata == null) headersMetadata = this.GetDefaultReportHeaderMetadata(reportRowType); List<ReportOptions<BaseItem>> options = new List<ReportOptions<BaseItem>>(); foreach (HeaderMetadata header in headersMetadata) { options.Add(GetReportOption(header)); } List<ReportHeader> headers = new List<ReportHeader>(); foreach (ReportOptions<BaseItem> option in options) { headers.Add(option.Header); } return headers; }
private XsltArgumentList GetXsltArgumentList(ReportType reportType, ReportViewType reportView) { var xsltArgumentList = new XsltArgumentList(); switch (reportView) { case ReportViewType.Html: xsltArgumentList.AddParam("decimalFormat", "", "### ###.00"); xsltArgumentList.AddParam("csvExportUrl", "", String.Format("reports.aspx?reportType={0}&View={1}", reportType.ToString(), "csv").ToLower()); break; default: break; } return(xsltArgumentList); }
/// <summary> Gets report stat result. </summary> /// <param name="items"> The items. </param> /// <param name="reportRowType"> Type of the report row. </param> /// <param name="topItem"> The top item. </param> /// <returns> The report stat result. </returns> public ReportStatResult GetReportStatResult(BaseItem[] items, ReportViewType reportRowType, int topItem = 5) { ReportStatResult result = new ReportStatResult(); result = this.GetResultGenres(result, items, topItem); result = this.GetResultStudios(result, items, topItem); result = this.GetResultPersons(result, items, topItem); result = this.GetResultProductionYears(result, items, topItem); result = this.GetResulProductionLocations(result, items, topItem); result = this.GetResultCommunityRatings(result, items, topItem); result = this.GetResultParentalRatings(result, items, topItem); switch (reportRowType) { case ReportViewType.Season: case ReportViewType.Series: case ReportViewType.MusicAlbum: case ReportViewType.MusicArtist: case ReportViewType.Game: break; case ReportViewType.Movie: case ReportViewType.BoxSet: break; case ReportViewType.Book: case ReportViewType.Episode: case ReportViewType.Video: case ReportViewType.MusicVideo: case ReportViewType.Trailer: case ReportViewType.Audio: case ReportViewType.BaseItem: default: break; } result.Groups = result.Groups.OrderByDescending(n => n.Items.Count()).ToList(); return(result); }
public List <string> GetColumns(ReportViewType viewType, int templateID) { var parameters = new List <string>(); if (viewType == ReportViewType.EMail) { parameters.Add(CommonLinkUtility.GetFullAbsolutePath(string.Format("~/products/projects/reports.aspx?reportType={0}&tmplId={1}", ReportType, templateID))); parameters.Add(ReportResource.ChangeSettings); } else { parameters = viewType == ReportViewType.Csv ? ExtendedReportType.GetCsvColumnsName().ToList() : ReportInfo.Columns.ToList(); if (ReportType == ReportType.TimeSpend) { parameters.Add(Filter.PaymentStatuses.Count != 0 ? ((int)Filter.PaymentStatuses[0]).ToString(CultureInfo.InvariantCulture) : "-1"); } } return(parameters); }
private String GetXSLTMarking(ReportType reportType, ReportViewType reportView) { var folderPath = HttpContext.Current.Server.MapPath(@"~\products\crm\reports\"); var filePath = String.Empty; switch (reportType) { case ReportType.SalesByStage: filePath = String.Format("{0}/{1}.{2}.xsl", folderPath, reportType.ToString().ToLower(), reportView.ToString()); break; default: filePath = String.Format("{0}/{1}.{2}.xsl", folderPath, "sales", reportView.ToString()); break; } return File.ReadAllText(filePath); }
public static string Transform(this Report report, string xml, ReportViewType view, int templateID) { if (view == ReportViewType.Xml) { return Encoding.UTF8.GetString(Encoding.Convert(Encoding.Unicode, Encoding.UTF8, Encoding.Unicode.GetBytes(xml))); } if (view == ReportViewType.EMail) { xml = report.Transform(xml, ReportViewType.Html, templateID); } var xslt = report.GetXslTransform(view); if (xslt == null) throw new InvalidOperationException("Xslt not found for type " + report.ReportType + " and view " + view); using (var reader = XmlReader.Create(new StringReader(xml))) using (var writer = new StringWriter()) using (XmlWriter.Create(writer, new XmlWriterSettings { Encoding = Encoding.UTF8 })) { xslt.Transform(reader, GetXslParameters(report, view, templateID), writer); return writer.ToString(); } }
/// <summary> Gets report stat result. </summary> /// <param name="items"> The items. </param> /// <param name="reportRowType"> Type of the report row. </param> /// <param name="topItem"> The top item. </param> /// <returns> The report stat result. </returns> public ReportStatResult GetReportStatResult(BaseItem[] items, ReportViewType reportRowType, int topItem = 5) { ReportStatResult result = new ReportStatResult(); result = this.GetResultGenres(result, items, topItem); result = this.GetResultStudios(result, items, topItem); result = this.GetResultPersons(result, items, topItem); result = this.GetResultProductionYears(result, items, topItem); result = this.GetResulProductionLocations(result, items, topItem); result = this.GetResultCommunityRatings(result, items, topItem); result = this.GetResultParentalRatings(result, items, topItem); switch (reportRowType) { case ReportViewType.Season: case ReportViewType.Series: case ReportViewType.MusicAlbum: case ReportViewType.MusicArtist: case ReportViewType.Game: break; case ReportViewType.Movie: case ReportViewType.BoxSet: break; case ReportViewType.Book: case ReportViewType.Episode: case ReportViewType.Video: case ReportViewType.MusicVideo: case ReportViewType.Trailer: case ReportViewType.Audio: case ReportViewType.BaseItem: default: break; } result.Groups = result.Groups.OrderByDescending(n => n.Items.Count()).ToList(); return result; }
public static string BuildReport(ReportType reportType, TaskFilter filter, ReportViewType viewType, int templateID) { //prepare filter if (templateID != 0 && !filter.FromDate.Equals(DateTime.MinValue)) { var interval = filter.ToDate.DayOfYear - filter.FromDate.DayOfYear; switch (reportType) { case ReportType.TasksByUsers: case ReportType.TasksByProjects: { filter.FromDate = TenantUtil.DateTimeNow().Date.AddDays(-interval); filter.ToDate = TenantUtil.DateTimeNow().Date; } break; case ReportType.MilestonesNearest: { filter.FromDate = TenantUtil.DateTimeNow().Date; filter.ToDate = TenantUtil.DateTimeNow().Date.AddDays(interval); } break; } } //exec var report = Report.CreateNewReport(reportType, filter); var data = report.BuildReport().ToList(); if (!data.Any()) { report = Report.CreateNewReport(ReportType.EmptyReport, filter); } return(ReportTransformer.Transform(data.ToList(), report, filter.ViewType, viewType, templateID)); }
public List <ReportHeader> GetReportHeaders(ReportViewType reportRowType, List <HeaderMetadata> headersMetadata = null) { if (headersMetadata == null) { headersMetadata = this.GetDefaultReportHeaderMetadata(reportRowType); } List <ReportOptions <BaseItem> > options = new List <ReportOptions <BaseItem> >(); foreach (HeaderMetadata header in headersMetadata) { options.Add(GetReportOption(header)); } List <ReportHeader> headers = new List <ReportHeader>(); foreach (ReportOptions <BaseItem> option in options) { headers.Add(option.Header); } return(headers); }
/// <summary> Gets the given request. </summary> /// <param name="request"> The request. </param> /// <returns> A Task<object> </returns> public object Get(GetReportDownload request) { if (string.IsNullOrEmpty(request.IncludeItemTypes)) { return(null); } request.DisplayType = "Export"; ReportViewType reportViewType = ReportHelper.GetReportViewType(request.ReportView); var headers = new Dictionary <string, string>(); string fileExtension = "csv"; string contentType = "text/plain;charset='utf-8'"; switch (request.ExportType) { case ReportExportType.CSV: break; case ReportExportType.Excel: contentType = "application/vnd.ms-excel"; fileExtension = "xls"; break; } var filename = "ReportExport." + fileExtension; headers["Content-Disposition"] = string.Format("attachment; filename=\"{0}\"", filename); headers["Content-Encoding"] = "UTF-8"; var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null; ReportResult result = null; switch (reportViewType) { case ReportViewType.ReportData: ReportIncludeItemTypes reportRowType = ReportHelper.GetRowType(request.IncludeItemTypes); ReportBuilder dataBuilder = new ReportBuilder(_libraryManager); QueryResult <BaseItem> queryResult = GetQueryResult(request, user); result = dataBuilder.GetResult(queryResult.Items, request); result.TotalRecordCount = queryResult.TotalRecordCount; break; case ReportViewType.ReportActivities: result = GetReportActivities(request); break; } string returnResult = string.Empty; switch (request.ExportType) { case ReportExportType.CSV: returnResult = new ReportExport().ExportToCsv(result); break; case ReportExportType.Excel: returnResult = new ReportExport().ExportToExcel(result); break; } return(_resultFactory.GetResult(returnResult, contentType, headers)); }
private static XslCompiledTransform GetXslTransform(ReportType reportType, int subType, ReportViewType viewType) { var viewTypeStr = viewType.ToString().ToLower(); return GetXslTransform(string.Format("{0}_{1}.{2}.xsl", reportType, subType, viewTypeStr)) ?? GetXslTransform(string.Format("{0}.{1}.xsl", reportType, viewTypeStr)) ?? GetXslTransform(string.Format("{0}.xsl", viewTypeStr)); }
private XsltArgumentList GetXsltArgumentList(ReportType reportType, ReportViewType reportView) { var xsltArgumentList = new XsltArgumentList(); switch (reportView) { case ReportViewType.Html: xsltArgumentList.AddParam("decimalFormat", "", "### ###.00"); xsltArgumentList.AddParam("csvExportUrl", "", String.Format("reports.aspx?reportType={0}&View={1}", reportType.ToString(), "csv").ToLower()); break; default: break; } return xsltArgumentList; }
private bool Run(string clientId, string queryId, string reportName, ref string filterStr, ReportViewType reportViewType, string exportFileName) { try { var fileName = string.Format("{0}.rpt", reportName); var filePath = GetRptPath(fileName); if (string.IsNullOrEmpty(clientId) || string.IsNullOrEmpty(queryId) || string.IsNullOrEmpty(filePath) || !IsRptExisted(filePath)) { return(false); } var run = MESReportRun.Instance; run.ReportClientId = clientId; /* var queryReport = run.ReportQueryManager.Get (clientId, fileName); * if (queryReport != null) { * if (queryReport.QueryID == queryId) { * if (queryReport.IsCompleted == 0) { * if (queryReport.ReportRuntime != null) { * filterStr = queryReport.ReportRuntime.FilterStr; * } * return true; * } * return true; * } * }*/ var key = clientId + queryId; var queryReport = run.ReportQueryManager.Get(key); if (queryReport != null) { if (queryReport.IsCompleted == 0) { if (queryReport.ReportRuntime != null) { filterStr = queryReport.ReportRuntime.FilterStr; } return(true); } } return(run.RunReportServer(filePath, fileName, queryId, true, ref filterStr, reportViewType, true, exportFileName)); } catch (Exception ex) { Message.Info(string.Format("message:{0},StackTrace:{1}", ex.Message, ex.StackTrace)); return(false); } }
private bool Run(string clientId, string queryId, string reportName, string filterStr, ReportViewType reportViewType) { try { var fileName = string.Format("{0}.rpt", reportName); var filePath = GetRptBySearchPath(fileName); if (string.IsNullOrEmpty(clientId) || string.IsNullOrEmpty(queryId) || string.IsNullOrEmpty(filePath) || !IsRptExisted(filePath)) { return(false); } var run = MESReportRun.Instance; run.ReportClientId = clientId; //var queryReport = run.ReportQueryManager.Get (clientId, fileName); var queryReport = run.ReportQueryManager.Get(queryId); if (queryReport != null) { //if (queryReport.QueryID == queryId) { return(true); //} } return(run.RunReportServer(filePath, fileName, queryId, true, ref filterStr, reportViewType, false, Path.GetFileName(reportName))); } catch (Exception ex) { Message.Info(string.Format("message:{0},StackTrace:{1}", ex.Message, ex.StackTrace)); return(false); } }
public List<HeaderMetadata> GetFilteredReportHeaderMetadata(ReportViewType reportRowType, BaseReportRequest request) { if (request != null && !string.IsNullOrEmpty(request.ReportColumns)) { var s = request.ReportColumns.Split('|').Select(x => ReportHelper.GetHeaderMetadataType(x)).Where(x => x != HeaderMetadata.None); return s.ToList(); } else return this.GetDefaultReportHeaderMetadata(reportRowType); }
private static XsltArgumentList GetXslParameters(this Report report, ReportViewType view, int templateID) { var parameters = new XsltArgumentList(); var columns = report.GetColumns(view, templateID); var logo = string.IsNullOrEmpty(SetupInfo.MainLogoMailTmplURL) ? "http://cdn.teamlab.com/media/newsletters/images/00.jpg" : SetupInfo.MainLogoMailTmplURL; for (var i = 0; i < columns.Count; i++) { parameters.AddParam("p" + i, string.Empty, columns[i]); } parameters.AddParam("p" + columns.Count, string.Empty, Global.ReportCsvDelimiter.Value); parameters.AddParam("logo", string.Empty, logo); return parameters; }
public static string BuildReport(ReportType reportType, ReportFilter filter, ReportViewType viewType) { //prepare filter if (reportType == ReportType.MilestonesExpired) { filter.ToDate = TenantUtil.DateTimeNow(); } if (reportType == ReportType.TasksExpired) { filter.ToDate = TenantUtil.DateTimeNow(); filter.TaskStatuses.Add(TaskStatus.Open); } //exec IList<object[]> result = null; if (reportType == ReportType.UsersActivity) { result = BuildUserActivityReport(filter); } else { result = Global.EngineFactory.GetReportEngine().BuildReport(reportType, filter); if (reportType == ReportType.TasksExpired) { var tmp = new List<object[]>(); foreach (var row in result) if (row[10] != null)//task has due date tmp.Add(row); result = tmp; } } if (result == null || result.Count == 0) { return null; } //add user info switch (reportType) { case ReportType.UsersWithoutActiveTasks: case ReportType.UsersWorkload: case ReportType.TimeSpend: case ReportType.UsersActivity: result = AddUserInfo(result, 0); result = result .OrderBy(r => CoreContext.UserManager.GetUsers((Guid)r[0]), UserInfoComparer.Default) .ToList(); break; case ReportType.ProjectsWithoutActiveMilestones: case ReportType.ProjectsWithoutActiveTasks: case ReportType.ProjectsList: result = AddUserInfo(result, 2); result = result .OrderBy(r => (string)r[1]) .ToList(); break; case ReportType.TasksByProjects: case ReportType.TasksByUsers: case ReportType.TasksExpired: result = AddUserInfo(result, 8); result = AddStatusCssClass(result); break; } return ReportTransformer.Transform(result, reportType, filter.ViewType, viewType); }
private static XslCompiledTransform GetXslTransform(ReportType reportType, int subType, ReportViewType viewType) { var viewTypeStr = viewType.ToString().ToLower(); return(GetXslTransform(string.Format("{0}_{1}.{2}.xsl", reportType, subType, viewTypeStr)) ?? GetXslTransform(string.Format("{0}.{1}.xsl", reportType, viewTypeStr)) ?? GetXslTransform(string.Format("{0}.xsl", viewTypeStr))); }
private static XsltArgumentList GetXslParameters(ReportType reportType, ReportViewType view) { var parameters = new XsltArgumentList(); if (view == ReportViewType.EMail) { parameters.AddParam("p0", string.Empty, CommonLinkUtility.GetFullAbsolutePath("~/products/projects/templates.aspx")); parameters.AddParam("p1", string.Empty, ReportResource.ChangeSettings); } else if (view == ReportViewType.Csv) { var csvColumns = ReportHelper.GetCsvColumnsName(reportType); for (int i = 0; i < csvColumns.Length; i++) { parameters.AddParam("p" + i, string.Empty, csvColumns[i]); } } else { var columns = ReportHelper.GetReportInfo(reportType).Columns; for (int i = 0; i < columns.Length; i++) { parameters.AddParam("p" + i, string.Empty, columns[i]); } } return parameters; }
public List<string> GetColumns(ReportViewType viewType, int templateID) { var parameters = new List<string>(); if (viewType == ReportViewType.EMail) { parameters.Add(CommonLinkUtility.GetFullAbsolutePath(string.Format("~/products/projects/reports.aspx?reportType={0}&tmplId={1}", (int)ReportType, templateID))); parameters.Add(ReportResource.ChangeSettings); } else { parameters = viewType == ReportViewType.Csv ? ExtendedReportType.GetCsvColumnsName().ToList() : ReportInfo.Columns.ToList(); if (ReportType == ReportType.TimeSpend) { parameters.Add(Filter.PaymentStatuses.Count != 0 ? ((int)Filter.PaymentStatuses[0]).ToString(CultureInfo.InvariantCulture) : "-1"); } } return parameters; }
public string BuildReport(ReportViewType viewType, int templateID) { //prepare filter if (templateID != 0 && !Filter.FromDate.Equals(DateTime.MinValue)) { var interval = Filter.ToDate.DayOfYear - Filter.FromDate.DayOfYear; switch (ExtendedReportType.GetReportType()) { case ReportType.TasksByUsers: case ReportType.TasksByProjects: { Filter.FromDate = TenantUtil.DateTimeNow().Date.AddDays(-interval); Filter.ToDate = TenantUtil.DateTimeNow().Date; } break; case ReportType.MilestonesNearest: { Filter.FromDate = TenantUtil.DateTimeNow().Date; Filter.ToDate = TenantUtil.DateTimeNow().Date.AddDays(interval); } break; } } //exec var data = ExtendedReportType.BuildReport(Filter).ToList(); return !data.Any() ? CreateNewReport(ReportType.EmptyReport, Filter).Transform(new List<object[]>(), viewType, templateID) : this.Transform(data.ToList(), viewType, templateID); }
public String Transform(XDocument reportData, ReportType reportType, ReportViewType reportView) { var xsltTransformResult = new XDocument(); using (var writer = xsltTransformResult.CreateWriter()) { var xslt = new XslCompiledTransform(); xslt.Load(XmlReader.Create(new StringReader(GetXSLTMarking(reportType, reportView))), null, new ReportXmlUrlResolver()); xslt.Transform(reportData.CreateReader(), GetXsltArgumentList(reportType, reportView), writer); } return xsltTransformResult.ToString(); }
private static bool Run(string clientId, string queryId, string reportName, string filterStr, ReportViewType reportViewType) { try { var fileName = reportName.EndsWith("rpt") ? reportName : string.Format("{0}.rpt", reportName); var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName); if (string.IsNullOrEmpty(clientId) || string.IsNullOrEmpty(queryId) || string.IsNullOrEmpty(filePath) || !File.Exists(filePath)) { return(false); } var run = MESReportRun.Instance; run.ReportClientId = clientId; return(run.RunReportServer(filePath, fileName, queryId, true, ref filterStr, reportViewType, false)); } catch (Exception ex) { log.Info(string.Format("message:{0},StackTrace:{1}", ex.Message, ex.StackTrace)); return(false); } }
private static XslCompiledTransform GetXslTransform(this Report report, ReportViewType viewType) { var viewTypeStr = viewType.ToString().ToLower(); return GetXslTransform(string.Format("{0}_{1}.{2}.xsl", report.ReportType, report.Filter.ViewType, viewTypeStr)) ?? GetXslTransform(string.Format("{0}.{1}.xsl", report.ReportType, viewTypeStr)) ?? GetXslTransform(string.Format("{0}.xsl", viewTypeStr)); }
private static XsltArgumentList GetXslParameters(this Report report, ReportViewType view, int templateID) { var parameters = new XsltArgumentList(); var columns = report.GetColumns(view, templateID); var logo = string.IsNullOrEmpty(SetupInfo.MainLogoMailTmplURL) ? CommonLinkUtility.GetFullAbsolutePath(TenantLogoManager.GetLogoLight(true)) : SetupInfo.MainLogoMailTmplURL; for (var i = 0; i < columns.Count; i++) { parameters.AddParam("p" + i, string.Empty, columns[i]); } parameters.AddParam("p" + columns.Count, string.Empty, Global.ReportCsvDelimiter.Value); parameters.AddParam("logo", string.Empty, logo); return parameters; }
public List<HeaderMetadata> GetDefaultReportHeaderMetadata(ReportViewType reportRowType) { switch (reportRowType) { case ReportViewType.Season: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Series, HeaderMetadata.Season, HeaderMetadata.SeasonNumber, HeaderMetadata.DateAdded, HeaderMetadata.Year, HeaderMetadata.Genres }; case ReportViewType.Series: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.Network, HeaderMetadata.DateAdded, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Trailers, HeaderMetadata.Specials }; case ReportViewType.MusicAlbum: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.AlbumArtist, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Tracks, HeaderMetadata.Year, HeaderMetadata.Genres }; case ReportViewType.MusicArtist: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.MusicArtist, HeaderMetadata.Countries, HeaderMetadata.DateAdded, HeaderMetadata.Year, HeaderMetadata.Genres }; case ReportViewType.Game: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.GameSystem, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Players, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.Trailers }; case ReportViewType.Movie: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Video, HeaderMetadata.Resolution, HeaderMetadata.Audio, HeaderMetadata.Subtitles, HeaderMetadata.Trailers, HeaderMetadata.Specials }; case ReportViewType.Book: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating }; case ReportViewType.BoxSet: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Trailers }; case ReportViewType.Audio: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.AudioAlbumArtist, HeaderMetadata.AudioAlbum, HeaderMetadata.Disc, HeaderMetadata.Track, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Audio }; case ReportViewType.Episode: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.EpisodeSeries, HeaderMetadata.Season, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Video, HeaderMetadata.Resolution, HeaderMetadata.Audio, HeaderMetadata.Subtitles, HeaderMetadata.Trailers, HeaderMetadata.Specials }; case ReportViewType.Video: case ReportViewType.MusicVideo: case ReportViewType.Trailer: case ReportViewType.BaseItem: default: return new List<HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Video, HeaderMetadata.Resolution, HeaderMetadata.Audio, HeaderMetadata.Subtitles, HeaderMetadata.Trailers, HeaderMetadata.Specials }; } }
public static string BuildReport(ReportType reportType, ReportFilter filter, ReportViewType viewType) { //prepare filter if (reportType == ReportType.MilestonesExpired) { filter.ToDate = TenantUtil.DateTimeNow(); } if (reportType == ReportType.TasksExpired) { filter.ToDate = TenantUtil.DateTimeNow(); filter.TaskStatuses.Add(TaskStatus.Open); } //exec IList <object[]> result = null; if (reportType == ReportType.UsersActivity) { result = BuildUserActivityReport(filter); } else { result = Global.EngineFactory.GetReportEngine().BuildReport(reportType, filter); if (reportType == ReportType.TasksExpired) { var tmp = new List <object[]>(); foreach (var row in result) { if (row[10] != null)//task has due date { tmp.Add(row); } } result = tmp; } } if (result == null || result.Count == 0) { return(null); } //add user info switch (reportType) { case ReportType.UsersWithoutActiveTasks: case ReportType.UsersWorkload: case ReportType.TimeSpend: case ReportType.UsersActivity: result = AddUserInfo(result, 0); result = result .OrderBy(r => CoreContext.UserManager.GetUsers((Guid)r[0]), UserInfoComparer.Default) .ToList(); break; case ReportType.ProjectsWithoutActiveMilestones: case ReportType.ProjectsWithoutActiveTasks: case ReportType.ProjectsList: result = AddUserInfo(result, 2); result = result .OrderBy(r => (string)r[1]) .ToList(); break; case ReportType.TasksByProjects: case ReportType.TasksByUsers: case ReportType.TasksExpired: result = AddUserInfo(result, 8); result = AddStatusCssClass(result); break; } return(ReportTransformer.Transform(result, reportType, filter.ViewType, viewType)); }
private static string ToString(object value, ReportViewType view) { if (value == null) return null; if (value is Enum) return ((Enum)value).ToString("d"); if (value is DateTime) return ((DateTime)value).ToString("o"); if (value is float) return ((float) value).ToString(CultureInfo.InvariantCulture); value = value.ToString() .Replace("&", "&") .Replace("<", "<") .Replace(">", ">") .Replace("\"", """); if (view == ReportViewType.Csv && (value as string).Contains(",")) value = string.Format(""{0}"", value); return value.ToString(); }
public List <HeaderMetadata> GetDefaultReportHeaderMetadata(ReportViewType reportRowType) { switch (reportRowType) { case ReportViewType.Season: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Series, HeaderMetadata.Season, HeaderMetadata.SeasonNumber, HeaderMetadata.DateAdded, HeaderMetadata.Year, HeaderMetadata.Genres }); case ReportViewType.Series: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.Network, HeaderMetadata.DateAdded, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Trailers, HeaderMetadata.Specials }); case ReportViewType.MusicAlbum: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.AlbumArtist, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Tracks, HeaderMetadata.Year, HeaderMetadata.Genres }); case ReportViewType.MusicArtist: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.MusicArtist, HeaderMetadata.Countries, HeaderMetadata.DateAdded, HeaderMetadata.Year, HeaderMetadata.Genres }); case ReportViewType.Game: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.GameSystem, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Players, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.Trailers }); case ReportViewType.Movie: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Video, HeaderMetadata.Resolution, HeaderMetadata.Audio, HeaderMetadata.Subtitles, HeaderMetadata.Trailers, HeaderMetadata.Specials }); case ReportViewType.Book: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating }); case ReportViewType.BoxSet: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Trailers }); case ReportViewType.Audio: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.AudioAlbumArtist, HeaderMetadata.AudioAlbum, HeaderMetadata.Disc, HeaderMetadata.Track, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Audio }); case ReportViewType.Episode: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.EpisodeSeries, HeaderMetadata.Season, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Video, HeaderMetadata.Resolution, HeaderMetadata.Audio, HeaderMetadata.Subtitles, HeaderMetadata.Trailers, HeaderMetadata.Specials }); case ReportViewType.Video: case ReportViewType.MusicVideo: case ReportViewType.Trailer: case ReportViewType.BaseItem: default: return(new List <HeaderMetadata> { HeaderMetadata.StatusImage, HeaderMetadata.Name, HeaderMetadata.DateAdded, HeaderMetadata.ReleaseDate, HeaderMetadata.Year, HeaderMetadata.Genres, HeaderMetadata.ParentalRating, HeaderMetadata.CommunityRating, HeaderMetadata.Runtime, HeaderMetadata.Video, HeaderMetadata.Resolution, HeaderMetadata.Audio, HeaderMetadata.Subtitles, HeaderMetadata.Trailers, HeaderMetadata.Specials }); } }
public static string Transform(this Report report, IList <object[]> reportData, ReportViewType view, int templateID) { var xml = new StringBuilder(); if (reportData.Count != 0) { xml = xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>") .Append("<reportResult>"); foreach (var row in reportData) { xml.Append("<r "); for (var i = 0; i < row.Length; i++) { xml.AppendFormat("c{0}=\"{1}\" ", i, ToString(row[i], view)); } xml.Append("/>"); } xml.Append("</reportResult>"); } else { xml = xml.Append(string.Format("<div class='noContentBlock'>{0}</div>", ProjectsCommonResource.NoData)); } return(report.Transform(xml.ToString(), view, templateID)); }
private void OutputData(string result, string reportName, Report report, ReportViewType outputFormat) { switch (outputFormat) { case ReportViewType.Html: reportResult.Text = result; var sb = new StringBuilder(); sb.Append("<div class='report-name'>"); sb.Append(reportName); sb.Append("<span class='generation-date'> ("); sb.Append(TenantUtil.DateTimeNow().ToString(DateTimeExtension.ShortDatePattern)); sb.Append(")</span>"); sb.Append("</div>"); reportFilter.Text = sb.ToString(); break; case ReportViewType.Xml: case ReportViewType.EMail: if (result != null) { var ext = outputFormat.ToString().ToLower(); Response.Clear(); Response.ContentType = "text/" + ext + "; charset=utf-8"; Response.ContentEncoding = Encoding.UTF8; Response.Charset = Encoding.UTF8.WebName; Response.AppendHeader("Content-Disposition", string.Format("attachment; filename={0}.{1}", report.FileName, ext)); Response.Write(result); Response.End(); } break; case ReportViewType.Csv: string fileURL; using (var memStream = new MemoryStream(Encoding.UTF8.GetBytes(result))) { var file = FileUploader.Exec(Files.Classes.Global.FolderMy.ToString(), report.FileName + ".csv", result.Length, memStream, true); fileURL = CommonLinkUtility.GetFileWebEditorUrl((int) file.ID); fileURL += string.Format("&options={{\"delimiter\":{0},\"codePage\":{1}}}", (int)Global.ReportCsvDelimiter.Key, Encoding.UTF8.CodePage); } Response.Redirect(fileURL); break; } }
private static XslCompiledTransform GetXslTransform(ReportType reportType, int subType, ReportViewType viewType) { return GetXslTransform(string.Format("{0}_{1}.{2}.xsl", reportType, subType, viewType)) ?? GetXslTransform(reportType, viewType) ?? GetXslTransform(string.Format("{0}.xsl", viewType)); }