Um script de exemplo para deixarmos todos os campos do formulário em “caixa alta” (uppercase), basta inserí-lo em uma biblioteca e registrá-lo no “onsave” do formulário, vejam:
function UpperCase()
{
// Recupera os controles do formulário
var controls = Xrm.Page.ui.controls.get();
// Percorre os controles
for (var i in controls)
{
// Recupera o controle atual
var control = controls[i];
// Verifica se o tipo do controle é "Standard"
if(control.getControlType() == "standard")
{
// Recupera o atributo atual
var attribute = control.getAttribute();
// Verifica se o atributo existe e se o tipo é uma "string" ou "memo" (textarea)
if(attribute && attribute.getAttributeType() &&
(attribute.getAttributeType() == "string" || attribute.getAttributeType() == "memo"))
{
// Recupera o valor do atributo
var valor = attribute.getValue();
// Verifica se o valor do atributo não é "nulo"
if(valor)
{
// Realiza o comando UpperCase()
valor = valor.toUpperCase();
// Seta o atributo com o valor em CAIXA ALTA
attribute.setValue(valor);
}
}
}
}
}
PS: Editado (12/06/2013) – Correção, créditos à Anderson Alencar, obrigado pela ajuda.
Amigo,
Esta dando um erro – O objeto não oferece suporte á propriedade ou metodo “getAttribute” .
Sabe o que pode ser?
CurtirCurtir
Luiz,
O script foi testado e está funcionando. Verifique se lembrou de publicar o Web Resource e se inseriu o método no OnSave, como “UpperCase”.
Att,
Tiago Cardoso
CurtirCurtir
Tiago otimo Post e Exemplo Ajudou muito… Apenas uma observação.
// Recupera o atributo atual
var attribute = control.getAttribute();
Este trecho deveria estar após a verificação do tipo do controle.
Pois se no formulário possuir um Subgrid será apresentado um erro.
Abraços
CurtirCurtir
Muito obrigado Anderson, o ajuste já foi publicado!
Att,
Tiago Cardoso
CurtirCurtir