none
Publicar relatório rdl no IFRAME RRS feed

  • Pergunta

  • Galera !

    Tenho um relatório feito no Report Builder 3.0, onde eu já incluí via IFrame no CRM Dynamics

    O relatório esta abrindo normalmente igual abre pelo browser

    Agora preciso passar um parâmetro, para que o relatório seja exibido com os dados já filtrados por este parâmetro.

    Verifiquei o link a abaixo, mas não consegui fazer a passagem de parâmetros entre o IFRAME do CRM e o Relatório do Report Builder

    http://blogs.msdn.com/b/crm/archive/2007/10/04/writing-reports-to-display-in-iframes-and-from-isv-config.aspx

    abraços.

    quinta-feira, 3 de outubro de 2013 16:04

Respostas

  • Boas Denilson,

    Nunca tinha usado o Report.aspx e fui explorar um pouco e verifiquei que quando se usa esta página ele vai mostrar sempre um relatório já produzido, ou seja, não vai ver os parâmetros, para isso vocês terá que usar o seguinte:

    http://<server>/ReportServer/Pages/ReportViewer.aspx

    Onde encontrei mais informação foi nesta questão do stackoverflow.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    quarta-feira, 16 de outubro de 2013 09:21
  • Pedro. me desculpe pela falta de atenção

    Eu havia tentando fazer somente com o comando que você mencionou

    http://<server>/ReportServer/Pages/ReportViewer.aspx

    Só agora que li o link que você havia colocado, que pude entender melhor.

    Agora sim deu certo.

    estou imensamente Grato!


    terça-feira, 22 de outubro de 2013 16:48

Todas as Respostas

  • Boas Denilson,

    Mas deu algum erro ou não mostrou o relatório quando você passou os parâmetros ou ele ignorou os parâmetros? Qual é versão do CRM e em que ambiente (online ou onpremisse) que vocês está a trabalhar e já agora o rollup aplicado.


    Pedro Azevedo Crm Specialist 4.0\2011

    quinta-feira, 3 de outubro de 2013 17:00
  • Não deu erro! Esta exibindo o relatório.

    Porem não estou passando os parâmetros, pois não sei como fazê-lo.

    A Versão do CRM é 2011 e o ambiente é on-line.

    sexta-feira, 4 de outubro de 2013 11:10
  • Boas Denilson,

    Para passar parâmetros é necessário passar no URL que coloca na IFrame, depois do id do report coloca os parâmetros, assim:

    &NomeParam=ValorParam

    Veja aqui um artigo completo.


    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    sexta-feira, 4 de outubro de 2013 12:51
  • Vou tentar fazer o que sugeriu

    Se entendi bem, terei que criar um javascript que é acionado em Form_OnLoad, Account_OnChange e Season_OnChange

    para enviar após a URL do id do report o meu parâmetro.

    sexta-feira, 4 de outubro de 2013 13:34
  • segui o exemplo do link mas não funcionou

    a URL que estou chamando  ficou assim:

    http://meu_server/Reports/Pages/Report.aspx?ItemPath=%2fTecnologia%2fEsfor%c3%a7o+Realizado&param_arpai=tec-12-63

    ele continua abrindo o relatório, mas não filtra o dado que passei como parâmetro

    sexta-feira, 4 de outubro de 2013 14:53
  • Boas Denilson,

    Coloque aqui o seu JS para poder ver melhor o que pode eventualmente estar errado.


    Pedro Azevedo Crm Specialist 4.0\2011

    quinta-feira, 10 de outubro de 2013 11:49
  • //__________________________ Load do Relatorio rdl ________________________________
    //            Exibir o relatorio do Report service 
    function loadReport() {
        var ar_report = new Array();
        ar_report = Xrm.Page.getAttribute("new_name").getValue();

        var url = "http://meu_server/Reports/Pages/Report.aspx?ItemPath=/PMO/PMO-1020-+AR+Realizado";
                  
        if (ar_report == null){
    document.all.IFRAME_Esforco_Realizado.src="";
        } else {
        document.all.IFRAME_Esforco_Realizado.src=url+"&p:param_arpai="+ar_report;
        }
    }
    //--------------------------- Finaliza o Load do Relatorio rdl ------------------------------
    • Sugerido como Resposta L.J.2003 segunda-feira, 23 de dezembro de 2013 12:23
    segunda-feira, 14 de outubro de 2013 14:56
  • Boas Denilson,

    Nunca tinha usado o Report.aspx e fui explorar um pouco e verifiquei que quando se usa esta página ele vai mostrar sempre um relatório já produzido, ou seja, não vai ver os parâmetros, para isso vocês terá que usar o seguinte:

    http://<server>/ReportServer/Pages/ReportViewer.aspx

    Onde encontrei mais informação foi nesta questão do stackoverflow.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    quarta-feira, 16 de outubro de 2013 09:21
  • Já fiz isso que vc quer fazer. olha se ajuda
    function setLinkIframe(iframe, value) {
        var TipoDeAcesso = '';
        var MSCRMInterno = '';
        var MSCRMExterno = '';
        var BDInterno = '';
        var BDExterno = '';
        var BaseDeDadosMSCRM = '';
        var Servidor = '';
        var DataBaseCrm = '';
        var entityRetrive = getEntityNodes('new_parametro', "new_name", "Parâmetro Default");
        if (entityRetrive.length != 0) {
            var entityNodeRetrive = entityRetrive[0];
            TipoDeAcesso = entityNodeRetrive.selectSingleNode("q1:new_tipodeacesso");
            if (TipoDeAcesso != null) { TipoDeAcesso = TipoDeAcesso.text; } else { }
            MSCRMInterno = entityNodeRetrive.selectSingleNode("q1:new_mscrminterno");
            if (MSCRMInterno != null) { MSCRMInterno = MSCRMInterno.text; } else { }
            MSCRMExterno = entityNodeRetrive.selectSingleNode("q1:new_mscrmexterno");
            if (MSCRMExterno != null) { MSCRMExterno = MSCRMExterno.text; } else { }
            BDInterno = entityNodeRetrive.selectSingleNode("q1:new_bdinterno");
            if (BDInterno != null) { BDInterno = BDInterno.text; } else { }
            BDExterno = entityNodeRetrive.selectSingleNode("q1:new_bdexterno");
            if (BDExterno != null) { BDExterno = BDExterno.text; } else { }
            BaseDeDadosMSCRM = entityNodeRetrive.selectSingleNode("q1:new_basededadosdomscrm");
            if (BaseDeDadosMSCRM != null) { BaseDeDadosMSCRM = BaseDeDadosMSCRM.text; } else { }
        }
        if (TipoDeAcesso == 1) {//Externo
            Servidor = BDExterno;
            DataBaseCrm = BaseDeDadosMSCRM;
            value = BDExterno + value;
        } else {
            Servidor = BDInterno;
            DataBaseCrm = BaseDeDadosMSCRM;
            value = BDInterno + value;
        }
        var pageElement = Xrm.Page.getControl(iframe);
        if ((value == null) || (statusForm() == 1) || (statusForm() == 5)) {
            // VisibletAttribute(iframe, false);
            pageElement.setSrc("about:blank");
        }
        else {
            //VisibletAttribute(iframe, true);
            pageElement.setSrc(value);
        }
    }


    Tiago Henrique Consultor de Implantação

    quinta-feira, 17 de outubro de 2013 16:53
  • Tiago bom dia

    Eu tentei fazer baseado no seu código, mas não funcionou.

    Não sei se consegui entender o seu código, você poderia comentar o código.

    Obrigado pela ajuda!

    segunda-feira, 21 de outubro de 2013 11:43
  • Boas Denilson,

    Você tentou modificar para o que eu propus? Não funcionou? Se não entendeu coloque aqui que eu tento explicar melhor. O seu problema vai-se manter sempre já que o Report.aspx terá uma versão já pré-carregada por isso vai ignorar os parâmetros.


    Pedro Azevedo Crm Specialist 4.0\2011

    terça-feira, 22 de outubro de 2013 10:18
  • Pedro. me desculpe pela falta de atenção

    Eu havia tentando fazer somente com o comando que você mencionou

    http://<server>/ReportServer/Pages/ReportViewer.aspx

    Só agora que li o link que você havia colocado, que pude entender melhor.

    Agora sim deu certo.

    estou imensamente Grato!


    terça-feira, 22 de outubro de 2013 16:48