Chamar Jasper em minha aplicação GWT

1 resposta
swing

Bom dia,
Estou desenvolvendo uma aplicação em gwt e quero chamar o relatório da tela estou criando através de um botão.
Como o gwt só trabalha com os pacores java.lang e java.util, criei uma classe separada, a ChamaRelatorio.java para chamar o relatorio, só que não consigo chamá-la da tela.
Este é o código da chamada do relatório:

public class GeraRelatorio {	
	private static final String driver = "oracle.jdbc.driver.OracleDriver";
	private static final String url = "jdbc:oracle:thin:@localhost:teste";
	private static final String login = "teste";
	private static final String passwd = "teste";

	public static void main(String[] args) throws Exception {

		// compila o relatório
		JasperReport relatorio = JasperCompileManager.compileReport(layout);

		// estabelece uma conexão JDBC
		Class.forName(driver);
		Connection con = DriverManager.getConnection(url, login, passwd);

		// executa o relatório
		Map parametros = new HashMap();
		JasperPrint impressao = JasperFillManager.fillReport("teste.jasper", parametros, con);

		//exibe o resultado da impressão na previsualização padrão Swing
		JasperViewer viewer = new JasperViewer(impressao, true);
		viewer.show();
	}
}

eu quero chamá-lo através do evento onclick do botão:

final Button bRelatorio = new Button();
		horizontalPanel.add(bRelatorio);
		bSair.addClickListener(new ClickListener() {
			public void onClick(Widget sender) {
				// =========> chamar o relatório aqui <=========
			}
		});		
		bRelatorio.setWidth("80");
		bRelatorio.setText("Relatório");

eu não estou conseguindo fazer isso, pois quando tento chamar uma instância da classe ChamaRelatorio aparece a mensagem de erro:

alguém sabe como chamar o relatório nesse caso?

1 Resposta

marcelo_emanoel

Cara, você simplesmente não vai conseguir chamar essa classe no cliente pelos motivos que você mesmo citou.
Entretanto, o que você pode fazer pra resolver o problema é enviar os parâmetros para o servidor e gerar o relatório lá. Logo em seguida abrir um Frame com a URL do servlet que gera o relatório :slight_smile: Eu fiz isso com o um relatório em excel e funciona tranquilamente :slight_smile: tenta ae e qualquer coisa avisa

Criado 26 de outubro de 2007
Ultima resposta 26 de out. de 2007
Respostas 1
Participantes 2