Home Forum Nuclos Konfiguration Reporting Bild in iReport

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Autor
    Beiträge
  • #3724
    Tobias Streckel
    Teilnehmer

    Hallo 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 more

    #3730
    Marc Finke
    Teilnehmer

    Hallo,

    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_bild

    2. 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

    #3732
    Marc Finke
    Teilnehmer

    Screen-Shot von der Datenquelle in Nuclos

    Attachments:
    #3734
    Marc Finke
    Teilnehmer

    Einstellungen für das Feld im iReport-Formular

    #3736
    Marc Finke
    Teilnehmer

    Einstellung für das Bild-Feld im iReport-Formular

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)