Pessoal no meu Java criei um método de pesquisa para fazer um filtro no flex .Coloquei uma caixa de texto para que quando o usuário digitar o código e apertar no botão pesquisar ele trazer o valor escolhido .Vou colocar o código Java e o meu em Actionscript3 a minha dúvida estar no ActionScript porque não está funcionando.No aguardo
publicstaticClientepesquisar(Stringcodigo){Clientecliente=newCliente();try{Stringsql="SELECT * FROM CLIENTE WHERE CODIGO=?";Connectionconn=ConnectionFcatory.getConnection();PreparedStatementstmt=conn.prepareStatement(sql);stmt.setString(1,codigo);ResultSetres=stmt.executeQuery();if(res.next()){cliente.setCodigo(res.getInt("CODIGO"));cliente.setNome(res.getString("NOME"));cliente.setCpf(res.getString("CPF"));}stmt.close();res.close();conn.commit();}catch(SQLExceptione){e.printStackTrace();}returncliente;}
Action Script3
public function pesquisar_cliente():void {
cliente = new Cliente();
cliente.codigo = ti_codigo.text;
conectarjava.pesquisar();
conectarjava.listar();
}
coloque o código responsável por liberar os recursos sempre dentro de um bloco finally,assim vc garante que ele SEMPRE será executado.
cristianoventura
OK meu procedimento pesquisar em actionScript3 o que devo fazer para funciona no aguardo vc acha que está certo.No aguardo.
Ivan_Alves
Primeiro seu código no banco é de que tipo se for Inteiro você tem que receber como parametro um tipo int e ao enviar o código deve ser feito em vez disso:
faça isso:
qualquer coisa fala ai, flw!!
cristianoventura
Entendi Ivan e no meu Código Flex como dever fazer um procedimento Action Script 3
essa é a principal dúvida.
public function pesquisar_cliente():void {
cliente = new Cliente();
cliente.codigo = ti_codigo.text;
conectarjava.pesquisar();
conectarjava.listar();
}
Ivan_Alves
Ta você primeiro precisa de uma biblioteca para conectar o Flex com o Java eu uso o BlazeDS e configurar as classes Java que você irá utilizar, depois declarar um RemoteObject que referencia essa classe e assim chamar o seu método que está no flex
Ivan o meu sistema ja esta conectando com o java eu estou utiliznado o blazeds mesmo ja está resgatando as informações do banco de dados a minha dúvida é referente somente a este Código no flex que postei a função pesquisar no flex.No aguardo
S
surian-guj
Mostra o código da chamada que você está tentando fazer…
S
surian-guj
…
Ivan_Alves
Ai em cima a chamada está assim:
agora como ele recebe o parametro do tipo inteiro você deve mandar o parametro junto se ele estiver em um TextInput você pode tentar assim:
olha ai e avisa, flw!!
cristianoventura
esse é codigo do flex action script o conectarjava.pesquisar esta vindo meu remot-config e o meu pesquisar é o meu metodo java responsável pela pesquisa a minha dúvida é na parte do flex mesmo.De qualquer maneira segue o meu metodo do meu pesquisar da classe ClienteDAO
codigo em action script 3
public function pesquisar_cliente():void {
cliente = new Cliente();
cliente.codigo = ti_codigo.text;
conectarjava.pesquisar();
conectarjava.listar();
}
e codigo em java
publicstaticClientepesquisar(Stringcodigo){Clientecliente=newCliente();try{Stringsql="SELECT * FROM CLIENTE WHERE CODIGO=?";Connectionconn=ConnectionFcatory.getConnection();PreparedStatementstmt=conn.prepareStatement(sql);stmt.setString(1,codigo);ResultSetres=stmt.executeQuery();if(res.next()){cliente.setCodigo(res.getInt("CODIGO"));cliente.setNome(res.getString("NOME"));cliente.setCpf(res.getString("CPF"));}stmt.close();res.close();conn.commit();}catch(SQLExceptione){e.printStackTrace();}returncliente;}
cristianoventura
Ivan vou tentar fazer o procedimento te falo já se deu certo.Só um momento.
cristianoventura
Ivan estamos chegando perto eu clico no botão pesquisar mas ele não traz o resultado o que pode ser,mas também não apresenta erro fiz da seguinte forma que vc pediu? Vou te mandar o formulário de cliente em mxml e o action Script.No aguardo.
public function pesquisar_cliente():void {
cliente = new Cliente();
conectarjava.pesquisar(Number(ti_codigo.text));
conectarjava.listar();
}
<?xml version="1.0" encoding="utf-8"?><mx:TitleWindowxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"width="688"height="418"creationComplete="{listar_pessoa()}"showCloseButton="true"close="PopUpManager.removePopUp(this)"title="Cadastro de Clientes"><mx:RemoteObjectid="conectarjava"destination="conectarjava"><mx:methodname="insert"result="ResultadoGravacao(event)"fault="falhaConexao(event)"/><mx:methodname="deleta"result="ResultadoExclusao(event)"fault="falhaConexao(event)"/><mx:methodname="listar"result="ResultadoLista(event)"fault="falhaConexao(event)"/><mx:methodname="update"result="ResultadoAlteracao(event)"fault="falhaConexao(event)"/><mx:methodname="pesquisar"result="ResultadoPesquisa(event)"fault="falhaConexao(event)"/></mx:RemoteObject><mx:Scriptsource="indexcliente.as"/><mx:TextInputx="114"y="165"id="ti_codigo"width="86"text="{datagrid_cliente.selectedItem.codigo}"/><mx:TextInputx="114"y="213"text="{datagrid_cliente.selectedItem.nome}"id="ti_nome"width="264"/><mx:TextInputx="114"y="260"id="ti_cpf"text="{datagrid_cliente.selectedItem.cpf}"width="264"height="25"/><mx:Labelx="34"y="210"text="NOME.:"/><mx:Labelx="34"y="260"text="CPF.:"/><mx:Labelx="32"y="162"text="CÓDIGO.:"/><mx:DataGridx="0"y="0"height="131"width="668"id="datagrid_cliente"dataProvider="{dados_cliente}"><mx:columns><mx:DataGridColumnheaderText="Código"dataField="codigo"/><mx:DataGridColumnheaderText="Nome"dataField="nome"/><mx:DataGridColumnheaderText="Cpf"dataField="cpf"/></mx:columns></mx:DataGrid><mx:Buttonx="208"y="309"label="Gravar"width="117"click="gravar_cliente()"height="41"icon="@Embed(source='icons/save.png')"/><mx:Buttonx="458"y="309"label="Excluir "width="116"height="41"click="deleta_cliente()"icon="@Embed(source='icons/delete.png')"/><mx:Buttonx="333"y="309"label="Alterar"height="41"click="alterar_cliente()"icon="@Embed(source='icons/update.png')"/><mx:Buttonx="95"y="309"label="Novo"height="41"click="limpar_campos()"icon="@Embed(source='icons/novo.png')"/><mx:TextInputx="306"y="168"width="194"id="ti_pesquisa"/><mx:Buttonx="458"y="165"label="Pesquisar"id="btnpesquisar"click="pesquisar_cliente()"/></mx:TitleWindow>
Ivan_Alves
Seguindo seu MXML caso retorna uma pesquisa ele retorna por esse método
privatefunctionResultadoPesquisa(event:ResultEvent){//primeiropegueoresultado//casoestejaretornandootipoClientequejáestámapeadocorretamentenoFlexfaçaissovarcliente:Cliente=event.resultasCliente;//convertendoobjetorecebido,casonãorecebanadaesseobjetoirárecebernullif(cliente!=null){Alert.show("Pesquisa retornou resultado!!!");//restodoseucódigo...}else{Alert.show("Sua pesquisa não retornou resultado!!!");}}
cristianoventura
Ivan substitui a função que vc falou ele realmente traz a resposta Pesquisa retornou resultado!!!
agora no dbgrid ele não faz nada por exemplo se eu coloco codigo 2 e clico em pesquisar o dbgrid não faz nada ficam todos os registros lá.No aguardo
Ivan_Alves
Perceba que no seu datagrid possui uma propriedade chamada dataProvider que recebe ‘dados_cliente’ sendo que ‘dados_cliente’ provavelmente é do tipo ArrayCollection(Parecido com List em Java) então se você quer popular a sua data grid com apenas esse objeto o mais correto a se fazer e inseri-lo no seu dados_cliente podendo ser feito dessa forma:
//coloque isso ao receber o resultado da pesquisa
dados_cliente = new ArrayCollection(); //limpa a lista e com ela sua datagrid
dados_cliente.add(seuObjetoCliente); //adiciona seu objeto recebido
Uma coisa que precisa ficar atento e verificar a declaração dessa ArrayCollection e certifique se que ela é Bindable fica mais ou menos assim:
[Bindable]
private var dados_cliente:ArrayCollection...
testa ai, e fale…
cristianoventura
importmx.collections.ArrayCollection;importmx.controls.Alert;importmx.events.CollectionEvent;importmx.managers.PopUpManager;importmx.rpc.events.FaultEvent;importmx.rpc.events.ResultEvent;importvo.Cliente;[Bindable]privatevardados_cliente:ArrayCollection;privatevarcliente:Cliente;publicfunctiongravar_cliente():void{cliente=newCliente();cliente.codigo=ti_codigo.text;cliente.nome=ti_nome.text;cliente.cpf=ti_cpf.text;conectarjava.insert(cliente);conectarjava.listar();}publicfunctiondeleta_cliente():void{cliente=newCliente();cliente.codigo=ti_codigo.text;cliente.nome=ti_nome.text;cliente.cpf=ti_cpf.text;conectarjava.deleta(cliente);conectarjava.listar();}publicfunctionpesquisar_cliente():void{cliente=newCliente();conectarjava.pesquisar(Number(ti_codigo.text));conectarjava.listar();}publicfunctionalterar_cliente():void{cliente=newCliente();cliente.codigo=ti_codigo.text;cliente.nome=ti_nome.text;cliente.cpf=ti_cpf.text;conectarjava.update(cliente);conectarjava.listar();}publicfunctionlimpar_campos():void{ti_codigo.text="";ti_nome.text="";ti_cpf.text="";}publicfunctionlistar_pessoa():void{conectarjava.listar();}publicfunctionfalhaConexao(event:FaultEvent):void{Alert.show("Erro= "+event.fault.faultString);}publicfunctionResultadoLista(event:ResultEvent):void{dados_cliente=event.resultasArrayCollection;}//publicfunctionResultadoPesquisa(event:ResultEvent):void//{//dados_cliente=event.resultasArrayCollection;//}publicfunctionResultadoExclusao(event:ResultEvent):void{if(event.result==true){Alert.show("Excluido com sucesso!");}elseAlert.show("Erro na Exlcusao!");}publicfunctionResultadoGravacao(event:ResultEvent):void{if(event.result==true){Alert.show("Gravado com sucesso!");}elseAlert.show("Erro na gravação!");}publicfunctionResultadoAlteracao(event:ResultEvent):void{if(event.result==true){Alert.show("Alterado com sucesso!");}elseAlert.show("Erro na Alteracao!");}privatefunctionchamarlogin():void{varlogar:loginlogar=login(PopUpManager.createPopUp(this,login,true));logar.ti_usuario.setFocus()PopUpManager.centerPopUp(logar);}privatefunctionResultadoPesquisa(event:ResultEvent){//primeiropegueoresultado//casoestejaretornandootipoClientequejáestámapeadocorretamentenoFlexfaçaissovarcliente:Cliente=event.resultasCliente;//convertendoobjetorecebido,casonãorecebanadaesseobjetoirárecebernullif(cliente!=null){Alert.show("Pesquisa retornou resultado!!!");//restodoseucódigo...}else{Alert.show("Sua pesquisa não retornou resultado!!!");}}
Ivan o meu código esta da seguinte forma qual a sua sugestão?No aguardo
Ivan_Alves
importmx.collections.ArrayCollection;importmx.controls.Alert;importmx.events.CollectionEvent;importmx.managers.PopUpManager;importmx.rpc.events.FaultEvent;importmx.rpc.events.ResultEvent;importvo.Cliente;[Bindable]privatevardados_cliente:ArrayCollection=newArrayCollection();privatevarcliente:Cliente;publicfunctiongravar_cliente():void{cliente=newCliente();cliente.codigo=ti_codigo.text;cliente.nome=ti_nome.text;cliente.cpf=ti_cpf.text;conectarjava.insert(cliente);conectarjava.listar();}publicfunctiondeleta_cliente():void{cliente=newCliente();cliente.codigo=ti_codigo.text;cliente.nome=ti_nome.text;cliente.cpf=ti_cpf.text;conectarjava.deleta(cliente);conectarjava.listar();}publicfunctionpesquisar_cliente():void{cliente=newCliente();conectarjava.pesquisar(Number(ti_codigo.text));conectarjava.listar();}publicfunctionalterar_cliente():void{cliente=newCliente();cliente.codigo=ti_codigo.text;cliente.nome=ti_nome.text;cliente.cpf=ti_cpf.text;conectarjava.update(cliente);conectarjava.listar();}publicfunctionlimpar_campos():void{ti_codigo.text="";ti_nome.text="";ti_cpf.text="";}publicfunctionlistar_pessoa():void{conectarjava.listar();}publicfunctionfalhaConexao(event:FaultEvent):void{Alert.show("Erro= "+event.fault.faultString);}publicfunctionResultadoLista(event:ResultEvent):void{dados_cliente=event.resultasArrayCollection;}//publicfunctionResultadoPesquisa(event:ResultEvent):void//{//dados_cliente=event.resultasArrayCollection;//}publicfunctionResultadoExclusao(event:ResultEvent):void{if(event.result==true){Alert.show("Excluido com sucesso!");}elseAlert.show("Erro na Exlcusao!");}publicfunctionResultadoGravacao(event:ResultEvent):void{if(event.result==true){Alert.show("Gravado com sucesso!");}elseAlert.show("Erro na gravação!");}publicfunctionResultadoAlteracao(event:ResultEvent):void{if(event.result==true){Alert.show("Alterado com sucesso!");}elseAlert.show("Erro na Alteracao!");}privatefunctionchamarlogin():void{varlogar:loginlogar=login(PopUpManager.createPopUp(this,login,true));logar.ti_usuario.setFocus()PopUpManager.centerPopUp(logar);}privatefunctionResultadoPesquisa(event:ResultEvent){//primeiropegueoresultado//casoestejaretornandootipoClientequejáestámapeadocorretamentenoFlexfaçaissovarcliente:Cliente=event.resultasCliente;//convertendoobjetorecebido,casonãorecebanadaesseobjetoirárecebernullif(cliente!=null){dados_cliente=newArrayCollection();//limpaalistaecomelasuadatagriddados_cliente.add(cliente);//adicionaseuobjetorecebido}else{dados_cliente=newArrayCollection();//limpaalistaecomelasuadatagridAlert.show("Sua pesquisa não retornou resultado!!!");}}
ve se funfa!
cristianoventura
Ivan cara quando coloquei o código ele até a mensagem de pesquisa retornou não aparece mais é Você pode acessar minha maquina via TeamViewr para mim dar um auxilio ou então eu te mando o sistema por uma url acredito que meu problema esteja no front-end.
Ivan_Alves
No código que alterei, eu só mostra a mensagem se não enviar nenhum objeto, mas qualquer coisa manda o que você tem…
cristianoventura
vc pode acessar via teamViewer
Ivan_Alves
Não sei o que é isso, é algum tipo de acesso remoto? Se for manda ai que eu vejo!
cristianoventura
Eu te add o seu msn no meu o seu por acaso é esse aqui.
i
Ivan_Alves
Aqui é bloqueado msn manda uma mensagem pessoal
cristianoventura
Valeu ivan pela ajuda o meu problema era porque eu estava chamando todos os registros ,mas quando vc me pediu para retirar conectarjava.listar() foi resolvido.Obrigado.
public function pesquisar_cliente():void {
cliente = new Cliente();
conectarjava.pesquisar(Number(ti_codigo.text));
}