Pessoal
Tenho no código abaixo um datagrid com itens de um pedido de venda.
Quando clico no datagrid ele joga as colunas para os campos de edição.
No campo produto tenho uma validação contra o cadastro de produto. Se não
existir erro, pego a descrição, a unidade e o preço unitário.
Até aí, tudo bem, está funcionando.
Meu problema é que quando clico em um item do datagrid, ele joga as
informações para o campo e imediatamente executa
a validade do cadastro. Caso o usuário tenha alterado o preço unitário, ele
sobre com o preço do cadastro.
Eu queria que essa validalação só ocorrese quando eu desse um TAB no campo
"produto" e não a cada click do datagrid.
Tem como ? Já fiz várias pesquisas e não achei resposta ou não entendi uma
solução para o que preciso.
Será que teria que colocar um botão para fazer essa validação ?

<mx:DataGrid id="brw_itens" dataProvider="{gridItens}"
click="selecionaItem(event)" y="190"  left="10" right="16" height="140"
rowHeight="18">
   <mx:columns>
     <mx:DataGridColumn headerText="Produto" dataField="produto" width="80"
textAlign="left" />
     <mx:DataGridColumn headerText="Descrição" dataField="des_prod"
width="300" />
     <mx:DataGridColumn headerText="Und" dataField="unidade" width="25" />
     <mx:DataGridColumn headerText="Qtd" dataField="quant" width="60"
textAlign="right" />
     <mx:DataGridColumn headerText="Unitário" dataField="pr_unit" width="60"
textAlign="right" />
     <mx:DataGridColumn headerText="Total" dataField="pretot" width="60"
textAlign="right"/>
   </mx:columns>
</mx:DataGrid>
<mx:TextInput id="produto" x="36" y="338" width="100" textAlign="left"
editable="false" height="20" maxChars="12" color="#000000"/>
<mx:TextInput id="des_prod" x="135" y="338" width="335" textAlign="left"
editable="false" tabEnabled="false" height="20" maxChars="6"
color="#000000"/>
<mx:TextInput id="unidade" x="478" y="337" width="33" textAlign="left"
editable="false" tabEnabled="false" height="20" maxChars="6"
color="#000000"/>
<mx:TextInput id="quant" x="519" y="337" width="58" textAlign="right"
editable="false" height="20" maxChars="12" color="#000000"/>
<mx:TextInput id="pr_unit" x="585" y="337" width="63" textAlign="right"
editable="false" height="20" maxChars="12" color="#000000"/>
<mx:TextInput id="pretot" x="656" y="337" width="43" textAlign="right"
editable="false" tabEnabled="false" height="20" maxChars="12"
color="#000000"/>
<mx:ArrayCollection id="validadores">
   <mx:StringValidator source="{produto}" property="text"
valid="busca_Produto()" />
</mx:ArrayCollection>

private function selecionaItem(e:Event):void{
   itemSelecionado = e.currentTarget.selectedItem ;
   produto.text = itemSelecionado.produto;
   des_prod.text = itemSelecionado.des_prod;
   unidade.text = itemSelecionado.unidade;
   quant.text = itemSelecionado.quant;
   pr_unit.text = itemSelecionado.pr_unit;
   pretot.text = itemSelecionado.pretot;
}
private function busca_Produto(e):void{
   var remote:AcessoRemoto = AcessoRemoto.getInstance("vtgestor.produtos");
   cArg = produto.text ;
   remote.pesquisar(cArg,buscaRet_Produto);
}
private function buscaRet_Produto(e:ResultEvent):void{
   itemSelecionado = e.result ;
   if(itemSelecionado.erro =="0"){
     des_prod.text = itemSelecionado.descricao;
     unidade.text = itemSelecionado.unidade;
     pr_unit.text = itemSelecionado.prvenda;
     quant.setFocus();
   } else {
      S_Mensa("Produto não cadastrado","Erro na pesquisa",produto);
   }
}

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Reply via email to