Achei um tutorial na net que usa um "visualizador" de relatório dentro do flex Flex.
É só passar o xml. Criei um servlet que está gerando o xml no browse. E agora estou tentando visualizar no flex. Abaixo o código. *Chamada do formulário principal: * var relatorio : xViewerSample = xViewerSample(PopUpManager.createPopUp(this, xViewerSample, true)); PopUpManager.centerPopUp(relatorio); *Código do MXML* <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:jrv="com.jaspersoft.reports.viewer.*" xmlns:valueObjects="valueObjects.*" xmlns:services="services.*" xmlns:mx="library://ns.adobe.com/flex/mx" > <mx:Canvas left="20" right="20" top="20" bottom="8" borderStyle="solid" creationComplete="{httpService(event)}"> <jrv:Viewer id="viewer" label="teste"/> </mx:Canvas> <fx:Script> <![CDATA[ import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.controls.Alert; import mx.rpc.http.HTTPService; /** * Variavel que guarda um XML recebido por uma requisicao */ [Bindable] private var xmlData:XML = null; /** * @description Esta funcao e' responsa'vel pela geracao da visualizacao * do relatorio * @return void */ private function viewReport():void { viewer.disableJasperServer(); viewer.showClassicToolbar(); viewer.showReport(xmlData); } /** * @description Esta funcao manipula o resultado da requisicao * conventendo este resultado em um xml * @param ResultEvent - Evento lancado pelo metodo HTTPService.send() * caso a requisicao obteve sucesso */ private function resultHandler(event:ResultEvent):void{ xmlData = event.result as XML; this.viewReport(); } /** * @description Esta funcao mostra um alerta caso ocorra algum erro durante * a requisicao * @param FaultEvent - Evento lancado pelo metodo HTTPService.send() * em caso a requisicao falhar */ private function failRequest(event:FaultEvent):void{ Alert.show("Ops! Houve algum erro ao processar a REQUISIÇÃO."); } /** * @description Esta funcao realiza uma requisicao HTTP * @param Event - Evento lancado por alguma acao qualquer. Neste contexto * e um evento lancado por um Combobox que lista os relatorios * disponiveis ao usuario. */ private function httpService(event:Event):void{ var httpService:HTTPService = new HTTPService(); httpService.url= "http://localhost:8080/guia/servletGuia" httpService.resultFormat = "e4x"; httpService.addEventListener(ResultEvent.RESULT, this.resultHandler); httpService.addEventListener(FaultEvent.FAULT, this.failRequest); httpService.send(); } ]]> </fx:Script> </s:Application> Em 19 de outubro de 2010 13:57, Roger Rayner Cunha Bento < [email protected]> escreveu: > Use Servlet.... eu faço a chamada assim... a servlet vc parametriza no > web.xml conforme abaixo.... > > web.xml > > > <servlet> > > <servlet-name>ServletWeb</servlet-name> > > <servlet-class>*servlets*.reports.ServletWeb</servlet-class> > > </servlet> > > <servlet-mapping> > > <servlet-name>ServletWeb</servlet-name> > > <url-pattern>/ServletWeb</url-pattern> > > </servlet-mapping> > > > chamada no controller..... > > > *var* request:URLRequest = *new* URLRequest(*"/ImobiliariaWeb/ServletWeb"*); > *//App/NomeDaSuaServlet no mapeamento do web.xml * > > request.method = URLRequestMethod.POST > > *var* variables:URLVariables = *new* URLVariables(); > > variables.acao = > *'ListagemBancos'*; > > variables.fl = > *'codInicial='*+ txtCodigoIni.text + *'|'* + *'codFinal='* + > txtCodigoFim.text; //*parametros do relatorio...; * > > request.data = variables; > > navigateToURL(request, > *"_blank"*); > > > Qualquer dúvida é só perguntar..... > > > *Att., * > > *Roger Rayner* > > *Analista de Sistemas* > > TOTVS BAHIA > ( 55 (71) 9616 - 6876 > + [email protected] > > Twitter: www.twitter.com/rogerrayner > > ** > > ------------------------------ > *De:* [email protected] [[email protected]] em Nome de Bruno > Ribeiro [[email protected]] > *Enviado:* terça-feira, 19 de outubro de 2010 14:56 > *Para:* [email protected] > *Assunto:* [flexdev] IReport no Flex > > Fiz um relatório no Java, iReport, e não estou conseguindo executar via > flex. Alguém sabe como posso realizar isso? > > Mais uma vez obrigado!!! > > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para [email protected] > Para sair da lista, envie um email em branco para > [email protected] > Mais opções estão disponíveis em http://groups.google.com/group/flexdev > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para [email protected] > Para sair da lista, envie um email em branco para > [email protected] > Mais opções estão disponíveis em http://groups.google.com/group/flexdev -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev
