Tôi không nghĩ rằng nó sử dụng ActiveX, bởi vì trong sự kiện onclick bảng có một đơn giản:
ReportFramerpvReport.GetReportFrame().contentWindow.print()
Dù sao, tôi thay thế thứ in này với chức năng in của riêng tôi, vì mã này trên wasn' t làm việc trên FF ..
Tôi biết nó xấu xí ... nhưng nó hoạt động! (Chỉ cần thay thế các giá trị với ControlID bạn ControlName và chắc chắn để thêm jQuery lib trong trang của bạn)
$(document).ready(function()
{
if ($.browser.mozilla)
{
try
{
var ControlName = 'RptDespesas';
var innerScript = '<scr' + 'ipt type="text/javascript">document.getElementById("' + ControlName + '_print").Controller = new ReportViewerHoverButton("' + ControlName + '_print", false, "", "", "", "#ECE9D8", "#DDEEF7", "#99BBE2", "1px #ECE9D8 Solid", "1px #336699 Solid", "1px #336699 Solid");</scr' + 'ipt>';
var innerTbody = '<tbody><tr><td><input type="image" style="border-width: 0px; padding: 2px; height: 16px; width: 16px;" alt="Print" src="/Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=9.0.30729.1&Name=Microsoft.Reporting.WebForms.Icons.Print.gif" title="Print"></td></tr></tbody>';
var innerTable = '<table title="Print" onmouseout="this.Controller.OnNormal();" onmouseover="this.Controller.OnHover();" onclick="PrintFunc(\'' + ControlName + '\'); return false;" id="' + ControlName + '_print" style="border: 1px solid rgb(236, 233, 216); background-color: rgb(236, 233, 216); cursor: default;">' + innerScript + innerTbody + '</table>'
var outerScript = '<scr' + 'ipt type="text/javascript">document.getElementById("' + ControlName + '_print").Controller.OnNormal();</scr' + 'ipt>';
var outerDiv = '<div style="display: inline; font-size: 8pt; height: 30px;" class=" "><table cellspacing="0" cellpadding="0" style="display: inline;"><tbody><tr><td height="28px">' + innerTable + outerScript + '</td></tr></tbody></table></div>';
$("#" + ControlName + " > div > div").append(outerDiv);
}
catch (e) { alert(e); }
}
});
function PrintFunc(ControlName)
{
setTimeout('ReportFrame' + ControlName + '.print();', 100);
}
Nguồn
2010-03-09 17:29:31
Đó không phải là một giải pháp, nó chỉ là tuyên bố rằng chế độ địa phương in ấn không được thực hiện trong Báo cáo Dịch vụ 2005. – jgallant
vâng, đúng thế, nhờ –
@Muhammad Akhtar: SQL Server phiên bản và phiên bản của bạn là gì ? – Sung