public static string Transform(IList<object[]> reportData, Report report, int subType, 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])); } xml.Append("/>"); } xml.Append("</reportResult>"); } else { xml = xml.Append(string.Format("<div class='noContentBlock'>{0}</div>", ProjectsCommonResource.NoData)); } return Transform(xml.ToString(), report, subType, view, templateID); }
private void InitReport() { var filter = TaskFilter.FromUri(HttpContext.Current.Request.GetUrlRewriter()); var reportType = Request["reportType"]; if (string.IsNullOrEmpty(reportType)) return; Report = Report.CreateNewReport((ReportType) int.Parse(reportType), filter); var filters = (ReportFilters)LoadControl(PathProvider.GetFileStaticRelativePath("Reports/ReportFilters.ascx")); filters.Report = Report; _filter.Controls.Add(filters); }
protected void Page_Load(object sender, EventArgs e) { Template = Page.EngineFactory.ReportEngine.GetTemplate(int.Parse(Request["tmplId"])); if (Template == null) { Page.RedirectNotFound("Reports.aspx"); } else { var filters = (ReportFilters)LoadControl(PathProvider.GetFileStaticRelativePath("Reports/ReportFilters.ascx")); filters.Report = Report.CreateNewReport(Template.ReportType, Template.Filter); _filter.Controls.Add(filters); InitTmplParam(); Page.Title = HeaderStringHelper.GetPageTitle(string.Format(ReportResource.ReportPageTitle, HttpUtility.HtmlDecode(Template.Name))); } }
private void InitReport() { var filter = TaskFilter.FromUri(HttpContext.Current.Request.GetUrlRewriter()); var reportType = Request["reportType"]; if (string.IsNullOrEmpty(reportType)) { return; } Report = Report.CreateNewReport((ReportType)int.Parse(reportType), filter); var filters = (ReportFilters)LoadControl(PathProvider.GetFileStaticRelativePath("Reports/ReportFilters.ascx")); filters.Report = Report; _filter.Controls.Add(filters); }
public static string Transform(string xml, Report report, int subType, 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 = Transform(xml, report, subType, ReportViewType.Html, templateID); } var xslt = GetXslTransform(report.ReportType, subType, 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 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 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; }