Home › Forum › Nuclos Konfiguration › Reporting › Bild in iReport
- Dieses Thema hat 4 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 12 Jahren, 6 Monaten von
Marc Finke.
-
AutorBeiträge
-
18 Mai 2011 um 16:24 Uhr #3724
Tobias Streckel
TeilnehmerHallo liebe Community,
ich versuche gerade ein „Bild“ Datenfeld mittels iReport darzustellen. Wenn ich direkt auf meine postgresql DB zugreife und als Datentyp java.io.InputStream für das Datenfald als auch das Imagefeld wähle, zeigt iReport mir das jeweilige Bild an.
Versuche ich noch die Vorlage zu erstellen und ich wähle in iReport als Expression Class java.io.InputStream erhalte ich beim Speichern die Exception, dass das Feld c_bild (der Name meines Feldes) nicht gefunden wird, obwohl ich es im SQL Query abfrage.
Kann es sein, dass Bilder aus der DB in Version 3.0.3 noch nicht unterstützt werden?
Vielen Dank und herzliche Grüße
T
Die Fehlermeldung lautet wie folgt:
org.nuclos.common2.exception.CommonFatalException: net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :
1. Field not found : c_bild
at org.nuclos.client.report.ReportDelegate.modify(ReportDelegate.java:180)
at org.nuclos.client.report.admin.ReportCollectController.updateCollectable(ReportCollectController.java:380)
at org.nuclos.client.report.admin.ReportCollectController.updateCurrentCollectable(ReportCollectController.java:365)
at org.nuclos.client.report.admin.ReportCollectController.updateCurrentCollectable(ReportCollectController.java:100)
at org.nuclos.client.ui.collect.CollectController.updateCurrentCollectable(CollectController.java:3524)
at org.nuclos.client.ui.collect.CollectController.save(CollectController.java:3779)
at org.nuclos.client.ui.collect.CollectController.cmdSave(CollectController.java:3674)
at org.nuclos.client.ui.collect.CollectController.access$700(CollectController.java:205)
at org.nuclos.client.ui.collect.CollectController$4.actionPerformed(CollectController.java:827)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.nuclos.common.NuclosFatalException: net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :
1. Field not found : c_bild
at org.nuclos.server.report.ejb3.ReportFacadeBean.compileReport(ReportFacadeBean.java:341)
at org.nuclos.server.report.ejb3.ReportFacadeBean.compileAndSaveXML(ReportFacadeBean.java:299)
at org.nuclos.server.report.ejb3.ReportFacadeBean.compileAndSaveAllXML(ReportFacadeBean.java:270)
at org.nuclos.server.report.ejb3.ReportFacadeBean.modify(ReportFacadeBean.java:246)
at sun.reflect.GeneratedMethodAccessor1146.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy31.modify(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1146.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.nuclos.server.common.NuclosRemoteRollbackInterceptor.invoke(NuclosRemoteRollbackInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy78.modify(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1163.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205)
at org.nuclos.server.common.NuclosRemoteInvocationExecutor.invoke(NuclosRemoteInvocationExecutor.java:30)
at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)
at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114)
at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:73)
at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:366)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:167)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at org.springframework.remoting.support.RemoteInvocationUtils.fillInClientStackTraceIfPossible(RemoteInvocationUtils.java:47)
at org.springframework.remoting.support.RemoteInvocationResult.recreate(RemoteInvocationResult.java:115)
at org.springframework.remoting.support.RemoteInvocationBasedAccessor.recreateRemoteInvocationResult(RemoteInvocationBasedAccessor.java:85)
at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:148)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy20.modify(Unknown Source)
at org.nuclos.client.report.ReportDelegate.modify(ReportDelegate.java:177)
… 34 more
Caused by: net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :
1. Field not found : c_bild
at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:262)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:144)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:219)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:205)
at org.nuclos.server.report.ejb3.ReportFacadeBean.compileReport(ReportFacadeBean.java:338)
… 119 more19 Mai 2011 um 16:49 Uhr #3730Marc Finke
TeilnehmerHallo,
ich habe ein Beispiel konstruiert, das ich hier aufzeigen möchte.
1. Erstellen der Datenquelle in Nuclos, die das „Bild“-Feld enthält.
Im Beispiel c_bild2. Einstellungen im iReport-Formular:
Ein Feld anlegen das den Namen des Alias aus der Datenquelle trägt.
Den Datentyp auf java.lang.Object festlegen.Ein Image auf das iReport-Formular legen.
Properties für das Image-Feld:
Expression Class: java.awt.Image
Image Expression: net.sf.jasperreports.engine.util.JRImageLoader.loadImage((byte[]) $F{c_bild}).Die Klasse JRImageLoader kümmert sich um den byte-Array, der aus der Datenbank kommt und wandelt ihn in ein Image.
Ich füge noch einige Screen-Shots an, die die Einstellungen zeigen.
Gruß
grovvy
19 Mai 2011 um 16:50 Uhr #3732Marc Finke
TeilnehmerScreen-Shot von der Datenquelle in Nuclos
Attachments:19 Mai 2011 um 16:51 Uhr #3734Marc Finke
TeilnehmerEinstellungen für das Feld im iReport-Formular
Attachments:19 Mai 2011 um 16:52 Uhr #3736Marc Finke
TeilnehmerEinstellung für das Bild-Feld im iReport-Formular
Attachments: -
AutorBeiträge