none
CRM 2011 - Campos não salvos RRS feed

  • Pergunta

  • Gostaria de saber qual javascript utilizo para habilitar ou desabilitar um campo que o formulário não foi salvo.

    Exemplo : dou um click no botão "Gerar Parcelas" mais ele só será executado se o formulário estiver salvo, senão ele irá gerar uma mensagem de aviso para salvar o formulário.

    Agradeço a atenção.


    segunda-feira, 25 de fevereiro de 2013 17:40

Respostas

  • Boas Henrique,

    Você pode verificar se um formulário foi modificado e se ainda não foi salvo:

    var formChanged = Xrm.Page.data.entity.getIsDirty();


    Você também pode ir a cada cada e verificar quais os campos foram modificados:

    var fieldChanged = Xrm.Page.data.entity.attributes.get()[0].getIsDirty();
    

    Se necessitar de mais ajuda, diga.

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


    Pedro Azevedo Crm Specialist 4.0\2011


    segunda-feira, 25 de fevereiro de 2013 18:10
  • Boas Henrique,

    Já tentou colocar um Javascript associado ao botão, veja este artigo. Para aceder ao formulário não tenho a certeza nem consigo testar neste momento mas tens que fazer algo do género:

    window.parent.opener.Xrm.Page.data.entity

    Espero ter ajudado.


    Pedro Azevedo Crm Specialist 4.0\2011

    • Sugerido como Resposta Azevedo PedroMVP terça-feira, 26 de fevereiro de 2013 15:09
    • Marcado como Resposta Henrique Gusmão terça-feira, 26 de fevereiro de 2013 16:58
    terça-feira, 26 de fevereiro de 2013 15:09

Todas as Respostas

  • Boas Henrique,

    Você pode verificar se um formulário foi modificado e se ainda não foi salvo:

    var formChanged = Xrm.Page.data.entity.getIsDirty();


    Você também pode ir a cada cada e verificar quais os campos foram modificados:

    var fieldChanged = Xrm.Page.data.entity.attributes.get()[0].getIsDirty();
    

    Se necessitar de mais ajuda, diga.

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


    Pedro Azevedo Crm Specialist 4.0\2011


    segunda-feira, 25 de fevereiro de 2013 18:10
  • Obrigado pelo retorno Pedro,

    Infelizmente não deu certo da maneira que preciso.

    Quero apenas que um botão seja responsável pelo processo de verificação de formulário salvo, e como estou trabalhando com muitos javascript dentro do mesmo formulário, gostaria de inserir o código sem afetar os outros processo.

    não consigo montar a sequencia de código para essa tarefa.

    terça-feira, 26 de fevereiro de 2013 14:30
  • Boas Henrique,

    Já tentou colocar um Javascript associado ao botão, veja este artigo. Para aceder ao formulário não tenho a certeza nem consigo testar neste momento mas tens que fazer algo do género:

    window.parent.opener.Xrm.Page.data.entity

    Espero ter ajudado.


    Pedro Azevedo Crm Specialist 4.0\2011

    • Sugerido como Resposta Azevedo PedroMVP terça-feira, 26 de fevereiro de 2013 15:09
    • Marcado como Resposta Henrique Gusmão terça-feira, 26 de fevereiro de 2013 16:58
    terça-feira, 26 de fevereiro de 2013 15:09
  • Tentei algo do tipo abaixo de um modelo que já fiz, mais não consigo montar a lógica para habilitar o campo(botão) apenas quando o formulário estiver salvo.

    function getFormType  () {

     var FORM_TYPE_CREATE = 1;
     var FORM_TYPE_UPDATE = 2;
     var FORM_TYPE_READ_ONLY = 3;
     var FORM_TYPE_DISABLED = 4;
     var FORM_TYPE_QUICK_CREATE = 5;
     var FORM_TYPE_BULK_EDIT = 6;

     var formType = Xrm.Page.ui.getFormType();
     if (formType == FORM_TYPE_CREATE) {
     alert("Salve o formulário, depois clique em gerar parcelas.");
     }
     else {
     alert("This record exists in the database.");
     }
    }

    Agradeço o retorno.


    terça-feira, 26 de fevereiro de 2013 16:59
  • Boas Henrique,

    Para isso o melhor é usar uma Display Rule em que verificas o getIsDity desta maneira você consegue controlar o estado do botão, veja aqui exemplos concretos:

    http://www.powerobjects.com/blog/2011/06/17/crm-2011-enabling-and-disabling-ribbon-buttons-2/

    http://howto-mscrm.blogspot.pt/2011/04/how-to-series-6-how-to-use-customrule.html

    http://guruprasadcrm.blogspot.pt/2012/07/conditionally-hiding-oob-ribbon-button.html

    Espero ter ajudado


    Pedro Azevedo Crm Specialist 4.0\2011

    • Sugerido como Resposta Azevedo PedroMVP quarta-feira, 27 de fevereiro de 2013 11:05
    quarta-feira, 27 de fevereiro de 2013 11:05