Ao Manter Foco em um inputText preciso executar um relatório ao sair deste Campo. JSF RichFaces

28/10/2009


 Boa Tarde.


 Estou desenvolvendo uma Tela onde o usuario entra com um numero em um inputText e logo pressiona TAB, essa entrada de dados tambem é através de uma Leitora de Codigos de Barra.
Ao sair do Campo o relatório deveria ser executado, mas não sei como proceder para que isso acontece.
Conseguir usando jQuery mater o focu no campo, sempre que sair retornar para o mesmo.

Segue exemplo:

Codigo jQuery usado  funcionando ok:

function mantemFocus(){
                  
                 jQuery( ".meuInput" ).blur( function(){
                          setTimeout( function(){
                        jQuery( ".meuInput" ).focus()
                     },0);
                 });
              
                 }



Tela onde o usuario entra com o dados :



Codigo desta Pagina :

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:c="http://java.sun.com/jstl/core"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">

    <body>
        <ui:composition template="../layouts/template.xhtml">
            <ui:define name="content">
                <rich:panel style="width:800px;height:300px">
                    <f:facet name="header">
                        <h:outputText value="Impressão de Etiquetas"/>
                    </f:facet>
                    <h:form id="etiqueta">
                        <h:panelGrid columns="3">
                            <h:outputText  styleClass="rich-label" value="Tipo de Etiqueta" />
                            <rich:comboBox  size="2" label="Tipo de Etiqueta" defaultLabel="Selecione a Etiqueta" id="etiqueta" required="true" value="">
                                <f:selectItem itemValue="Endereçamento"/>
                                <f:selectItem itemValue="Simples"/>
                                <f:validateLength minimum="4" maximum="30" />
                            </rich:comboBox>


                            <h:selectOneRadio styleClass="rich-label">

                                <f:selectItem itemLabel="Numero de Nota Fiscal" itemValue="nota"/>
                                <f:selectItem itemLabel="Numero do Pedido" itemValue="pedido"/>
                                <a4j:support event="onclick" reRender="tipo"/>

                            </h:selectOneRadio>
                        </h:panelGrid>

                        <h:outputText  styleClass="rich-label" value="Entre com os dados:" />
                        <h:inputText  label="Dados" size="15"  id="meuInput" required="true" value="#{etiquetasController.num_notafiscal}"
                        class="meuInput" onblur="javascript:mantemFocus();">
                            <rich:ajaxValidator event="onblur"/>
                            <f:validateLength minimum="6" maximum="15" />
                        </h:inputText>

                        <c:if test="${not empty etiquetasController.num_notafiscal}">
                            <br />
                            <rich:dataTable  id="etiquetas" rendered="true"  var="item" value="#{etiquetasController.etiquetas}" style="width:400px">

                                <rich:column id="numped">
                                    <f:facet name="header"><h:outputText styleClass="headerText" value="Fotnecimento" /></f:facet>
                                    <h:outputText value="#{item[0]}"  />
                                </rich:column>

                                <rich:column id="nota">
                                    <f:facet name="header"><h:outputText styleClass="headerText" value="Nota Fiscal" /></f:facet>
                                    <h:outputText value="#{item[9]}"  />
                                </rich:column>

                                <rich:column id="datanota">
                                    <f:facet name="header"><h:outputText styleClass="headerText" value="Data Nota" /></f:facet>
                                    <h:outputText value="#{item[10]}">
                                        <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo"/>
                                    </h:outputText>
                                </rich:column>

                                <rich:column id="nome">
                                    <f:facet name="header"><h:outputText styleClass="headerText" value="Nome Cliente" /></f:facet>
                                    <h:outputText value="#{item[3]}"/>
                                </rich:column>

                            </rich:dataTable>

                            <h:commandLink value="Imprimir" action="#{etiquetasController.executarEtiqueta}" />

                        </c:if>
                    </h:form>
                </rich:panel>

            </ui:define>
        </ui:composition>
    </body>
</html>



Codigo Java onde executa o Relatório, so funciona usando commandLink.

 @SuppressWarnings("unchecked")
   //executa o relatório através do actionListener
    public void executarEtiqueta() throws java.text.ParseException, IOException, ParseException {

        this.todosResultsPesq();
      

        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();

        //pega o caminho do arquivo .jasper da aplicação
        InputStream reportStream = context.getExternalContext().getResourceAsStream("/reporter/etiquetas/EtiquetaEndereco.jasper");

        //envia a resposta com o MIME Type PDF
        response.setContentType("application/pdf");
        /*for�a a abertura de download
        response.setHeader("Content-disposition",
        "attachment;filename=relatorio.pdf");
         */
        try {
            ServletOutputStream servletOutputStream = response.getOutputStream();

            //envia o título para o relatório, usando o parâmetro criado
            Map<String, String> parametros = new HashMap<String, String>();
            parametros.put("fornecimento", "xxxx");

            List dados = new ArrayList();

            Map record = null;
          
            //varre a consulta e separa os objetos

            for (Iterator iterator = todosResultsPesq().iterator();
                    iterator.hasNext();) {

                Object[] o = (Object[]) iterator.next();
                record = new HashMap();
                //coloca em um Map cada um dos campos criados
                //manualmente pelo relatório

                record.put("fornecimento", o[0].toString());
                record.put("isrisco", Boolean.parseBoolean(o[1].toString()));
                record.put("endereco_entrega", o[2].toString());
                record.put("nome_cliente", o[3].toString());
                record.put("endereco", o[4].toString());
                record.put("bairro", o[5].toString());
                record.put("cidade", o[6].toString());
                record.put("cep", o[7].toString());
                record.put("observacao_entrega", o[8].toString());
                record.put("num_notafiscal", Integer.parseInt(o[9].toString()));
                record.put("data_nf", this.convertTimestamp(o[10].toString()));

                //adiciona o List dados
                dados.add(record);


            }

                //cria uma fonte de dados para cole��es
                JRBeanCollectionDataSource fonteDados = new JRBeanCollectionDataSource(dados);

                //envia para o navegador o PDF gerado
                JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream,parametros,fonteDados);

                servletOutputStream.flush();
                servletOutputStream.close();

            } catch  (JRException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            //evita erro do JSF após completar
            //a geração do relatório
            //avisando o FacesContext que a resposta está completa
            context.responseComplete();

        }
    }



Obrigado


Victor





Victor Lima

Respostas

29/10/2009

Andrei Hirata

Não entendi exatamente oque vc quer.mas pelo que entendi vc quer algo assim..

Toda vez que o usuario usar o sistema para pesquizar algo com o codigo de barras,deve ficar focalizado sempre no seu input para que assim as pesquisas sejam feitas

Neste caso a logica seria assim

jTextField.requestFocus(); //aqui ele força o focus no seu componente

if querybusca encontrou valor
pega valor e adiciona na grid
jTextField.requestFocus(); //focaliza o focus para outra consulta


é isto que vc quer?um comando para forçar o focus para sempre fazer busca?

OBS:vc deve usar um if assim tambem

se o jtextfield for vazio entao
nao faca nada

SE nao tiver isto, quando vc tentar finalizar a venda toda hora vai ficar focando no seu jtext

estou dando uma logica funcinal e simples.se nao entender eu posto um codigo para vc


Responder Citar

29/10/2009

Victor Lima

Boa Tarde Andrei Inoue Hirata,


 Sim , exatamente, eu quero que ao sair do inputText ele executar a funcao executarEtiqueta()
e retornar ao inputText.

 Tentei de varias maneiras e consegui de uma forma usando o codigo anterior para dar o focus so que quando renderiza depois de um submit o campo perde o foco, sendo que ele deve ficar ali até que o usuario esteje utilizando.

tentei fazer isso mas tambem nao deu certo :

<h:outputText  styleClass="rich-label" value="Entre com os dados:" />
                        <h:inputText  label="Dados" size="15"  id="meuInput"  required="true" value="#{etiquetasController.num_notafiscal}"
                        class="meuInput" reRender="etiquetas" onblur="linkimprime.click();submit();" >
                             <h:commandButton id="linkimprime" value="Imprimir" action="#{etiquetasController.executarEtiqueta}" />

no evento onblur ele chamaria um link que tem uma action que imprime o relatório , mas nao da certo.


 Eu fiz esse sistema no delphi, com um EditText, que no evento onExit ele busca os dados e executa o relatório para impressora. e depois dou  EditText.SetFocus; e pronto retorna ao campo selecionando.

 O que nao sei sao as regras para utilizar isso na WEB com jsf.


 Valeuu pela força no aguardo.

Victor




Responder Citar

29/10/2009

Andrei Hirata

Então amigo eu vou facilitar seu trabalho.. Toda vez que a pessoa clicar no BOTAO INSERIR VALOR. Adicione o valor em uma lista. Assim atualize sua tabela,se usar ajax = comando reRender..algo assim quando o usuario for adicionar o mesmo valor..E agora oq devo fazer?   SIMPLES..   pegue o valor digitado percorra a lista e veja se este valor é igual, se for igual vc incrimenta o valor..SE posse produto,vc incrementaria a quantidade ouuu se for igual vc nao deixa fazer nada..       VEJA QUE É MAIS FACIL TRABALHAR COM LISTA.ISTO SERVE PARA DATA MODEL..VOU TE PASSAR UM EXEMPLO BABA DA LISTA.Eu acho que ligar uma tabela em jsf com a lista vc ja sabe ne? NA DUVIDA>>.   rich:dataTable rowClasses="classOne,classTwo"
                                id = "tblLocais"
                                rows = "10"
                                columnClasses="col"
                                value="#{listaBean.adicionado}"
                                var='item'
                                border="1"
                                cellpadding="2"
                                cellspacing="0">                     <f:facet name="header">
                        <h:outputText value="#{msg.langTblLocais}"/>
                    </f:facet>   aee a sua lista.Aqui exemplo de percorrer.       List lista = new ArrayList();  
... preencha a lista com seus objetos;  
for (Iterator iterator = lista.iterator(); iterator.hasNext(); ) {  
    SuaClasse obj = (SuaClasse) iterator.next();  
    System.out.println (obj.x1 + "," + obj.x2);  
}  OU EXEMPLO List<Pessoa> ps = new ArrayList<Pessoa>();
ps.add(new Pessoa("Maria 1.5"));
for (Pessoa p : ps)
  System.out.println(p.getNome());     assim seu codigo seria   List<Pessoa> ps = new ArrayList<Pessoa>();
for (Pessoa p : ps)
if ValorCapturadoNoJedit ==p.codigo { faca algo } else { faca nada }
  DEU PARA ENTENDER?  
 
Responder Citar

29/10/2009

Andrei Hirata

ignorar  A SOLUÇÃO ABAIXO...ERA A RESPOSTA PARA OUTRO FORUM
Responder Citar

29/10/2009

Andrei Hirata

Ñão sei se isto funciona..Mas antes de dar uma solução mais complexa.... Quando vc da um <h:commandButton  este comando faz uma solicitação para o servidor e atualiza a tela.é como se fosse um submit e por isto ao atualizar a tela, a função de focalizar é perdido mesmo. Oque vc poderia fzer é usar um ajax.vc tem o richfaces instalado? o <a4j:commandButton poderia resolver seu problema.ESTOU CHUTANDO>'so tentando. Se não der eu tenho mais uma solução.
Responder Citar

29/10/2009

Victor Lima

Boa Tarde,


 Veja se te explico melhor:

 Na tela que printei, tem uns controles radio button e combobox,  e um inputText do JSF.

 Quando defino os controles posiciono o cursor no inputText e com um Leitor de Codigo de Barra começo a ler os codigos dentro deste campo.

 O formulário é submetido quando o cursor sai do campo. onblur a pesquisa é realizada com sucesso, veja a tela printada e o codigo:

     <h:outputText  styleClass="rich-label" value="Entre com os dados:" />
                        <h:inputText  label="Dados" size="15" name="meuInput"  id="meuInput"  required="true" value="#{etiquetasController.num_notafiscal}"
                         classes="meuInput" onblur="javascript:mantemFocus();submit();"  >
                        <a4j:support event="onblur" action="#{etiquetasController.executarEtiqueta}" reRender="etiquetas" ajaxSingle="true" />
                            <f:validateLength minimum="6" maximum="15" />

                        </h:inputText>



 
  Destaquei o firebug para voce ver que eu preciso apos submeter a pesquisa voltar ao campo, porque o usuario irá realizar outra pesquisa em intervalos curtos, um atraz do outro.

 E o mais importante é que ele realiza a pesquisa e preciso enviar para impressora o relatório, mas nao tenho ideia de como fazer isso sem um botão, preciso fazer isso como um evento ao sair do campo.

Veja meu console esta pesquisando normalmente:

29/10/2009 16:56:45 com.sun.faces.renderkit.html_basic.HtmlBasicRenderer getForComponent
WARNING: Unable to find component with ID filter in view.
Hibernate:
    select
        pedidos1_.fornecimento as col_0_0_,
        pedidos1_.isrisco as col_1_0_,
        cliente0_.endereco_entrega as col_2_0_,
        cliente0_.nome_cli as col_3_0_,
        cliente0_.logradouro as col_4_0_,
        cliente0_.bairro as col_5_0_,
        cliente0_.cidade as col_6_0_,
        cliente0_.cep as col_7_0_,
        pedidos1_.obs_entrega as col_8_0_,
        notas2_.notafiscal as col_9_0_,
        notas2_.data_cria as col_10_0_
    from
        public.cliente cliente0_
    inner join
        public.pedido pedidos1_
            on cliente0_.cod_cli=pedidos1_.cod_cli
    inner join
        public.nota_fiscal notas2_
            on cliente0_.cod_cli=notas2_.cod_cli
    where
        notas2_.notafiscal=?
16:56:45,410 DEBUG IntegerType:133 - binding '596089' to parameter: 1
16:56:45,412 DEBUG StringType:172 - returning '8707912417' as column: col_0_0_
16:56:45,412 DEBUG BooleanType:172 - returning 'true' as column: col_1_0_
16:56:45,413 DEBUG StringType:172 - returning 'RUA JOAO DE OLIVEIRA SOARES n � 241 apt 202  JARDIM CAMBURI  VITORIA  ES  CEP 29090390' as column: col_2_0_
16:56:45,413 DEBUG StringType:172 - returning 'Odarlindo Alberto Plaster' as column: col_3_0_
16:56:45,413 DEBUG StringType:172 - returning 'RUA JOAO DE OLIVEIRA SOARES n� 241 241' as column: col_4_0_
16:56:45,416 DEBUG StringType:172 - returning 'JARDIM CAMBURI' as column: col_5_0_
16:56:45,416 DEBUG StringType:172 - returning 'VITORIA' as column: col_6_0_
16:56:45,417 DEBUG StringType:172 - returning '29090390' as column: col_7_0_
16:56:45,417 DEBUG StringType:172 - returning 'LV' as column: col_8_0_
16:56:45,418 DEBUG IntegerType:172 - returning '596089' as column: col_9_0_
16:56:45,418 DEBUG DateType:172 - returning '01 Setembro 2009' as column: col_10_0_


E outro problema é que se utilizo um botao para imprimir a pagina fica em branco e perde a sessao.

voce acha que isso é possivel ?

obrigado pela ajuda

Victor




Responder Citar

29/10/2009

Andrei Hirata

Respondendo sua duvida sobre Ao sair do campo executa algo...   <input type="text" onblur="your_function()" name=...>
Agora  to vendo seu codigo com mais atenção.o complicado é q aqui neste forum não tem aquele sistema de formatação de código e ae atrapalha no entendimento.
Responder Citar

29/10/2009

Andrei Hirata

Isto aqui pode resolver seu problema de retornar ao edit apos impressao   <h:form id="myform">
        <h:panelGrid columns="2">
            <h:inputText id="myinput" value="#{userBean.name}">
                <a4j:support event="onkeyup" reRender="myform" focus="myinput"/>
            </h:inputText>
            <h:outputText id="outtext" value="#{userBean.name}" />
        </h:panelGrid>
 </h:form>

Responder Citar

29/10/2009

Andrei Hirata

e sobre istoo   E outro problema é que se utilizo um botao para imprimir a pagina fica em branco e perde a sessao.

voce acha que isso é possivel ?   ------------------------------------   Preciso saber do processo da impressao.Ou seja...os processos do clicar até a impressão..
Responder Citar

29/10/2009

Victor Lima

Boa tarde,


 Eu dei exemplo de um botao mas na verdade preciso utilizar no evento onblur, quando perde o foco.

 Realizei os testes com sua utlima resposta utilizando

<a4j:support event="onkeyup" action="#{etiquetasController.executarEtiqueta}" reRender="etiquetas,etiqueta" ajaxSingle="true" focus="meuinput" />

 ele so nao renderiza o grid para visualizar a pesquisa mas imprime duas vezes o mesmo relatório.

 a funcao que chama o relatório esta abaixo. e coloquei ela na action do  <a4j:support .



 





   @SuppressWarnings("unchecked")
   //executa o relatório através do actionListener
    public void executarEtiqueta() throws java.text.ParseException, IOException, ParseException {

        this.todosResultsPesq();
      

        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();

        //pega o caminho do arquivo .jasper da aplicação
        InputStream reportStream = context.getExternalContext().getResourceAsStream("/reporter/etiquetas/EtiquetaEndereco.jasper");

        //envia a resposta com o MIME Type PDF
      //  response.setContentType("application/pdf");
        /*for�a a abertura de download
        response.setHeader("Content-disposition",
        "attachment;filename=relatorio.pdf");
         */
        try {
            ServletOutputStream servletOutputStream = response.getOutputStream();

            //envia o título para o relatório, usando o parâmetro criado
            Map<String, String> parametros = new HashMap<String, String>();
            parametros.put("fornecimento", "xxxx");

            List dados = new ArrayList();

            Map record = null;
          
            //varre a consulta e separa os objetos

            for (Iterator iterator = todosResultsPesq().iterator();
                    iterator.hasNext();) {

                Object[] o = (Object[]) iterator.next();
                record = new HashMap();
                //coloca em um Map cada um dos campos criados
                //manualmente pelo relatório

                record.put("fornecimento", o[0].toString());
                record.put("isrisco", Boolean.parseBoolean(o[1].toString()));
                record.put("endereco_entrega", o[2].toString());
                record.put("nome_cliente", o[3].toString());
                record.put("endereco", o[4].toString());
                record.put("bairro", o[5].toString());
                record.put("cidade", o[6].toString());
                record.put("cep", o[7].toString());
                record.put("observacao_entrega", o[8].toString());
                record.put("num_notafiscal", Integer.parseInt(o[9].toString()));
                record.put("data_nf", this.convertTimestamp(o[10].toString()));

                //adiciona o List dados
                dados.add(record);


            }

                //cria uma fonte de dados para cole��es
                JRBeanCollectionDataSource fonteDados = new JRBeanCollectionDataSource(dados);

                //envia para o navegador o PDF gerado
           //     JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream,parametros,fonteDados);

                JasperPrint print = JasperFillManager.fillReport(reportStream, parametros, fonteDados);

                JasperPrintManager.printPage(print, 0, false);


                servletOutputStream.flush();
                servletOutputStream.close();





            } catch  (JRException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            //evita erro do JSF após completar
            //a geração do relatório
            //avisando o FacesContext que a resposta está completa
            context.responseComplete();

        }
    }

Responder Citar

29/10/2009

Victor Lima

vou postar todo codigo da tela.

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:c="http://java.sun.com/jstl/core"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">


                         <script language="javascript">
                         function foco()
                           {
                              this.document.getElementById('meuinput').focus();
                           }

                         </script>
     <body onload="javascript:foco();" >
        <ui:composition template="../layouts/template.xhtml">
            <ui:define name="content">

             

                <rich:panel style="width:800px;height:300px">
                    <f:facet name="header">
                        <h:outputText value="Impressão de Etiquetas"/>
                    </f:facet>

                    <h:form id="etiqueta">
                        <h:panelGrid columns="3">
                            <h:outputText  styleClass="rich-label" value="Tipo de Etiqueta" />
                            <rich:comboBox  size="2" label="Tipo de Etiqueta" defaultLabel="Selecione a Etiqueta" id="etiqueta" required="false" value="">
                                <f:selectItem itemValue="Endereçamento"/>
                                <f:selectItem itemValue="Simples"/>
                                <f:validateLength minimum="4" maximum="30" />
                            </rich:comboBox>


                            <h:selectOneRadio styleClass="rich-label">

                                <f:selectItem itemLabel="Numero de Nota Fiscal" itemValue="nota"/>
                                <f:selectItem itemLabel="Numero do Pedido" itemValue="pedido"/>
                                <a4j:support event="onclick" reRender="tipo"/>

                            </h:selectOneRadio>
                        </h:panelGrid>

                        <h:outputText  styleClass="rich-label" value="Entre com os dados:" />
                        <h:inputText  label="Dados" size="15" name="meuInput"  id="meuinput"  required="true" value="#{etiquetasController.num_notafiscal}"
                         classes="meuinput" onblur="javascript:mantemFocus();submit();"  >
                        <a4j:support event="onblur" action="#{etiquetasController.executarEtiqueta}" reRender="etiquetas,etiqueta" ajaxSingle="true" focus="meuinput" />
                            <f:validateLength minimum="6" maximum="15" />

                        </h:inputText>
                       
                        <br/>
                        <br/>
                        <br/>
                        <br/>
                        <c:if test="${not empty etiquetasController.num_notafiscal}">
                            <br />
                            <rich:dataTable  id="etiquetas" rendered="true"  var="item" value="#{etiquetasController.etiquetas}" style="width:400px">

                                <rich:column id="numped">
                                    <f:facet name="header"><h:outputText styleClass="headerText" value="Fornecimento" /></f:facet>
                                    <h:outputText value="#{item[0]}"  />
                                </rich:column>

                                <rich:column id="nota">
                                    <f:facet name="header"><h:outputText styleClass="headerText" value="Nota Fiscal" /></f:facet>
                                    <h:outputText value="#{item[9]}"  />
                                </rich:column>

                                <rich:column id="datanota">
                                    <f:facet name="header"><h:outputText styleClass="headerText" value="Data Nota" /></f:facet>
                                    <h:outputText value="#{item[10]}">
                                        <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo"/>
                                    </h:outputText>
                                </rich:column>

                                <rich:column id="nome">
                                    <f:facet name="header"><h:outputText styleClass="headerText" value="Nome Cliente" /></f:facet>
                                    <h:outputText value="#{item[3]}"/>
                                </rich:column>

                            </rich:dataTable>



                        </c:if>
                    </h:form>
                </rich:panel>
              
            </ui:define>
        </ui:composition>
     </body>
</html>


Responder Citar

29/10/2009

Andrei Hirata

 ele so nao renderiza o grid para visualizar a pesquisa mas imprime duas vezes o mesmo relatório.

Sobre o informado....
para resolver o problema da grid é easy

TODOS EVENTOS USANDO BOTAO AJAX QUANDO TIVER RELACIONADO COM UMA TABLE OU GRID DEVE USAR reRender.Segue um exemplo de um programa que fiz

 <a4j:commandLink id="excluirRegistro"
                                       action="#{tiposLocaisC.excluir}"
                                       reRender="tblTiposLocais"
                                       >

Imprimir duas vezes?Opaaaaa....ae vc precisa compilar e me mostrar porq ta entrando duas vezes na funcao imprimir..

Faz o favor me manda um email destas telas e codigo q vc postou em um arquivo word.que vejo para vc mais tarde.olhar este codigo por aqui é muito ruim..
APROVEITANDO VOU POSTAR UM TOPICO E VOU PEDIR UMA AJUDA TAMBEM
Responder Citar

29/10/2009

Victor Lima

ok Valeu a força.

obrigado

Victor
Responder Citar

29/10/2009

Andrei Hirata

Responder Citar

29/10/2009

Victor Lima

Nao tenho ideia rsrsrs.
Responder Citar