Usuário com melhor resposta
CRM 2011 - Campos não salvos

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.
- Editado Tiago Michelini CardosoMVP, Moderator terça-feira, 26 de fevereiro de 2013 12:27 padronização
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
- Sugerido como Resposta Azevedo PedroMVP segunda-feira, 25 de fevereiro de 2013 18:10
- Editado Azevedo PedroMVP segunda-feira, 25 de fevereiro de 2013 18:11
- Marcado como Resposta Henrique Gusmão terça-feira, 26 de fevereiro de 2013 14:25
-
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
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
- Sugerido como Resposta Azevedo PedroMVP segunda-feira, 25 de fevereiro de 2013 18:10
- Editado Azevedo PedroMVP segunda-feira, 25 de fevereiro de 2013 18:11
- Marcado como Resposta Henrique Gusmão terça-feira, 26 de fevereiro de 2013 14:25
-
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.
- Editado Henrique Gusmão terça-feira, 26 de fevereiro de 2013 14:40
-
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
-
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.
- Editado Henrique Gusmão terça-feira, 26 de fevereiro de 2013 17:08
-
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
Pedro Azevedo Crm Specialist 4.0\2011
- Sugerido como Resposta Azevedo PedroMVP quarta-feira, 27 de fevereiro de 2013 11:05