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