2012-02-14 34 views
5

cho những gì tôi đã đọc, nút in reportviewer không hoạt động trong Google Chrome và Firefox vì nó được tạo bằng điều khiển ActiveX chỉ hoạt động trong IE. Vì vậy, tôi đã cố gắng để thực hiện một nút asp.net bên ngoài báo cáo và in báo cáo theo chương trình, nhưng nó là một nỗi đau và tôi đã tự hỏi nếu có một cách giải quyết đơn giản để có được báo cáo để in trong Google Chrome.Nút in Reportviewer trong Google Chrome

Chỉnh sửa/cập nhật: Tôi đã tìm thấy nút in reportviewer này được cho là hoạt động cho Firefox và Google Chrome, có vẻ như nó đang hoạt động cho Firefox nhưng nó in tôi một trang trống trong Google Chrome. http://cafalse.blogspot.com/2011/04/reportviewer-print-button-for-firefox.html

Trả lời

1

Nếu bạn không ngại thêm nút của riêng mình vào một nơi nào đó trên trang. Điều này chỉ hoạt động nếu cách tạo báo cáo của bạn trông giống như của tôi. Về cơ bản tôi lấy Báo cáo, hiển thị nó thành byte và gửi các byte đó dưới dạng Phản hồi ở định dạng pdf. Thao tác này sẽ mở tệp dưới dạng PDF mà hầu hết các trình duyệt như hỗ trợ Chrome. Điều này yêu cầu người dùng thực hiện thêm bước và nhấp vào in.

ServerReport sr = new ServerReport(); 
ReportViewer.ProcessingMode = ProcessingMode.Remote; 
sr = ReportViewer.ServerReport; 
sr.ReportServerUrl = new Uri("http://****/****"); 
sr.ReportPath = "/Report"; 
ReportParameter paramDateFrom = new ReportParameter(); 
ReportParameter paramDateTo = new ReportParameter(); 
ReportParameter paramState = new ReportParameter(); 
ReportParameter paramCounty = new ReportParameter(); 
string dateFrom = TB_Date_From.Text; 
string dateTo = TB_Date_To.Text; 
string state = DDL_State.SelectedValue; 
string county = DDL_County.SelectedValue; 
paramDateFrom.Name = "DateFrom"; 
paramDateFrom.Values.Add((dateFrom != "" ? dateFrom : null)); 
paramDateTo.Name = "DateTo"; 
paramDateTo.Values.Add((dateTo != "" ? dateTo : null)); 
paramState.Name = "State"; 
paramState.Values.Add((state != "" ? Common_Functions.resolveStateID(state) : null)); 
paramCounty.Name = "County"; 
paramCounty.Values.Add((county != "" ? Common_Functions.resolveCountyID(county) : null)); 
ReportViewer.ServerReport.SetParameters(new ReportParameter[] { paramDateFrom, paramDateTo, paramState, paramCounty }); 
// DUMP PDF TO BROWSER 
Warning[] warnings; 
string[] streamids; 
string mimeType, encoding, extension; 
byte[] bytes = ReportViewer.ServerReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamids, out warnings); 
Response.Buffer = true; 
Response.Clear(); 
Response.ContentType = mimeType; 
Response.AddHeader("content-disposition", "inline; filename=myfile." + extension); 
Response.BinaryWrite(bytes); 
string pdfPath = Server.MapPath("~") + "pdf." + extension; 
FileStream pdfFile = new FileStream(pdfPath, FileMode.Create); 
pdfFile.Write(bytes, 0, bytes.Length); 
pdfFile.Close(); 
Response.Flush(); 
Response.End(); 
Các vấn đề liên quan