Saudações a todos!!!
Neste artigo irei mostrar a vocês como realizar o upload de arquivos por meio do GeneXus, isso é muito útil quando desenvolvemos aplicações para a Web.
De quebra ainda mostrarei como fazer a leitura de uma planilha Excel.
Para realizar o upload não utilizaremos nehum arquivo externo. Essa implementação serve para o gerador .Net da versão GeneXus 9.0. Foi testada e está funcionando. A princípio também funcionará com a versão 8.0 e 7.5 do GeneXus, fazendo uso do gerador .Net também.
Muitos irão perguntar, e para o gerador Java, como farei? Bom, isso ficará para um próximo artigo!!!
A leitura da planilha Excel que iremos ver não irá requerer o Microsoft Excel instalado no servidor. Faremos uso de DLLs de Jakarta POI, elas são distribuídas gratuitamente e podem ser baixadas através do link:
http://sourceforge.net/project/showfiles.php?group_id=151482&package_id=171498
Vamos a implementação. Será necessário criar uma Web Panel e definir as seguintes variáveis:

Clique na imagem para melhor visualização.
O Web Form da Web Panel ficará assim:

Clique na imagem para melhor visualização.
Programaremos os seguintes eventos:
- Evento Start
- Evento Enter //está associado ao botão Importar Planilha do Web Form da Web Panel
- Evento Grid.Load //associado ao Grid do Web Form da Web Panel
Evento Start

Clique na imagem para melhor visualização.
Observe que na linha 8 é onde informamos o caminho onde os arquivos serão armazenados. Devemos informar o path absoluto. Os diretórios Upload e Arquivos foram criados manualmente e o diretório Arquivos deve ter permissão de escrita.
Nas linhas 17 a 20 é onde expandimos o código HTML para o TextBlock que está no web form e que deve estar configurado com a propriedade Format em HTML. O código HTML é responsável por criar o controle de upload no form.
Evento Enter

Clique na imagem para melhor visualização.
Observe que no Evento Enter é utilizado comandos nativos do Csharp.
Evento Grid.Load

Clique na imagem para melhor visualização.
Neste evento é onde efetuamos a leitura da planilha Excel.
A variável &Planilha é do tipo ExcelDocument. Repare na linha 58, onde informamos que faremos uso das DLLs de Jakarta POI. As DLLs devem constar no diretório Bin do modelo Web.
A planilha lida possui o seguinte layout:

Clique na imagem para melhor visualização.
Espero que todos tenham gostado e que as informações transmitidas seja de grande utilidade em seus futuros projetos. Enviem os seus comentários e sugestões.
Forte abraço a todos e até a próxima!
4 comentários:
Bruno,
Queria agradecer sua gentileza de postar algo tão importante para a comunidade. Confesso que aprendi muitas coisas com seu exemplo.
Testei no Genexus X e rodou certinho, sem nenhum problema.
Grande abraço
Bruno,
Poderia postar um exemplo de upload com o Genexus em Java ?
Obrigado.
Bruno gostei do artigo, mas será que não seria possível utilizar algo nativo do genexus para fazer o upload?
Valeu Douglas!
Hoje com as versões mais novas do GeneXus o upload pode ser feito via componente usando algum User Control específico. Consequentemente fazer para Java tbm se torna bem tranquilo.
Postar um comentário