internal void RenderFixedHeaderScripts() { if (m_fixedHeaders == null || m_fixedHeaders.Count == 0 || !m_hasOnePage) { WriteStream("function "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("CreateFixedHeaders() {}"); WriteStream(HTML5Renderer.m_standardLineBreak); return; } WriteStream(HTMLRendererResources.GetBytes("FixedHeader.js")); StringBuilder stringBuilder = new StringBuilder(); string text = m_deviceInfo.JavascriptPrefixId + "FixedHeader"; stringBuilder.Append(text); stringBuilder.Append(" = new Microsoft_ReportingServices_HTMLRenderer_FixedHeader("); stringBuilder.Append("\"" + m_deviceInfo.HtmlPrefixId + "oReportDiv\","); stringBuilder.Append("\"" + m_deviceInfo.HtmlPrefixId + "oReportCell\","); stringBuilder.Append("\"" + m_deviceInfo.HtmlPrefixId + "oReportDiv\","); stringBuilder.Append("\"" + m_deviceInfo.HtmlPrefixId + "\");"); stringBuilder.Append("function "); stringBuilder.Append(m_deviceInfo.JavascriptPrefixId); stringBuilder.Append("CreateFixedHeaders(){"); StringBuilder stringBuilder2 = new StringBuilder(); RenderCreateFixedHeaderFunction(m_deviceInfo.JavascriptPrefixId, text, stringBuilder, stringBuilder2, createHeadersWithArray: false); WriteStream(stringBuilder2.ToString()); WriteStream(stringBuilder.ToString()); WriteStream("}"); WriteStream(HTML5Renderer.m_standardLineBreak); }
private void RenderFitProportionalScript() { if (base.NeedResizeImages) { WriteStream(HTMLRendererResources.GetBytes("FitProportional.js")); WriteStream(HTML5Renderer.m_standardLineBreak); string text = m_deviceInfo.JavascriptPrefixId + "FitProp"; WriteStream("var "); WriteStream(text); WriteStream(" = new Microsoft_ReportingServices_HTMLRenderer_FitProportional();"); WriteStream(HTML5Renderer.m_standardLineBreak); if (m_htmlFragment) { WriteStream("function "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("ResizeImage(o){ " + text + ".ResizeImage(o);}"); WriteStream(HTML5Renderer.m_standardLineBreak); } WriteStream("function "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("ResizeImages(){ " + text + ".PollResizeImages(\""); WriteAttrEncoded(m_deviceInfo.HtmlPrefixId); WriteStream("oReportDiv"); WriteStream("\"); }"); WriteStream(HTML5Renderer.m_standardLineBreak); } }
private void RenderHead() { string text = null; if (m_mainStream != null) { m_mainStream.Flush(); } if (!m_htmlFragment) { if (m_rplReport.Location != null) { text = m_rplReport.Location; if (text.Length > 0) { WriteStream("<META HTTP-EQUIV=\"Location\" CONTENT=\""); WriteAttrEncoded(text); WriteStream(HTMLElements.m_closeTag); WriteStream("<META HTTP-EQUIV=\"Uri\" CONTENT=\""); WriteAttrEncoded(text); WriteStream(HTMLElements.m_closeTag); } } string description = m_rplReport.Description; if (description != null && 0 < description.Length) { text = description; WriteStream("<META NAME=\"Description\" CONTENT=\""); WriteAttrEncoded(text); WriteStream(HTMLElements.m_closeTag); } string author = m_rplReport.Author; if (author != null && 0 < author.Length) { text = author; WriteStream("<META NAME=\"Author\" CONTENT=\""); WriteAttrEncoded(text); WriteStream(HTMLElements.m_closeTag); } int autoRefresh = m_rplReport.AutoRefresh; if (0 < autoRefresh) { WriteStream("<META HTTP-EQUIV=\"Refresh\" CONTENT=\""); WriteStream(autoRefresh.ToString(CultureInfo.InvariantCulture)); WriteStream(";url="); string reportUrl = m_report.GetReportUrl(addParams: false); CatalogItemUrlBuilder catalogItemUrlBuilder = new CatalogItemUrlBuilder(reportUrl); catalogItemUrlBuilder.AppendCatalogParameter("ResetSession", "True"); if (m_serverParams["SessionID"] != null) { catalogItemUrlBuilder.AppendCatalogParameter("SessionID", m_serverParams["SessionID"]); } catalogItemUrlBuilder.AppendRenderingParameters(m_rawDeviceInfo); if (m_allPages) { catalogItemUrlBuilder.AppendRenderingParameter("Section", "0"); } else { catalogItemUrlBuilder.AppendRenderingParameter("Section", m_pageNum.ToString(CultureInfo.InvariantCulture)); } if (m_deviceInfo.HtmlPrefixId != null && m_deviceInfo.HtmlPrefixId.Length > 0) { catalogItemUrlBuilder.AppendRenderingParameter("PrefixId", m_deviceInfo.HtmlPrefixId); } WriteAttrEncoded(ReplaceRoot(new Uri(catalogItemUrlBuilder.ToString()).AbsoluteUri)); WriteStream(HTMLElements.m_closeQuote); } WriteStream("<META HTTP-EQUIV=\"Last-Modified\" CONTENT=\""); WriteStream(m_rplReport.ExecutionTime.ToUniversalTime().ToString(CultureInfo.InvariantCulture)); WriteStream(HTMLElements.m_closeQuote); if (m_parameters != null) { object obj = null; foreach (ReportParameter parameter in m_parameters) { if (parameter.Name != null && parameter.Instance != null) { WriteStream("<META NAME=\""); WriteAttrEncoded(parameter.Name); WriteStream("\" CONTENT=\""); obj = parameter.Instance.Value; if (obj != null) { WriteAttrEncoded(obj.ToString()); } WriteStream(HTMLElements.m_closeQuote); } } } WriteStream("<META NAME=\"Generator\" CONTENT=\"Microsoft Report 8.0 \"/>"); WriteStream("<META NAME=\"Originator\" CONTENT=\"Microsoft Report 8.0 \"/>"); WriteStyle(HTMLRendererResources.GetBytes("jqueryui.min.css")); WriteStyle(HTMLRendererResources.GetBytes("Html5Renderer.css")); WriteScript(HTMLRendererResources.GetBytes("jquery.min.js")); WriteScript(HTMLRendererResources.GetBytes("Html5Renderer.js")); WriteScript(HTMLRendererResources.GetBytes("Html5RenderingExtensionJs.js")); } RenderHTMLHead(); }
private void RenderFinalScript() { if (!m_deviceInfo.AllowScript) { return; } WriteStream("<script language=\"javascript\" type=\"text/javascript\">"); WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream("//<![CDATA["); WriteStream(HTML5Renderer.m_standardLineBreak); if (HasFindStringScript) { WriteStream("window.location.replace('#oHit0');"); } if (HasInteractiveScript) { if (m_report.ShowHideToggle != null && m_deviceInfo.IsBrowserIE) { WriteStream("var "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("showHideId=\""); StringBuilder stringBuilder = new StringBuilder(); HTML5Renderer.QuoteString(stringBuilder, m_deviceInfo.HtmlPrefixId + m_report.ShowHideToggle); WriteStreamEncoded(stringBuilder.ToString()); WriteStream(HTMLElements.m_quote); WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream("function "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("GoToShowHideToggle(){if (document.getElementById("); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("showHideId) != null)window.location.replace(\"#\"+ "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("showHideId);}"); WriteStream(HTML5Renderer.m_standardLineBreak); } if (m_pageWithSortClicks) { WriteStream("var "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("sortUrlBase=\""); StringBuilder stringBuilder2 = new StringBuilder(); HTML5Renderer.QuoteString(stringBuilder2, BuildAbsoluteBookmarkOrSortBaseUrl(isSort: true)); WriteStream(stringBuilder2.ToString()); WriteStream(HTMLElements.m_quote); WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream("var "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("sortDirection=\"&rs:"); WriteStream("SortDirection"); WriteStream("="); WriteStream(HTMLElements.m_quote); WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream("var "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("clearSort=\"&rs:"); WriteStream("ClearSort"); WriteStream("="); WriteStream(HTMLElements.m_quote); WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream("function "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("Sort(id, direction){var clear=true;"); WriteStream("if (window.event && window.event.shiftKey) clear=false;"); WriteStream("var sortUrl="); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("sortUrlBase + id + "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("sortDirection + direction + "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("clearSort;"); WriteStream("if (clear) "); WriteStream("window.location.replace(sortUrl + \"True\");"); WriteStream("else "); WriteStream("window.location.replace(sortUrl + \"False\");}"); } if (m_report.SortItem != null) { WriteStream("var "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("sortId=\""); StringBuilder stringBuilder3 = new StringBuilder(); HTML5Renderer.QuoteString(stringBuilder3, m_deviceInfo.HtmlPrefixId + m_report.SortItem); WriteStreamEncoded(stringBuilder3.ToString()); WriteStream(HTMLElements.m_quote); WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream("function "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("GoToSortItem(){if (document.getElementById("); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("sortId) != null)window.location.replace(\"#\"+ "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("sortId);}"); WriteStream(HTML5Renderer.m_standardLineBreak); } if (m_report.HasBookmarks || m_deviceInfo.NavigationId != null) { WriteStream("function "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("GoToBookmark(id){window.location.replace(\"#\"+id);}"); WriteStream(HTML5Renderer.m_standardLineBreak); if (m_pageWithBookmarkLinks) { if (m_pageBookmarks == null || m_pageBookmarks.Count < 1) { WriteStream("var "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("bookmarkIds = [];"); } else { WriteStream("var "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("bookmarkIds = new Array(" + m_pageBookmarks.Count + ");"); ICollection keys = m_pageBookmarks.Keys; foreach (string item in keys) { WriteStream(m_deviceInfo.JavascriptPrefixId + "bookmarkIds[\"" + item + "\"] = \"" + m_pageBookmarks[item] + "\";"); } } WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream("var "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("bookmarkUrlBase=\""); StringBuilder stringBuilder4 = new StringBuilder(); HTML5Renderer.QuoteString(stringBuilder4, BuildAbsoluteBookmarkOrSortBaseUrl(isSort: false)); WriteStream(stringBuilder4.ToString()); WriteStream(HTMLElements.m_quote); WriteStream(";"); WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream("function "); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("GoVisibleBookmark(idLink){if ("); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("bookmarkIds == null) return;"); WriteStream("var isHref=true;"); WriteStream("if (bookmarkIds[idLink] != null) {"); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("GoToBookmark(bookmarkIds[idLink]);}"); WriteStream("else{window.location.replace("); WriteStream(m_deviceInfo.JavascriptPrefixId); WriteStream("bookmarkUrlBase + '&rc:BookmarkId=' + idLink);}}"); } } } WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream(HTMLRendererResources.GetBytes("Common.js")); WriteStream(HTML5Renderer.m_standardLineBreak); RenderFitProportionalScript(); RenderFixedHeaderScripts(); if (m_needsCanGrowFalseScript) { WriteStream(HTMLRendererResources.GetBytes("CanGrowFalse.js")); } if (m_emitImageConsolidationScaling) { WriteStream(HTMLRendererResources.GetBytes("ImageConsolidation.js")); } WriteStream("//]]>"); WriteStream(HTML5Renderer.m_standardLineBreak); WriteStream("</script>"); }
public void RenderReportItem(RPLElement reportItem, RPLItemMeasurement measurement, StyleContext styleContext, ref int borderContext, bool renderId, bool treatAsTopLevel) { RPLImageProps rPLImageProps = (RPLImageProps)reportItem.ElementProps; RPLImagePropsDef rPLImagePropsDef = (RPLImagePropsDef)rPLImageProps.Definition; RPLFormat.Sizings sizing = rPLImagePropsDef.Sizing; RPLImageData image = rPLImageProps.Image; float innerContainerHeightSubtractBorders = html5Renderer.GetInnerContainerHeightSubtractBorders(measurement, rPLImageProps.Style); float innerContainerWidthSubtractBorders = html5Renderer.GetInnerContainerWidthSubtractBorders(measurement, rPLImageProps.Style); string text = html5Renderer.GetImageUrl(useSessionId: true, image); string ariaLabel = null; string role = null; string tooltip = html5Renderer.GetTooltip(rPLImageProps); if (treatAsTopLevel) { ariaLabel = (string.IsNullOrEmpty(tooltip) ? RenderRes.AccessibleImageLabel : RenderResWrapper.AccessibleImageNavigationGroupLabel(tooltip)); role = HTMLElements.m_navigationRole; } string input = string.IsNullOrEmpty(tooltip) ? RenderRes.AccessibleImageLabel : tooltip; input = AntiXssEncoder.XmlAttributeEncode(input); Dictionary <string, string> dictionary = new Dictionary <string, string>(); if (html5Renderer.m_elementExtender.ShouldApplyToElement(treatAsTopLevel)) { dictionary.Add(HTMLElements.m_reportItemDataName, html5Renderer.m_elementExtender.ApplyToElement()); dictionary.Add(HTMLElements.m_reportItemCustomAttrStr, html5Renderer.GetReportItemPath(rPLImagePropsDef.Name)); } bool flag = rPLImageProps.ActionImageMapAreas != null && rPLImageProps.ActionImageMapAreas.Length != 0; if (flag) { string s = HTMLElements.m_hashTag + html5Renderer.m_deviceInfo.HtmlPrefixId + HTMLElements.m_mapPrefixString + rPLImageProps.UniqueName; dictionary.Add(HTMLElements.m_useMapName, HttpUtility.HtmlAttributeEncode(s)); } if (html5Renderer.HasAction(rPLImageProps.ActionInfo)) { RenderElementHyperlink(rPLImageProps.Style, rPLImageProps.ActionInfo.Actions[0]); } if (!styleContext.InTablix) { if (sizing == RPLFormat.Sizings.AutoSize) { styleContext.RenderMeasurements = false; } html5Renderer.WriteStream(HTMLElements.m_openDiv); html5Renderer.RenderReportItemStyle(reportItem, rPLImageProps, rPLImagePropsDef, measurement, styleContext, ref borderContext, rPLImagePropsDef.ID); html5Renderer.WriteStream(HTMLElements.m_closeBracket); } if (string.IsNullOrEmpty(text)) { text = "data:image/gif;base64," + Convert.ToBase64String(HTMLRendererResources.GetBytes("Blank.gif")); } HtmlElement htmlElement; switch (sizing) { case RPLFormat.Sizings.FitProportional: htmlElement = new FitProportionalImageElement(text, innerContainerWidthSubtractBorders, role, input, ariaLabel, dictionary); break; case RPLFormat.Sizings.Fit: htmlElement = new FitImageElement(text, role, input, ariaLabel, dictionary); break; case RPLFormat.Sizings.Clip: htmlElement = new ClipImageElement(text, role, input, ariaLabel, dictionary); break; default: htmlElement = new OriginalSizeImageElement(text, role, input, ariaLabel, dictionary); break; } htmlElement.Render(new Html5OutputStream(html5Renderer)); if (!styleContext.InTablix) { html5Renderer.WriteStream(HTMLElements.m_closeDiv); } if (html5Renderer.HasAction(rPLImageProps.ActionInfo)) { html5Renderer.WriteStream(HTMLElements.m_closeA); } if (flag) { html5Renderer.RenderImageMapAreas(rPLImageProps.ActionImageMapAreas, measurement.Width, measurement.Height, rPLImageProps.UniqueName, 0, 0); } }