Bom dias a Todos e Obg pelas Dicas,
Sobre a alteração do locale, não me adiantou muito porque não tenho esse
locale instalado na minha máquina, acabei por resolver o problema onde
estava a converter em numérico, passou a converter em string e quando
compara as duas strings já deixa alterar os valores da celula. junto anexo
o código alterado da função editEndHandler:
private function editEndHandler(event:DataGridEvent):void {
var myEditor:TextInput =
TextInput(event.currentTarget.itemEditorInstance);
var newVal:String = (myEditor.text == "0" || myEditor.text == "0,00") ?
"0" : myEditor.text;
var dataOldVal:String =
event.currentTarget.editedItemRenderer.data[event.dataField];
var oldVal:String = (dataOldVal == "0" || dataOldVal == "0,00") ? "0" :
dataOldVal;
if (event.reason == DataGridEventReason.CANCELLED || event.reason ==
DataGridEventReason.OTHER || oldVal == newVal) {
event.preventDefault();
dg.destroyItemEditor();
return;
}
}
Um abraço
Marco
2012/10/18 Stefan Horochovec <[email protected]>
> Olá
>
> Não testei aqui o código, mas o que me parece é que quando você editar um
> registro, ele irá passar antes na função editEndHandler para depois passar
> pelo formatterFunction.
>
> Só que como você pode digitar um valor como "1,1", a linha 44 irá retornar
> um valor igual ao zero, que será igual ao valor do oldVal que também será
> zero, e sua formatação não irá ocorrer.
>
> Abraço
>
> Stefan Horochovec
> Engenheiro de Software
> Blog: http://www.horochovec.com.br/
> Twitter: http://twitter.com/horochovec
>
>
>
> Em 18 de outubro de 2012 10:15, Fredy Gadotti
> <[email protected]>escreveu:
>
> Clica com o direito no seu projeto -> properties -> Flex Compiler ->
>> Additional Compiler Arguments.
>> Deve ter o argumento -locale en_US ou -locale pt_BR
>>
>> 2012/10/18 Marco Carapinha <[email protected]>:
>> > Fredy Obg. pelas dicas,
>> >
>> > Já passei o debuger com os traces, é na realidade a variavel newVal, não
>> > está sempre a 0.
>> > Onde posso ver isto ? "Verifica se seu locale está correto nos seus
>> > argumentos de compilação." não estou a encontrar em lado nenhum.
>> >
>> >
>> > Abraço
>> > Marco
>> >
>> > 2012/10/18 Fredy Gadotti <[email protected]>
>> >>
>> >> Debuga o seguinte trecho.
>> >>
>> >> var newVal:Number = isNaN(Number(myEditor.text)) ? myEditor.text as
>> >> Number : 0.0000;
>> >>
>> >> Aconselho usar trace no lugar do debug neste caso, que ele dispara
>> >> vários focusOut ( quando você sai do campo por enter/tab e quando o
>> >> debug muda para IDE );
>> >>
>> >> if (event.reason == DataGridEventReason.CANCELLED || event.reason ==
>> >> DataGridEventReason.OTHER || oldVal == newVal)
>> >>
>> >> Na linha anterior, acredito que o oldVal está igual o newVal.
>> >> Provavelmente o valor que colocou não está sendo convertido para um
>> >> número.
>> >>
>> >> Verifica se seu locale está correto nos seus argumentos de compilação.
>> >> // pt_BR usa , como separador
>> >> // en_US usa . como separador
>> >>
>> >> Abraço,
>> >>
>> >> Fredy
>> >>
>> >> 2012/10/18 Marco Carapinha <[email protected]>:
>> >> > Olá Fredy,
>> >> >
>> >> > O código que envio em anexo é já com essa alteração, melhorou o
>> problema
>> >> > inicial mas depois fiquei com o problema de que quando o valor é 0,
>> não
>> >> > consigo alterar os valores.
>> >> >
>> >> > Abraço
>> >> > Marco
>> >> >
>> >> >
>> >> > 2012/10/18 Fredy Gadotti <[email protected]>
>> >> >>
>> >> >> Opa Marco,
>> >> >>
>> >> >> fui eu que passei por esse problema.
>> >> >> Lembro que a solução que o Alex me sugeriu resolveu o problema.
>> >> >> Chegou a ver o código no final do post?
>> >> >> Lá eu previno a ação de default e destruo o itemRenderer.
>> >> >>
>> >> >> Abraço,
>> >> >>
>> >> >> Fredy
>> >> >>
>> >> >> 2012/10/18 Marco <[email protected]>:
>> >> >> > Bom dia a Todos,
>> >> >> >
>> >> >> > Actualmente estou a desenvolver uma aplicação em Flex, cuja a
>> mesma
>> >> >> > têm
>> >> >> > uma
>> >> >> > DataGrid editavel onde tenho campos numéricos e estou a usar a
>> >> >> > labelfunction
>> >> >> > para formatar estes campos, o meu problema é que cada vez que o
>> >> >> > cursor
>> >> >> > passa
>> >> >> > por este campo o mesmo ganha não sei quantos 000000.
>> >> >> > Depois de algumas horas na web, encontrei um artigo sobre este
>> >> >> > assunto
>> >> >> > no
>> >> >> > forum da adobe, que depois das alterações sugeridas fiquei com um
>> >> >> > novo
>> >> >> > problema que é que quando o valor do campo é 0 ele não altera o
>> >> >> > valor.
>> >> >> > http://forums.adobe.com/thread/431165
>> >> >> >
>> >> >> > Necessito da vossa ajuda por favor.
>> >> >> > Código do mxml em anexo
>> >> >> >
>> >> >> > Marco
>> >> >> >
>> >> >> > --
>> >> >> > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> >> >> > Para enviar uma mensagem, envie um e-mail para
>> >> >> > [email protected]
>> >> >> > Para sair da lista, envie um email em branco para
>> >> >> > [email protected]
>> >> >> > Mais opções estão disponíveis em
>> >> >> > http://groups.google.com/group/flexdev
>> >> >>
>> >> >> --
>> >> >> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> >> >> Para enviar uma mensagem, envie um e-mail para
>> [email protected]
>> >> >> Para sair da lista, envie um email em branco para
>> >> >> [email protected]
>> >> >> Mais opções estão disponíveis em
>> http://groups.google.com/group/flexdev
>> >> >
>> >> >
>> >> > --
>> >> > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> >> > Para enviar uma mensagem, envie um e-mail para
>> [email protected]
>> >> > Para sair da lista, envie um email em branco para
>> >> > [email protected]
>> >> > Mais opções estão disponíveis em
>> http://groups.google.com/group/flexdev
>> >>
>> >> --
>> >> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> >> Para enviar uma mensagem, envie um e-mail para
>> [email protected]
>> >> Para sair da lista, envie um email em branco para
>> >> [email protected]
>> >> Mais opções estão disponíveis em
>> http://groups.google.com/group/flexdev
>> >
>> >
>> > --
>> > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> > Para enviar uma mensagem, envie um e-mail para [email protected]
>> > Para sair da lista, envie um email em branco para
>> > [email protected]
>> > Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev