[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Messages posted by: Jardel  XML
Profile for Jardel -> Messages posted by Jardel [28] Go to Page: 1, 2 Next 
Author Message
Valeu grande mestre!! hehe vou dar uma olhada...

Vi algumas coisas de cubo essas semana msm. (video)

Deve dar um trabalho... hehe

Abraço!
Bom dia pessoal!

Preciso de mais um help aqui...

Sei que no applicationManager eu consigo carregar uma ListData e enviarmos para o index para ser mostrado em um combobox, assim:

ApplicationManager:
---------------------------------------------
Code:
 @Override
 	public void init() {
 		Repository objRepositoryNoticias = Repository.getInstance(BrtNoticias.class);
 		objListNoticias = objRepositoryNoticias.executeQueryList(BrtNoticias.QUERY_FIND_ALL);
 		for (Iterator<Object> iterator = objListNoticias.iterator(); iterator.hasNext();) {
 			BrtNoticias noticia = (BrtNoticias) iterator.next();
 			sldNoticias.add(noticia.getNotId(), noticia.getNotTitulo());			
 		}
 	}
 
 @Override
 	public void loadLists() throws IOException {		
 		
 		ListManager.addList(sldNoticias);		
 	}
 
 


Na JSP
--------------------------------------------
Code:
 <mtw:select name="sld" list="sldNoticias"/>
 



Agora se eu quero mostrar isso em forma de notícias como se fosse em uma displaytag, como seria?
Algo do tipo:


Obrigado desde já!
A paginação na displaytag foi resolvida utilizando ajax.

Agora, na hora de exportar para csv, excel, pdf o java tem que trazer os dados do banco de uma vez para exportar, não é?

Para exportar está dando java heap space de novo...

Como faço nesse caso?

Abraço e obrigado desde já.
Dei uma pesquisada e pessoal tem dito que a melhor forma seria paginar direto no banco ou com hibernate... Seria isso mesmo?

Algo do tipo:

Code:
	
 SQL :
 
    1. int indice = 1;  
    2. int qtdeRegistros = 10;  
    3.   
    4. SELECT   
    5.     campos   
    6. FROM   
    7.     (  
    8.      SELECT   
    9.         campos,   
   10.         rownum n   
   11.     FROM (  
   12.            SELECT   
   13.             campos   
   14.         FROM   
   15.             tabela  
   16.              )  
   17.      )  
   18. WHERE   
   19.     n BETWEEN indice AND indice + qtdeRegistros  
 
 
 Hibernate :
 
    1. int inicio = 1;  
    2. int registros = 10;  
    3.   
    4. String sql = "Select campos from tabela where campo = campo";  
    5. Query q = session.createQuery(sql);  
    6. q.setFirstResult(inicio);  
    7. q.setMaxResults(registros);  
    8. Collection resultado = q.list();  
 

Fonte: GUJ


Estava tentando usar uma paginação com ajax, mas não tá funcionando.. tem dado um erro:

Insira o size .... (não me lembro o resto)
Ex:
Code:
 <div class="commonDisplayTag1RecipientDiv">
            <aa:zone name="ordemServicosTable">
 	            <display:table class="commonDisplayTag1" name="objListResult" sort="external" defaultsort="4" pagesize="${limit}" id="tableOrdemServicos" partialList="true" size="resultSize"
 	                requestURI="/OrdemServicosAction.list.mtw" export="true" style="text-align:center;font-size: 8pt" 
 	                cellpadding="0" cellspacing="0" decorator="br.com.empresa.relatorios.application.utils.displaytag.OrdemServicosWrapper">
 	                <display:column media="html" title="Garantia" property="customGarantia"/>
 	                <display:column media="csv xml excel pdf rtf" title="Garantia" property="customCleanGarantia"/>
 	                <display:column media="all" title="OS" property="numOS" sortName="numOS" sortable="true" headerClass="sortable"/>
 	                <display:column media="all" title="Laudo Tec." property="customLaudoTec" sortName="laudoTec" sortable="true" headerClass="sortable"/>
                 	<display:column media="csv pdf excel xml" title="Laudo Tec." property="laudoTec" sortName="laudoTec" sortable="true" headerClass="sortable"/>
 	                <display:column media="all" title="Item" property="item" sortName="item" sortable="true" headerClass="sortable"/>
 	                <display:column media="all" title="Entrada" property="dtReceb" sortName="dtReceb" sortable="true" headerClass="sortable"/>
 	                <display:column media="all" title="Saída" property="dtLib" sortName="dtLib" sortable="true" headerClass="sortable"/>
 	                <display:column media="all" title="Tempo" property="tempo"/>
 	                <display:column media="html" title="Cliente" property="customCliente" sortName="cliente" sortable="true" headerClass="sortable"/>
 	                <display:column media="csv xml excel pdf rtf" title="Cliente" property="cliente"/>
 	                <display:column media="html" title="Produto" property="customProduto" sortName="produto" sortable="true" headerClass="sortable"/>
 	                <display:column media="csv xml excel pdf rtf" title="Produto" property="produto"/>
 	                <display:column media="all" title="Num. de Série" property="numSerie" sortName="numSerie" sortable="true" headerClass="sortable"/>	                
 	                <display:column media="all" title="NF Cliente" property="notaFiscal" sortName="notaFiscal" sortable="true" headerClass="sortable"/>
 	            </display:table>
                 </aa:zone>
                 <script type="text/javascript">
                     ajaxAnywhere.getZonesToReaload = function() { return "ordemServicosTable"; }
                     ajaxAnywhere.onAfterResponseProcessing = function() { replaceLinks(); }
                     function replaceLinks() {
                         // replace all the links in <thead> with onclick's that call AjaxAnywhere
                         var sortLinks = $$('tableOrdemServicos').getElementsByTagName('thead')[0].getElementsByTagName('a');
                         ajaxifyLinks(sortLinks);
                         if (document.getElementsByClassName('pagelinks').length > 0) {
                             var pagelinks = document.getElementsByClassName('pagelinks')[0].getElementsByTagName('a');
                             ajaxifyLinks(pagelinks);
                         }
                     }
                     function ajaxifyLinks(links) {
                         for (i=0; i < links.length; i++) {
                             links[i].onclick = function() {
                                 ajaxAnywhere.getAJAX(this.href); 
                                 return false;
                             }
                         }
                     }
                     ajaxAnywhere.showLoadingMessage = function() { };
                     replaceLinks();
                 </script>                
             </div>
 


Na verdade não entendi direito como esse exemplo faz a paginação e estou tendo esse erro pedindo o size, justamente quando uso o partiallist="true".

Sigo no caminho da paginação direto no banco? Ou com ajax seria uma boa também?

São mais de 300000 linhas

Legal Eduardo! Não tinha pensado nisso.

É um requisito, mas pode ser mudado sim.


Valeu
Pessoal, preciso de uma ajuda quanto a paginação.

Sempre usei a paginação do mentawai e nunca tive problema até que me deparei com consultas muito grandes.

Nesse caso estou recebendo a mensagem de: java.lang.OutOfMemoryError: Java heap space

Estou usando um servidor Línux 64 com 6Gb de ram e a JVM configurada para 2,5 Gb, tomcat para 2,5 Gb também (CATALINA_OPTS=?-Xms1564m -Xmx1564m?)
Como fiz isso: http://www.jardelmorais.com/?page_id=1041

Ainda estou tendo problema de falta de memória e me disseram para fazer paginação, mas agora fiquei com a dúvida: O Mentawai já não faz paginação? Seria um outro tipo?
Estou com dúvidas a respeito de como fazer a paginação que resolva isso.

Me ajudem aí por favor.

Abraço,
Então Ricardo, a primeira é melhor sim, só que no meu caso o usuário precisa escolher uma figura do item escolhido(que esteja em qqer lugar) e quando a aplicação rodar a foto tem que ser carregada via web, de qqer lugar.

A solução que encontrei foi a seguinte:

Objeto:
Code:
 private byte[] arv_foto;
 private String arv_foto_nome; 
 



------------------------------Inserindo no banco---------------------------------
Action:
Code:
 FileItem file_foto = (FileItem) input.getValue("arv_foto");
 nome = file_foto.getName();
 int pos = nome.lastIndexOf("\\");
 nome = nome.substring(pos + 1);
 

Code:
 pojoArvore.setArv_foto(file_foto.get()); //Aqui eu guardo a foto no 
 banco(bytea)
 pojoArvore.setArv_foto_nome(nome); //aqui eu pego o nome da imagem
 


------------------------------Mostrando---------------------------------
//Para mostrar a imagem, em um certo momento eu carrego as imagem para o meu contextPath:

Code:
 public void gerarImagens() {
         List<PojoArvore> listArvores = DaoArvore.getInstance().readByExample(null);
         String strRealPath = org.mentawai.core.ApplicationManager.getRealPath();
         for (Object object : listArvores) {
             PojoArvore objArvore = (PojoArvore) object;
             if (objArvore.getArv_foto() != null) {
                 String strFullPath = strRealPath.replace("\\", "/") + ArvoreShowFormAction.DEFAULT_DIR + objArvore.getArv_foto_nome();
                 System.out.println(strFullPath);
                 File objFile = new File(strFullPath);
                 if (!objFile.exists()) {
                     try {
                         FileOutputStream objFileOutStream = new FileOutputStream(strFullPath);
                         objFileOutStream.write(objArvore.getArv_foto());
                     } catch (FileNotFoundException e) {
                         e.printStackTrace();
                     } catch (IOException e) {
                         e.printStackTrace();
                     }
                 }
             }
         }
     }
 



-------------------------------Na displaytag---------------------------------

Code:
 <display:column title="Foto" >
       <a href='${pageContext.request.contextPath}/Arvore/Ampliar.do?arv_id=${row.arv_id}'>
       <img src="${pageContext.request.contextPath}/images/arvores/${row.arv_foto_nome}" align="right" width="180" height="100"                                         name="fotoImage" alt="foto" title="clique para ampliar"                                                                                                />
        </a>                                           
 </display:column>
 



//Fica melhor se colocar no decorator fazendo o download da imagen do banco para o contextpath, uma a uma.


Abraço,
Valeu Ricardo!

Consegui montar da forma que você disse.

Pessoal, to apanhando disso aqui... (Pegar um bytea do postgres e mostrar na displaytag)

Tinha feito pegando o caminho de um diretorio e exibindo a imagem, mas queria saber como receber os byte[] do banco e mostrar na jsp.

Alguem tem um exemplo pra me ajudar?

Obrigado!
Pessoal, me ajudem por favor..

Preciso fazer uma checagem nos objetos dentro de uma lista e quando um atributo deste objeto for null ou vazio, não mostrar a coluna... Alguém já usou isso? Tenho:

Code:
<div class="displaytag2" > 
 <pre style="width:890px;height:600px;overflow: auto;"> 
 <display:table class="displaytag2" name="objListResult" sort="external" defaultorder="ascending" defaultsort="1" 
 id="tablePaPiTotalizado" pagesize="20" size="resultSize" 
 requestURI="/Nfs01TodasAction.pesquisar.mtw" export="true" style="text-align:left;font-size:8pt" 
 cellpadding="0" cellspacing="0" > 
 //Se regraFaturamento for null, não mostre esta coluna: 
 <display:column media="all" title="Regra Faturamento" property="regraFaturamento" sortable="true"/> 
 //Se não for null, mostre 
 </display:table> 
 </pre> 
 </div> 
 



O que é enviado pela action:

Code:
List<Object> objListResult = objRepository.executeNativeSelect(query); 
 output.setValue("objListResult", objListResult); 



Obrigado!
Estou aguardando um curso sobre o framework... Trabalho com ele, mas vejo uma grande necessidade minha em saber mais sobre os potenciais do mentawai e não ficar juntando coisas dele com coisas do java ou do html que já existem. Muito válido também aprender sobre como utilizar com ajax, javascript, etc...

Sou do sul de minas gerais, mas poderia fazê-lo em SP tbem caso exista.

Se eu faria o treinamento?

> SIM - imediatamente.. rs

Qto pagaria?

> Dependendo do nível do treinamento/curso.... Apartir de R$600,00 ??


Quando tiver um curso na região me avisem: jalwais21@yahoo.com.br


Abraço
Bom, na verdade eu não sabia o que o input pegava no caso citado....
a solução encontrada foi a seguinte:

A lista abaixo:

Code:
 String[] codigoProduto = input.getStrings("descricao");  
 


É uma lista com todas as escolhas que foram feitas na tela, ex:

Se estiverem na tela 4 itens mostrando:

1 - item 1 - Combobox
2 - item 2 - Combobox
3 - item 3 - Combobox
4 - item 4 - Combobox

Então o codigoProduto (Array Strings) será uma lista com 4 escolhas, as seleção do combobox.

Fazendo uma varredura na lista, na action, então a cada iteração vc pode receber a escolha do usuário.


Mais detalhes em http://www.jardelmorais.com/?page_id=945
Pessoal, boa noite!

Estou enviando para a jsp uma lista de objetos.

Este objeto por sua vez possui um atributo que é uma lista, ex:
ListaDeNotasFiscais:
- String numeroNf;
- String pedido;
- SimpleListData listDescricoesMateriais

Code:
 SimpleListData objSldDescricao = new SimpleListData("objSldDescricao");															
      for (Iterator<Object> itDescricoes = objListDescricao.iterator(); itDescricoes.hasNext();) {
 DescricaoNFSaidaBRT descr = (DescricaoNFSaidaBRT) itDescricoes.next();
 						objSldDescricao.add(descr.getCodigo_produto(), "Item "+objItemNotaFiscalSaidaBRT.getNumeroItem()+" - "+descr.getCodigo_produto()+" - Quantidade: "+descr.getQuantidade());				
 					}
 



Na jsp itero a lista de notas fiscais mostrando os campos Strings(numeroNF, pedido) e o combobox com a lista de descrições(listDescricoesMateriais).

Code:
 <mtw:isEmpty test="objSldDescricao" negate="true">
 	    	<td>
 				<mtw:select id="descricao" name="descricao" list="objSldDescricao"/>
 			</td>
 		</mtw:isEmpty>
 



O problema é que quando vou pegar o valor escolhido no select(descricao), não vem apenas um valor que seria o código que preciso, mas uma lista de códigos que não dá pra saber qual foi o escolhido pelo usuario.
Code:
 String[] codigoProduto = input.getStrings("descricao");
 


A dúvida é... Como eu pego o valor escolhido pelo usuário neste caso?

Alguém já se deparou com um problema parecido e poderia me ajudar?

Obrigado
Pessoal, boa tarde!

Estou enviando para a jsp uma lista de objetos.

Este objeto por sua vez possui um atributo que é uma lista, ex:
ListaDeNotasFiscais:
- String numeroNf;
- String pedido;
- SimpleListData listDescricoesMateriais

Code:
 SimpleListData objSldDescricao = new SimpleListData("objSldDescricao");															
      for (Iterator<Object> itDescricoes = objListDescricao.iterator(); itDescricoes.hasNext();) {
 DescricaoNFSaidaBRT descr = (DescricaoNFSaidaBRT) itDescricoes.next();
 						objSldDescricao.add(descr.getCodigo_produto(), "Item "+objItemNotaFiscalSaidaBRT.getNumeroItem()+" - "+descr.getCodigo_produto()+" - Quantidade: "+descr.getQuantidade());				
 					}
 



Na jsp itero a lista de notas fiscais mostrando os campos Strings(numeroNF, pedido) e o combobox com a lista de descrições(listDescricoesMateriais).

Code:
 <mtw:isEmpty test="objSldDescricao" negate="true">
 	    	<td>
 				<mtw:select id="descricao" name="descricao" list="objSldDescricao"/>
 			</td>
 		</mtw:isEmpty>
 



O problema é que quando vou pegar o valor escolhido no select(descricao), não vem apenas um valor que seria o código que preciso, mas uma lista de códigos que não dá pra saber qual foi o escolhido pelo usuario.
Code:
 String[] codigoProduto = input.getStrings("descricao");
 


Alguém já se deparou com um problema parecido e poderia me ajudar?

Obrigado
Tenho um exemplo disso em:

http://www.jardelmorais.com/?page_id=383
 
Profile for Jardel -> Messages posted by Jardel [28] Go to Page: 1, 2 Next 
Go to:   
Powered by JForum 2.1.6 © JForum Team