Visualizzare il pulsante di stampa in ReportViewer con Firefox, Chrome, Opera

Ho avuto un problema che mi ha afflitto per diversi giorni: Per una web application di un mio cliente ho dovuto creare dei reports. Per questo ho utilizzato report viewer la versione locale. Report viewer però ha un problema : Essendo un ActiveX, non funziona su browser diversi da Internet Explorer.

NB: Questo problema è solo quando si utilizza il local report viewer. Nella versione server questo problema non si ha.

Nella pagina o nel controllo che contiene il Reportviewer, bisogna inserire il seguente codice javascript:

<script type=”text/javascript”>
$(document).ready(function() {
if (!$.browser.msie) {
try {
var ControlName = ‘WebReport1_rpwStampaFattura’;
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=”../img/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;”><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);
}
</script>

Questo script javascript inserisce il pulsante di stampa nella pagina contenente l’oggetto report viewer . Questo farà visualizzare il pulsante sui browser diversi da firefox.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...