Integrando Advpl com Java usando iReport Por: José Roberto Teixeira O primeiro passo é definir o ambiente de desenvolvimento. 1. Java SDK 1.5 2. NetBeans 6.0 3. iReport Plugin NetBeans 4. iReport 2.5 5. Protheus 10 Usar qualquer SGBD ( Sql Server, DB2, Oracle, PostGres) 1 - Baixando o JDK http://java.sun.com/javase/downloads/index_jdk5.jsp Clique no botão DOWNLOAD, em seguida selecione a plataforma ( SO ) 2 - http://www.netbeans.org/ Clique no botão DOWNLOAD, seguido da plataforma. Ao termino do download, clique duplo em install, automaticamente ele irá selecionar a JVM previamente instalada. 3 - Baixando o Plugin iReport NetBeans http://plugins.netbeans.org/PluginPortal/faces/MainPage.jsp Clique em iReport, em seguida clique em DOWNLOAD Salve em qualquer pasta. Em seguida, execute o NetBeans e clique no menu tools + Plugins Selecione e a guia download + Add Plugins Clique em abrir. Em seguida, irá aparecer uma janela perguntado se você aceita a licença. 4 - Baixando o iReport, no sourceforge. http://sourceforge.net/project/showfiles.php?group_id=64348 Agora, extrair o iReport que fique dessa forma: C:\iReport-2.0.5 Passagem de parametros usando ShellExecute Primeiro passo, criar novo projeto NetBeans6 Usando JSMooth Passos 1 de 6 Passo 1 Passo 2 Passo 3 Passo 5 Passo 6 O TestJarToExe.exe foi gerado com sucesso. Agora, no Advpl iremos chama-lo através do ShellExecute @method ADVPL ShellExecute( cFile, cOperation, cParams, cDir, nFlag ) Analisando os métodos Advpl x Java static function callJ() local cFile := 'TestJarToExe.exe' local cDir := 'C:\nb_projects\TestJarToExe\dist\' local nRet := 0 nRet:= ShellExecute("Open", AllTrim(cFile),"RobertoTeixeira",cDir,1) return package testjartoexe; import javax.swing.JOptionPane; /** * * @author Teixeira */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { String sParam1 = args[0].toString(); JOptionPane.showMessageDialog(null, sParam1); } } A partir de agora, temos condições de iniciar nosso relatório iReport ! Bom, feito todo o ambiente, iremos iniciar nosso projeto. De início, usando o Totvs Development Studio, daremos o nome de prjAdvplJava O Projeto Projeto configurado, ambiente configurados Drivers Os seguintes drivers banco de dados, devem constar na pasta lib do iReport Criando variáveis SIGACFG Essas variáveis tem como objetivo, execução do relatório iReport. Detalhes de cada variável: MV_RELDIR MV_JADVHT MV_JADVDB MV_JADVUS MV_JADVPW Diretório onde encontra-se o .exe do nosso relatório Java IP do Banco de Dados Nome do Banco de Dados Usuário do Banco de Dados * Senha do Banco de Dados * Obs.: Como você percebeu, o MV_JADVUS , e MV_JADVHT guardam informações do banco de dados, como usuário e senha respectivamente. Claro que é possível inserir esses dados no momento da passagem de parâmetros no fonte, porém, é mais fácil criar um usuário/senha no banco de dados, apenas com role SELECT. Todos esses parâmetros podem sofrer alterações, e de fato, é melhor guardar em variáveis. Crie as demais variáveis, com seus respectivos valores : MV_RELDIR MV_JADVHT MV_JADVDB MV_JADVUS MV_JADVPW C:\nb_projects\iReportDemo\dist\ localhost dadosadv postgres 12345 Criando o relatório com iReport Em seguida, teste a conexão. Com a conexão ativa, agora iremos criar o relatório de fato. O iReport encontra-se na pasta c:\iReport-2.0.5 ARQUIVO + ASSISTENTE DE RELATÓRIO INSIRIR O SELECT (*) OU CAMPOS ADICIONE OS CAMPOS DO RELATÓRIO NESTE CASO, NÃO IREMOS EFETUAR AGRUPRAMENTO, CLIQUE EM PRÓXIMO SELECIONE O MODELO DO RELATÓRIO. Criando nosso executável a partir do .jar : Exibindo o relatório.