none
Berichts Vorschau bei den Angeboten

    Frage

  • Hallo zusammen.

    Würde gerne eine Vorschau bei den Angeboten machen.

    Heißt ich bin in den Angeboten - Mache einen neuen Navigationsbutton und dann wird der Angebotsreport (Berichte) ausgeführt.
    Den Button Vorschau habe ich schon, ein Skript auch schon. Aber der Bericht wird nicht ausgeführt.
    Anbei noch das Skript. Vielleicht findet einer von euch den Fehler oder hat eine andere Lösung parat.

    <html><head><meta charset="utf-8"></head><body onload="OnLoad();" onresize="OnResizeComplete();">
    <meta http-equiv="X-UA-Compatible" content="IE=5.0000">
    <title></title>
    <script type="text/javascript">
           OnLoad = function () {
               if (window.location.href.indexOf('webresourceeditor') != -1)
                   return;
               var parentEntity = window.parent.Xrm.Page.data.entity;
               var reporturl = window.parent.Xrm.Page.context.prependOrgName(
               "/crmreports/viewer/viewer.aspx?action=run&helpID=Inlinequote.rdl&id={2fa994fc-aad1-e211-825c-00505684165b}&p:quoteid="
               + parentEntity.getId());
               var reportFrame = document.getElementById("reportContainer");
               reportFrame.src = reporturl;
               reportFrame.onreadystatechange = function () {
                   if (reportFrame.readyState != "complete")
                       return;
                   var menubar = reportFrame.contentWindow.document.getElementById('crmMenuBar');
                   if (menubar != null) {
                       menubar.parentNode.parentNode.style.display = "none";
                   }

                   var resultsFrame = reportFrame.contentWindow.document.getElementById('resultFrame');

                   var timerId = window.setInterval(function () {
                       var resultsFrame = reportFrame.contentWindow.document.getElementById('resultFrame');
                       if (resultsFrame == null)
                           return;

                       if (resultsFrame.contentWindow.document.getElementById('ParametersRowreportViewer') == null)
                           return;

                       window.clearInterval(timerId);
                       resultsFrame.contentWindow.document.getElementById('ParametersRowreportViewer').style.display = "none";
                       resultsFrame.contentWindow.document.getElementById('ParametersRowreportViewer').nextSibling.style.display = "none";
                   }, 1000);
               }
           }

           OnResizeComplete = function () {
               var fr = window.document.getElementById('reportContainer');
               fr.style.width = (document.body.offsetWidth - 30) + 'px';
               fr.style.height = (document.body.clientHeight - 30) + 'px';
           }
       </script>


    <meta name="GENERATOR" content="MSHTML 10.00.9200.16540">
    <iframe id="reportContainer" src="about:blank" style="width: 662px; height: 270px;"></iframe>
    </body></html>


    Wolle39

    Dienstag, 24. September 2013 12:15

Alle Antworten

  • Nachtrag:

    Wenn ich das Angebot samt Vorschau anklicke bekomme ich folgender Fehler: rsReadOnlyReportParameter


    Wolle39

    Mittwoch, 25. September 2013 05:54
  • Hallo Wolle,

    Kann es sein, dass du in deinem Bericht einen Parameter definiert hast bei dem die Sichtbarkeit "falsch" ist: http://scottstoecker.wordpress.com/2012/06/18/readonlyreportparameterexception-thrown-in-ssrs-2008/

    Eine genauere Fehlermeldung solltest du am ReportServer im Event-Viewer finden - hier sollte auch der Parameter enthalten sein, der diesen Fehler verursacht...

    Funktioniert der Bericht eigentlich, wenn du ihn "normal" über das Berichtsmenü ausführst?

    Liebe Grüße,

    Andreas Buchinger


    Andreas Buchinger
    Microsoft Dynamics Certified Technology Specialist
    MCPD: SharePoint Developer 2010

    Mittwoch, 25. September 2013 10:24
  • Hallo Andreas,

    der Bericht funktioniert ganz normal (Im Angebot - Bericht ausführen OK und über Berichte - Bericht ausführen auch OK). Ich denke auch das es an der Parametern liegt.
    Den ich habe noch einen anderen Lösungsansatz gefunden, der mir in der Summe besser gefallen würde aber nicht den gewünschten Bericht zum Angebot ausführt. Das stimmt der Parameter auch nicht. Er Filter dann nach dem Besitzer der Angebote. Bin gerade überfragt wie ich die Filtereinstellung setzen muss!

    Hier noch der Link zum anderen Lösungsweg.

    http://mscrmshop.blogspot.de/2012/02/step-by-step-tutorial-to-add-crm-report.html


    Wolle39

    Mittwoch, 25. September 2013 10:48
  • Hallo,

    der Button "Bericht ausführen" übergibt an den Report per URL noch einige Parameter, die der "Standard"-Angebotsbericht auch benötigt.

    So wie es ausschaut, übergibst du diese aber nicht in deinem Script. Dein Report erwartet diese aber. Vergleiche doch mal die Parameter in der URL, wenn du den Bericht per Button aufrufst mit der URL, die du erstellst.

    Schöne Grüße,

    Nils Frohloff

    Freitag, 27. September 2013 10:17
  • Hallo Nils.

    Hier die Url aus dem "Bericht ausführen" im Angebot:

    http://servername:5555/OrgaCRM/crmreports/viewer/viewer.aspx?action=run&context=records&helpID=Angebot_Word.rdl&id=%7b2fa994fc-aad1-e211-825c-00505684165b%7d&records=%7bF05B1079-74E8-E211-9CF3-00505684165B%7d&recordstype=1084


    und die Url erzeugt das Skript:

    http://servername:5555/crmreports/viewer/viewer.aspx?action=run&id=%7b2FA994FC-AAD1-E211-825C-00505684165B%7d&records={F05B1079-74E8-E211-9CF3-00505684165B}


    Anbei noch das Skript:

    function showReport()
    {   

        //Get iframe control
        var iframeObject = Xrm.Page.getControl("IFRAME_OverviewReport");

        if (iframeObject != null)
        {
            //URL we created in first step + id of the current record (Xrm.Page.data.entity.getId())
            var strURL = "/crmreports/viewer/viewer.aspx?action=run&id=%7b2FA994FC-AAD1-E211-825C-00505684165B%7d&records=" + Xrm.Page.data.entity.getId();
           
            //Set iframe URL
            iframeObject.setSrc(strURL);

        }
    }

    Wenn ich die generierte Url aus dem Skript im Browser eingebe, kommt das erste Angebot das in der quoteid liste oben steht und alle dem Besitzer gehören. 

    Kannst Du sehen, wo der Fehler liegt!?

    Danke.

    Gruß Wolfi


    Wolle39



    • Bearbeitet Wolle39 Freitag, 27. September 2013 15:03
    Freitag, 27. September 2013 14:55
  • Hab´s jetzt selber rausgefunden.

    Im Skript folgendes hinzugefügt.

    &context=records&recordstype=1084

    Also so in dem Fall:

    function showReport()
    {   

        //Get iframe control
        var iframeObject = Xrm.Page.getControl("IFRAME_OverviewReport");

        if (iframeObject != null)
        {
            //URL we created in first step + id of the current record (Xrm.Page.data.entity.getId())
            var strURL = "/crmreports/viewer/viewer.aspx?action=run&id=%7b2FA994FC-AAD1-E211-825C-00505684165B%7d&records=" + Xrm.Page.data.entity.getId() + "&context=records&recordstype=1084";
           
            //Set iframe URL
            iframeObject.setSrc(strURL);

        }
    }

    Gruß an Alle und Danke


    Wolle39

    Montag, 30. September 2013 12:44