SQL Reporting Services - przycisk drukowania nie jest wyświetlany w Mozilli

Używam SQL Reporting services , działa idealnie i pokazuje przycisk drukowania w IE, ale nie pokazany w Mozilli Firefox.

Czy ktoś ma jakiś pomysł?

Sprawdziłem to rozwiązanie, ale nie działa:

Http://social.msdn.microsoft.com/Forums/en-US/vsreportcontrols/thread/7bdf431d-70db-419d-8e98-ef41cad8e2d8

Author: Muhammad Akhtar, 2009-06-04

5 answers

Myślę, że nie używa ActiveX, ponieważ w zdarzeniu table onclick jest proste:

ReportFramerpvReport.GetReportFrame().contentWindow.print()

W każdym razie, zamieniłem to drukowanie na własną funkcję drukowania, ponieważ powyższy kod nie działał na FF..

Wiem, że to brzydkie...ale to działa! (po prostu zamień wartość ControlName na ControlID i pamiętaj, aby dodać jQuery lib na swojej stronie)
    $(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&amp;Version=9.0.30729.1&amp;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);
    }
 11
Author: Israel Rodriguez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-09 17:29:31

Powyższe rozwiązanie nie działało dla mnie, więc dokonałem następujących zmian w powyższym rozwiązaniu po sprawdzeniu renderowanego html.

ReportViewerGeneral_ctl05 - > id pagera
VisibleReportContentReportViewergeneral_ctl09 - > id div, który zawierał wynik raportu.
pageLoad - > refer this

function pageLoad() {

if ($.browser.mozilla && !$("#ff_print").length) {
            try {
                var ControlName = 'ReportViewerGeneral';
                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&amp;Version=9.0.30729.1&amp;Name=Microsoft.Reporting.WebForms.Icons.Print.gif" title="Print"></td></tr></tbody>';
                var innerTable = '<table title="Print" onclick="PrintFunc(\'' + ControlName + '\'); return false;" id="ff_print" style="border: 1px solid rgb(236, 233, 216); background-color: rgb(236, 233, 216); cursor: default;">' + innerTbody + '</table>'
                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 + '</td></tr></tbody></table></div>';

                $("#ReportViewerGeneral_ctl05 > div").append(outerDiv);

            }
            catch (e) { alert(e); }
        }
}


    function PrintFunc() {
        var strFrameName = ("printer-" + (new Date()).getTime());
        var jFrame = $("<iframe name='" + strFrameName + "'>");
        jFrame
        .css("width", "1px")
        .css("height", "1px")
        .css("position", "absolute")
        .css("left", "-2000px")
        .appendTo($("body:first"));

        var objFrame = window.frames[strFrameName];
        var objDoc = objFrame.document;
        var jStyleDiv = $("<div>").append($("style").clone());

        objDoc.open();
        objDoc.write($("head").html());
        objDoc.write($("#VisibleReportContentReportViewerGeneral_ctl09").html());
        objDoc.close();
        objFrame.print();

        setTimeout(function () { jFrame.remove(); }, (60 * 1000));
    }
 5
Author: Sachin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:10

Jeśli oferujesz funkcję eksportu za pomocą ReportViewer, użytkownik może nadal eksportować do formatu PDF i wydrukować go. Nie tak wydajny/gładki jak przycisk drukowania jednym kliknięciem, ale jest to łatwe obejście.

 2
Author: Tyler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 15:40:15

Zrobiłem rozwiązanie, które emuluje cały przycisk drukowania z IE do innych przeglądarek.

Https://stackoverflow.com/a/37455354/1253835

 0
Author: cafekun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:13

Nie rozwiązanie, ale trochę informacji.

Używam SSR dość regularnie dla wewnętrznych projektów, jak Wiem, że docelowi odbiorcy są wszystkie za pomocą IE, ale nie używam go do zewnętrznych aplikacji Web skierowane jak miałem tak wiele problemów z nim w FF (selektory daty nie działa itp), chociaż nigdy nie spojrzał na opcje przycisku drukowania podejrzewam, że może to być podobny problem (Kontrola przeglądarka raport przeznaczony tylko dla IE!), jak się wydaje, wpływa na pasek narzędzi w ogóle.

Going off this http://www.windows-tech.info/15/5fb0fd315e07edf8.php wydaje się, że niektóre kontrolki activex są używane i FF nie robi ActiveX natywnie chociaż pamiętam plugin, który pozwolił ActiveX kontrolki być załadowane, ale gdzie widziałem, że nie pamiętam.

EDIT: http://www.iol.ie / ~locka/mozilla/plugin.htm nigdy go nie używałem i nie mogę ręczyć za to, ale jest tutaj wtyczka.

Do projektów internetowych używam Crystal!

HTH

 -1
Author: OneSHOT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 14:49:45