Internet explorer 打印按钮在使用IE11的ReportViewer中不可用

Internet explorer 打印按钮在使用IE11的ReportViewer中不可用,internet-explorer,reportviewer,internet-explorer-11,Internet Explorer,Reportviewer,Internet Explorer 11,因此,我们注意到ReportViewer(Version=10.0.0.0)中的打印按钮在升级到IE11 这就是IE10中的情况: 在做了一些研究之后,我们发现其他人也报告了这个问题(即),但还没有找到解决方案。使用compability模式将是一个解决方案,但对客户来说不是可行/合适的解决方案。 有人知道怎么解决这个问题吗?这几周,我们面临着同样的问题。 最后,我们找到了一些解决方法,以下是步骤: 将“报表查看器2012运行时”更新为11.1.3366 将“Microsoft.Net Fra

因此,我们注意到ReportViewer(
Version=10.0.0.0
)中的打印按钮在升级到
IE11


这就是IE10中的情况:


在做了一些研究之后,我们发现其他人也报告了这个问题(即),但还没有找到解决方案。
使用compability模式将是一个解决方案,但对客户来说不是可行/合适的解决方案。


有人知道怎么解决这个问题吗?

这几周,我们面临着同样的问题。 最后,我们找到了一些解决方法,以下是步骤:

  • 将“报表查看器2012运行时”更新为11.1.3366
  • 将“Microsoft.Net Framework”更新为4.5.1
  • 重新启动系统
  • 我们的环境: Win server 2008 r2, IIS7,
    ReportViewer 11

    我使用了该页()中的代码,并为此创建了一个类。您可以在页面中添加一个按钮并调用它

    ---- Call ---------
    ReportPrinter prnt = new ReportPrinter();
    prnt.Print(rpt.LocalReport);
    
    Class Code
    ------------    
        using Microsoft.Reporting.WebForms;
    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Drawing.Printing;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Web;
    
    namespace javaFish.blogspot.Utils
    {
        /// <summary>
        /// Prints report as xps file to default printer.
        /// </summary>
        public class ReportPrinter : IDisposable
        {
            //Local variables
            private int m_currentPageIndex;
            private IList<Stream> m_streams;
            private LocalReport report = null;
    
            /// <summary>
            /// Routine to provide to the report renderer, in order to save an image for each page of the report.
            /// </summary>
            /// <param name="name"></param>
            /// <param name="fileNameExtension"></param>
            /// <param name="encoding"></param>
            /// <param name="mimeType"></param>
            /// <param name="willSeek"></param>
            /// <returns></returns>    
            private Stream CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)
            {
                Stream stream = new MemoryStream();
                m_streams.Add(stream);
                return stream;
            }
    
            /// <summary>
            /// Export the given report as an EMF (Enhanced Metafile) file.
            /// </summary>
            /// <param name="report"></param>
            private void Export()
            {
                string deviceInfo =
                  @"<DeviceInfo>
                    <OutputFormat>EMF</OutputFormat>
                    <PageWidth>"+ report.GetDefaultPageSettings().PaperSize.Width.ToString()+ @"in</PageWidth>
                    <PageHeight>" + report.GetDefaultPageSettings().PaperSize.Height.ToString() + @"in</PageHeight>
                    <MarginTop>" + report.GetDefaultPageSettings().Margins.Top.ToString() + @"in</MarginTop>
                    <MarginLeft>" + report.GetDefaultPageSettings().Margins.Left.ToString() + @"in</MarginLeft>
                    <MarginRight>" + report.GetDefaultPageSettings().Margins.Right.ToString() + @"in</MarginRight>
                    <MarginBottom>" + report.GetDefaultPageSettings().Margins.Bottom.ToString() + @"in</MarginBottom>
                </DeviceInfo>";
                Warning[] warnings;
                m_streams = new List<Stream>();
                report.Render("Image", deviceInfo, CreateStream,
                   out warnings);
                foreach (Stream stream in m_streams)
                    stream.Position = 0;
            }
    
            /// <summary>
            /// Handler for PrintPageEvents
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="ev"></param>
            private void PrintPage(object sender, PrintPageEventArgs ev)
            {
                Metafile pageImage = new
                   Metafile(m_streams[m_currentPageIndex]);
    
                // Adjust rectangular area with printer margins.
                Rectangle adjustedRect = new Rectangle(
                    ev.PageBounds.Left - (int)ev.PageSettings.HardMarginX,
                    ev.PageBounds.Top - (int)ev.PageSettings.HardMarginY,
                    ev.PageBounds.Width,
                    ev.PageBounds.Height);
    
                // Draw a white background for the report
                ev.Graphics.FillRectangle(Brushes.White, adjustedRect);
    
                // Draw the report content
                ev.Graphics.DrawImage(pageImage, adjustedRect);
    
                // Prepare for the next page. Make sure we haven't hit the end.
                m_currentPageIndex++;
                ev.HasMorePages = (m_currentPageIndex < m_streams.Count);
            }
    
            /// <summary>
            /// Exports local report and tries to print
            /// </summary>
            public bool Print(LocalReport localReport)
            {
                try
                {
                    report = localReport;
                    Export();
    
                    if (m_streams == null || m_streams.Count == 0)
                        throw new Exception("Error: no stream to print.");
                    PrintDocument printDoc = new PrintDocument();
                    if (!printDoc.PrinterSettings.IsValid)
                    {
                        throw new Exception("Error: cannot find the default printer.");
                    }
                    else
                    {
                        printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
                        m_currentPageIndex = 0;
                        printDoc.Print();
                    }
                    return true;
                }
                catch
                {
                    return false;
                }
            }
    
            /// <summary>
            /// Dispose resources
            /// </summary>
            public void Dispose()
            {
                if (m_streams != null)
                {
                    foreach (Stream stream in m_streams)
                        stream.Close();
                    m_streams = null;
                }
            }
        }
    }
    
    ----调用---------
    ReportPrinter prnt=新的ReportPrinter();
    打印(rpt.LocalReport);
    类别代码
    ------------    
    使用Microsoft.Reporting.WebForms;
    使用制度;
    使用System.Collections.Generic;
    使用系统图;
    使用系统、绘图、成像;
    使用系统、绘图、打印;
    使用System.IO;
    使用System.Linq;
    使用系统文本;
    使用System.Web;
    命名空间javaFish.blogspot.Utils
    {
    /// 
    ///将报告作为xps文件打印到默认打印机。
    /// 
    公共类报表打印机:IDisposable
    {
    //局部变量
    私有int m_currentPageIndex;
    私人IList m_溪;
    私有LocalReport=null;
    /// 
    ///提供给报表呈现程序的例程,以便为报表的每个页面保存图像。
    /// 
    /// 
    /// 
    /// 
    /// 
    /// 
    ///     
    私有流CreateStream(字符串名称、字符串文件名扩展、编码编码、字符串mimeType、bool willSeek)
    {
    Stream=新的MemoryStream();
    m_streams.Add(stream);
    回流;
    }
    /// 
    ///将给定报告导出为EMF(增强元文件)文件。
    /// 
    /// 
    私有void导出()
    {
    字符串设备信息=
    @"
    电动势
    中的“+report.GetDefaultPageSettings().PaperSize.Width.ToString()+@”
    中的“+report.GetDefaultPageSettings().PaperSize.Height.ToString()+@”
    中的“+report.GetDefaultPageSettings().Margins.Top.ToString()+@”
    中的“+report.GetDefaultPageSettings().Margins.Left.ToString()+@”
    中的“+report.GetDefaultPageSettings().Margins.Right.ToString()+@”
    中的“+report.GetDefaultPageSettings().Margins.Bottom.ToString()+@”
    ";
    警告[]警告;
    m_streams=新列表();
    report.Render(“图像”、deviceInfo、CreateStream、,
    发出警告);
    foreach(m_streams中的流)
    流位置=0;
    }
    /// 
    ///PrintPageEvents的处理程序
    /// 
    /// 
    /// 
    私有void打印页(对象发送方,PrintPageEventArgs ev)
    {
    图元文件pageImage=new
    元文件(m_streams[m_currentPageIndex]);
    //使用打印机边距调整矩形区域。
    矩形adjustedRect=新矩形(
    ev.PageBounds.Left-(int)ev.PageSettings.HardMarginX,
    ev.PageBounds.Top-(int)ev.PageSettings.HardMarginY,
    ev.PageBounds.Width,
    电动汽车(高),;
    //为报告绘制白色背景
    电动图形。填充矩形(画笔。白色,调整矩形);
    //绘制报告内容
    ev.Graphics.DrawImage(页面图像,调整后的图像);
    //准备下一页。确保我们没有讲到最后。
    m_currentPageIndex++;
    ev.HasMorePages=(m_currentPageIndex
    确保您的SQL server已升级到Service Pack 2。ie10+和SQL Server 2008R2 RTM存在几个兼容性问题

    连接到SQL Server实例,然后运行以下查询:

    Select @@version
    

    这个链接帮了我很多

    [

    介绍了解决此问题的两种方法:

    1-安装.Net 4.5.1 [

    或 2-添加浏览器文件,如上述来源所述:

    在的根目录下的App_Browsers文件夹中创建新的浏览器文件 您的解决方案。将以下文本粘贴到文件中,然后运行。 这个问题应该得到解决

    
    Select @@version