Na verdade.... o fluxo correto seria...

*private* *function* Busca_Produto(codigo:String):Boolean {

CadProDAO.Buscar(*"select * from cadpro join cadsld on cadsld.sldemp =
'00001**' and cadsld.sldpro = cadpro.procod where profab = '"* + codigo + *
"'"*);
*
**private* *function* resultadoCadProDAO(event:ResultEvent) : *void* {

arraylistCadProDAO = event.result *as* ArrayCollection;

       *if* (arraylistCadProDAO != *null*) {

* *       *      *chamaAlert(arraylistCadProDAO.length != 0 ) ;

       }

}

*private* *function* chamaAlert(value:Boolean):* void* {
*

       if(value) {

              Alert.show(arraylistCadProDAO[0].PRODES);

        }
*
}

mas como ele disse que quer reaproveitar a função resultadoCadProDAO eu
faria assim...

*private* *function* Busca_Produto(codigo:String):Boolean {

CadProDAO.Buscar(*"select * from cadpro join cadsld on cadsld.sldemp =
'00001**' and cadsld.sldpro = cadpro.procod where profab = '"* + codigo + *
"'"*);

this.addEventListener("eventBuscaProduto",chamaAlert);
*
**private* *function* resultadoCadProDAO(event:ResultEvent) : *void* {

arraylistCadProDAO = event.result *as* ArrayCollection;

this.dispatchEvent(new Event("eventBuscaProduto"));

}

*private* *function* chamaAlert(event:Event):* void* {
 * *

       *if* (arraylistCadProDAO != *null*) {

* *       *      *if(arraylistCadProDAO.length != 0 ) {

* *       *      ** *       *      **
Alert.show(arraylistCadProDAO[0].PRODES);*

* *       *      *}

       }

this.removeEventListener("eventBuscaProduto",chamaAlert);
}

dessa forma ele irá reaproveitar essa função =P


Em 29 de abril de 2010 15:04, bruno bg <[email protected]> escreveu:

> CIDO..  vai pela solução do RAFA COMIM.
>
>
> bruno bg
>
>
>
> Em 29 de abril de 2010 14:23, Rafa Comim <[email protected]> escreveu:
>
>  O fluxo correto desse teu código creio  que seria o seguinte:
>>
>>
>> *private* *function* Busca_Produto(codigo:String):Boolean {
>>
>> CadProDAO.Buscar(*"select * from cadpro join cadsld on cadsld.sldemp =
>> '00001**' and cadsld.sldpro = cadpro.procod where profab = '"* + codigo
>> + *"'"*);
>>
>> }
>>
>> *private* *function* resultadoCadProDAO(event:ResultEvent) : *void* {
>>
>> arraylistCadProDAO = event.result *as* ArrayCollection;
>>
>> *if* (arraylistCadProDAO != *null*) {
>>
>> *if* (arraylistCadProDAO.length != 0 ) {*return* *true*;} *else* {*return
>> * *false*;}
>>
>> } *else* {*return* *false*}
>>
>> }
>>
>> Em 29 de abril de 2010 14:14, Cido - Automação 
>> <[email protected]>escreveu:
>>
>>  a sim
>>> fazendo a validação no  resultadoCadProDAO  eu tenho feito e sei que dá
>>> certo
>>> é que queria fazer ele reaproveitavel, pq em diversos momentos no
>>> sistema  eu preciso buscar um produto,
>>> no caso eu teria que criar um  resultadoCadProDAO  pra cada
>>> situação busca de produto
>>> onde fica nessa situação o reaproveitamento de codigo ??
>>> mas, se num tem outra forma eu vou fazer isso..
>>>
>>> obrigado
>>>
>>> cido
>>>
>>>
>>>  *From:* Guilherme Sjlender <[email protected]>
>>> *Sent:* Thursday, April 29, 2010 1:58 PM
>>> *To:* [email protected]
>>> *Subject:* Re: [flexdev] resultado de uma função em flex
>>>
>>> Ata....
>>>
>>> Seguinte...
>>>
>>> Quando vc chama a função CadProDAO.Buscar ele irá no seu backend trazer
>>> essa informação e retornar para o seu resultadoCadProDAO... porém... ele
>>> só irá buscar depois que a função Busca_Produto terminar, ou seja, ele
>>> irá fazer o
>>>
>>> *if* (arraylistCadProDAO != *null*) {
>>>
>>> *if* (arraylistCadProDAO.length != 0 ) {*return* *true*;} *else* {*
>>> return* *false*;}
>>>
>>> } *else* {*return* *false*}
>>>
>>> }
>>>
>>> antes de retornar o seu resultadoCadProDAO... e vemos que ele irá
>>> executar o *if* (arraylistCadProDAO != *null*) e como a lista está nula
>>> ainda não irá retornar nada.... depois que terminar essa função... ai será
>>> retornado a lista que vc precisa.... então, na segunda vez essa lista ja
>>> está carregada, ai passa pelo if...
>>>
>>> O que vc deveria fazer é fazer essa validação no resultadoCadProDAO
>>> chamando então o Alert.
>>>
>>> Compreendes?
>>>
>>> Seria isso =)
>>>
>>> Boa sorte ai.
>>> Em 29 de abril de 2010 13:51, Cido - Automação 
>>> <[email protected]>escreveu:
>>>
>>>>  seguinte quando dou o primeiro Click ele num faz nada
>>>> quando dou o segundo Click ela me traz a descrição do produto
>>>> corretamente
>>>> parece que ela me resulta o evento apenas quando clico no botão pela
>>>> segunda vez
>>>>
>>>> cido
>>>>
>>>>  *From:* Guilherme Sjlender <[email protected]>
>>>> *Sent:* Thursday, April 29, 2010 1:41 PM
>>>> *To:* [email protected]
>>>> *Subject:* Re: [flexdev] resultado de uma função em flex
>>>>
>>>> Você quer chamar essa função no duplo click? é isso sua duvida?
>>>>
>>>> Em 29 de abril de 2010 12:22, Cido - Automação 
>>>> <[email protected]>escreveu:
>>>>
>>>>>  sei que é uma questão da maneira como flex funciona
>>>>> mas gostaria que alguem me desse uma dica de como fazer
>>>>>
>>>>> eu chamo a função num click de um Button dessa forma:
>>>>> *
>>>>>
>>>>> if(Busca_Produto("100/B")) {
>>>>>
>>>>>  Alert.show(arraylistCadProDAO[0].PRODES);
>>>>>
>>>>>  }
>>>>> *
>>>>>
>>>>> *private* *function* Busca_Produto(codigo:String):Boolean {
>>>>>
>>>>> CadProDAO.Buscar(*"select * from cadpro join cadsld on cadsld.sldemp =
>>>>> '00001**' and cadsld.sldpro = cadpro.procod where profab = '"* +
>>>>> codigo + *"'"*);
>>>>>
>>>>> *if* (arraylistCadProDAO != *null*) {
>>>>>
>>>>> *if* (arraylistCadProDAO.length != 0 ) {*return* *true*;} *else* {*
>>>>> return* *false*;}
>>>>>
>>>>> } *else* {*return* *false*}
>>>>>
>>>>> }
>>>>>
>>>>> *private* *function* resultadoCadProDAO(event:ResultEvent) : *void* {
>>>>>
>>>>> arraylistCadProDAO = event.result
>>>>> *as* ArrayCollection;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>> na primeiro click ele num traz o resultado, apenas no segundo click
>>>>>
>>>>> acredito que é uma questão de como os eventos do flex funciona
>>>>>
>>>>> alguem poderia me ajudar a como fazer ??
>>>>>
>>>>> obrigado
>>>>>
>>>>>
>>>>>
>>>>> cido
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> -----------------------------------------------------------
>>>> Guilherme Sjlender                            -
>>>> Desenvolvedor RIA - Flex/Java         -
>>>> http://site.gflex.biz                       -
>>>> ------------------------------------------------
>>>>
>>>> --
>>>> 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
>>>>
>>>
>>>
>>>
>>> --
>>> -----------------------------------------------------------
>>> Guilherme Sjlender                            -
>>> Desenvolvedor RIA - Flex/Java         -
>>> http://site.gflex.biz                       -
>>> ------------------------------------------------
>>>
>>> --
>>> 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
>>>
>>
>>
>>
>> --
>> ______________________
>>
>> Atenciosamente,
>>
>> Rafael Comim
>>
>>  --
>> 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
>



-- 
-----------------------------------------------------------
Guilherme Sjlender                            -
Desenvolvedor RIA - Flex/Java         -
http://site.gflex.biz                       -
------------------------------------------------

-- 
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

Responder a