Compilar arquivo xml do iReport em um Servlet

Please help me…lo que pasa es que estoy configurando un parametro en ireport y trabajo con mysql pero no me recibe el parametro pues sale el error, parece que no reconoce $P{AREA_NOM}. Como debo configurarlo?:

Por favor me puedes decir como debo hacer?

Compiling to file… D:\Tomcat 4.1\webapps\Sic\jsp\reportes\reports\prueba.jasper -> D:\Tomcat 4.1\webapps\Sic\jsp\reportes\reports\classic.java 1547281*[Thread-166]WARNdesign.JRVerifier**-Warning:Elementbottomreachesoutsidebandare a*:y=0height=1band-height=0 Compilation running time : 219 Filling report… Errorfillingprint… java.sql.SQLException:YouhaveanerrorinyourS QLsyntax;checkthemanualthatcorrespondstoyo urMySQLserverversionfortherightsyntaxtous enear*’{AREA_NOM}'atline*1 **atsun.jdbc.odbc.JdbcOdbc.createSQLException(U nknownSource) atsun.jdbc.odbc.JdbcOdbc.standardError(Unknow nSource) atsun.jdbc.odbc.JdbcOdbc.SQLExecute(UnknownS ource) atsun.jdbc.odbc.JdbcOdbcPreparedStatement.exe cute(UnknownSource) atsun.jdbc.odbc.JdbcOdbcPreparedStatement.exe cuteQuery(UnknownSource) atnet.sf.jasperreports.engine.fill.JRBaseFill er.fill(JRBaseFiller.java:514) atnet.sf.jasperreports.engine.fill.JRFiller.f illReport(JRFiller.java:120) atnet.sf.jasperreports.engine.JasperFillManag er.fillReport(JasperFillManager.java:291) atnet.sf.jasperreports.engine.JasperFillManag er.fillReport(JasperFillManager.java:207) atit.businesslogic.ireport.IReportCompiler.ru n(IReportCompiler.java:521) atjava.lang.Thread.run(UnknownSource) NESTEDBY: java.sql.SQLException:YouhaveanerrorinyourS QLsyntax;checkthemanualthatcorrespondstoyo urMySQLserverversionfortherightsyntaxtous enear’{AREA_NOM}'atline1 **atsun.jdbc.odbc.JdbcOdbc.createSQLException(U nknownSource) **atsun.jdbc.odbc.JdbcOdbc.standardError(Unknow nSource) **atsun.jdbc.odbc.JdbcOdbc.SQLExecute(UnknownS ource) **atsun.jdbc.odbc.JdbcOdbcPreparedStatement.exe cute(UnknownSource) **atsun.jdbc.odbc.JdbcOdbcPreparedStatement.exe cuteQuery(UnknownSource) ***atnet.sf.jasperreports.engine.fill.JRBaseFill er.fill(JRBaseFiller.java:514) **atnet.sf.jasperreports.engine.fill.JRFiller.f illReport(JRFiller.java:120) atnet.sf.jasperreports.engine.JasperFillManag er.fillReport(JasperFillManager.java:291) atnet.sf.jasperreports.engine.JasperFillManag er.fillReport(JasperFillManager.java:207) atit.businesslogic.ireport.IReportCompiler.ru n(IReportCompiler.java:521) atjava.lang.Thread.run(UnknownSource) NESTEDBY: net.sf.jasperreports.engine.JRException:Errorexe cutingSQLstatementforreport:classic atnet.sf.jasperreports.engine.fill.JRBaseFill er.fill(JRBaseFiller.java:523) atnet.sf.jasperreports.engine.fill.JRFiller.f illReport(JRFiller.java:120) atnet.sf.jasperreports.engine.JasperFillManag er.fillReport(JasperFillManager.java:291) atnet.sf.jasperreports.engine.JasperFillManag er.fillReport(JasperFillManager.java:207) atit.businesslogic.ireport.IReportCompiler.ru n(IReportCompiler.java:521) atjava.lang.Thread.run(UnknownSource) Causedby:java.sql.SQLException:Youhaveanerro rinyourSQLsyntax;checkthemanualthatcorres pondstoyourMySQLserverversionfortherights yntaxtousenear’{AREA_NOM}'atline1 **atsun.jdbc.odbc.JdbcOdbc.createSQLException(U nknownSource) **atsun.jdbc.odbc.JdbcOdbc.standardError(Unknow nSource) **atsun.jdbc.odbc.JdbcOdbc.SQLExecute(UnknownS ource) **atsun.jdbc.odbc.JdbcOdbcPreparedStatement.exe cute(UnknownSource) **atsun.jdbc.odbc.JdbcOdbcPreparedStatement.exe cuteQuery(UnknownSource) **atnet.sf.jasperreports.engine.fill.JRBaseFill er.fill(JRBaseFiller.java:514) 5more Printnotfilled.TrytouseanEmptyDataSource… !

GRACIAS!!

Espero entiendan el español
Hola a todos voy a ser un poco más específico con mis dudas, pues sospecho que tengo uno de los escenarios más complicados de resolver
dentro del foro y he de requerir de toda la ayuda posible para solventarlo.
Mi escenario es el siguiente:
Estoy desarrollando un esquema de generacion de reportes para una institucion publica. Se busca que sea lo mas generico y flexible posible .
Tengo varios retos importantes

  1. Mis reportes van a ser generados por usuarios que desconocen por completo el esquema de la BDD, asi que el reporte no usa un objeto conexion sino un JRDatasource. Este datasource debia ser genérico pues no es la idea definir 1 objeto JRDatasource para todos los casos. Hice mi propia implementación basándome en los ejemplos de jasper y aparentemente funcionaria mi esquema.
  2. Almacenar la plantilla del reporte en una BDD Oracle, recuperarlo cuando se requiera y sin descargarlo a disco ejecutar el reporte. Esta parte ya la resolvi gracias al uso de objetos BLOB y al metodo JasperReport report = (JasperReport)JRLoader.loadObject(barchivo.getBina ryStream()); que me permite cargar el reporte desde un inputstream.
  3. Por la estructura de los documentos me veo obligado a usar subreportes. Ya logre un ejemplo con subreportes. Sin embargo desde mi aplicacion DEBO seleccionar varios datos de entradas y con ellos mandar a generar el reporte. Si tuviera q enviarlos de 1 en 1 NO tendria problemas, pero desean q si escoge 1 o varios datos, el resultado se muestre en un único PDF (en el browser) donde por cada nuevo dato se reinicie la numeración de las páginas.
    Para esto yo envio al reporte maestro su propio datasource y desde el reporte maestro le paso otro datasource al subreporte(x parametros). los dos datasource solo tienen un dato en comun que puede ser un dato de identificacion de persona, pero el conjunto de informacion que presentan es completamente distinto. Debo resolver el tema de la numeracion de las paginas y lograr q para entradas múltiples se presente la información del SUBREPORTE para todos los casos. Actualmente solo el primer dato se carga con información en el subreporte y a los subsiguientes no les llega la información.
    Espero haber sido claro y si tienen ayudas o sugerencias que me puedan proporcionar lo agradecere mucho
    Saludos
    KirsonX

Olá douglasfs, boa tarde.

Aproveitei sua explicação para testar a geração do html via stream (sem a geração de arquivos no servidor). Só que tive um pequeno problema.

A geração deste relatório não gerou uma imagem chamada px, que pelo que parece serve para delimitar os espaços entre linhas e margens no relatório. Resolvi isso pegando um px que foi criado na geração de um relatório html que gravei no hd.

Sendo uma imagem tão simples e genérica, tudo bem. Mais e quando esta imagem for um freechart, por exemplo? Como eu faria?

Por ser html, acredito que não teria como gerar o mesmo sem ter as imagens físicamentes criadas no lado do servidor, pois é feito a referência no html, correto? Você conheceria algum outro modo de poder realizar esta geração do html sem ter que gravar as imagens do lado do servidor?

Agradeço desde já pelo tempo desprendido na leitura desta mensagem.

[quote=smota]$P :arrow: indica um parâmetro, será passado posteriormente pela aplicação usando a API do Jasper.
$V :arrow: indica uma variável, é criada e gerenciada internamente pelo Jasper.
$F :arrow: indica um campo (field), é extraído pelo Jasper do JRDataSource(alguma coisa assim) … são os campos vindos de uma query (o mais normal) ou de um bean ou seja lah o que for que você estiver usando como fonte dos dados.

:wink:[/quote]

Mas e quando temos apenas ‘$’ (sem nenhuma letra na frente) ? Neste caso o Jasper sempre interpreta como parâmetro?

Obrigado.