E ai galera!
Meu problema é o seguinte… to rodando o jboss e dentro de uma tela tenho um botão imprimir que
manda imprimir um relatório… ele imprimi o relatório normal… só que o problema é que quando fecho o relatório
ele também encessa minha minha aplicação fechando o servidor e encerrando a conexão com o banco…
Eu queria que depois que eu fechasse o relatório o servidor continuasse no ar e minha aplicação não fosse fechada
Segue abaixo o código de geração do meu relatório…
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
public class RelatorioVendedor {
private static final String url = "jdbc:oracle:thin:@localhost:1521:XE";
private static final String driver = "oracle.jdbc.driver.OracleDriver";
private static final String login = "*****";
private static final String pwd = "*****";
@SuppressWarnings( { "deprecation", "unchecked" })
public void gerar(String layout) throws ClassNotFoundException,
SQLException, JRException {
JasperDesign desenho = JRXmlLoader.load(layout);
JasperReport relatorio = JasperCompileManager.compileReport(desenho);
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, login, pwd);
Statement stm = conn.createStatement();
String query = "select * from parceironegocios where discriminator='V'";
ResultSet rs = stm.executeQuery(query);
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
Map parametros = new HashMap();
parametros.put("", jrRS);
JasperPrint impressao = JasperFillManager.fillReport(relatorio,
parametros, jrRS); // fillReport(relatorio,
// parametros, jrRS);
JasperViewer view = new JasperViewer(impressao);
view.show();
}
Alguem poderia me ajudar?
tenta usar assim
[code]JasperPrint jp = JasperFillManager.fillReport(arquivo, parameterMap, conn);
JasperViewer.viewReport(jp, false);[/code]
Exatamente higornucci
Oque faltava era o argumento false em:
JasperViewer view = new JasperViewer(impressao,false);
e minha aplicação não foi mais fechada… problema resolvido!
Obrigado pessoal
oi ai esta meu codigo
[code]import java.io.*;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
//import javax.swing.JOptionPane;
public class Dados{
//"args" é um array de String onde cada elemento é um argumento passado pela linha de comando momento na "inicialização" da execução.
public static void main(String[] args){
Map<Integer, List<String>> mapLines= new HashMap<Integer, List<String>>();
try {
//leitura do ficheiro, prepara-o para ser aberto
BufferedReader in = new BufferedReader(new FileReader("conteudo.txt"));
String str;
int i = 0;
//vai percorrer todo o ficheiro
while((str = in.readLine()) != null)
{
if(str.startsWith("#"))
{
str= "";
}
else{ //esta a dividir a frase em varias strings imprimindo o seu resultado
List<String> values = new ArrayList<String>();
String words[] = str.split(";");
for(String word : words) {
values.add(word);
System.out.println(word);
}
mapLines.put(i, values);
i++;
}
}// fim do while
in.close();
} catch (IOException e){
// possiveis erros são tratatos aqui
//JOptionPane.showMessageDialog(null, this.word, "NÂO FOI POSSÍVEL ABRIR O SEU FICHEIRO", JOptionPane.ERROR_MESSAGE);
System.out.println("ERRO-->NÃO FOI ENCONTRADO O SEU FICHEIRO DE DESTINO,TENTE DE NOVO");
}
// Apresenta o contéudo do Map
Map<Integer, List<String>> m = new HashMap<Integer, List<String>>();
for(Integer key : m.keySet()) {
for(String word : m.get(key)) {
System.out.println(word);
}
}
}
public static void main2(String[] args){
Map<Integer, List<String>> mapLines= new HashMap<Integer, List<String>>();
try {
BufferedReader in2 = new BufferedReader(new FileReader("conteudo2.txt"));
String str;
int i = 0;
while((str = in2.readLine()) != null)
{
if(str.startsWith("#"))
{
str= "";
}
else{ //esta a dividir a frase em varias strings
List<String> values = new ArrayList<String>();
String words[] = str.split(" ");
for(String word : words) {
values.add(word);
System.out.println(word);
}
mapLines.put(i, values);
i++;
}
}// fim do while
in2.close();
} catch (IOException e){
// possiveis erros são tratatos aqui
System.out.println("ERRO-->NÃO FOI ENCONTRADO O SEU FICHEIRO DE DESTINO,TENTE DE NOVO");
}
// Apresenta o contéudo do Map
Map<Integer, List<String>> m = new HashMap<Integer, List<String>>();
for(Integer key : m.keySet()) {
for(String word : m.get(key)) {
System.out.println(word);
}
}
}
} [/code]
e tenho por exemplo este ficheiro
[code]961234567 253883377 24:05:2011 10:30:10 068 16 13
963456789 253883355 28:05:2011 12:15:17 088 12 09
963456789 253883377 29:05:2011 17:00:00 120 14 11
969876666 253883377 30:05:2011 10:05:34 070 11 09
961234567 253883377 31:05:2011 22:30:05 066 14 11
961234567 253883377 02:06:2011 14:19:41 076 15 13
963456789 253883377 05:06:2011 11:33:34 085 07 06
[/code]
e queria que fosse pedido ao utilizador que dados e que ele quer imprimir. por exemplo…pedirmos para imprimir todos os dados com o numero 961234567
abraços