2013-04-05 3 views
3

내 보고서의 세부 밴드에 데이터베이스의 이미지를 넣으려는 경우 Jaspersoft Studio.
jpg이-이미지는 필드 타입 LONGBLOBimgdata에서의 MySQL에 저장됩니다.
I`v는 이미지 요소에이 표현을 넣어 시도 :데이터베이스에서 이미지를 삽입하는 방법은 무엇입니까?

  1. $F{imgdata}
  2. MyUtil.getInputStream($F{imgdata})

을 첫 번째 경우에 나는이 오류 얻을 :

net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRException: Unknown image source class [B 

을 ... 두 번째 경우에는이 오류가 발생합니다.

net.sf.jasperreports.engine.JRException: 
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error 
evaluating expression : Source text : 
MyUtil.getInputStream($F{imgdata}) 

내 질문 : 데이터베이스의 이미지를 에 삽입하는 방법 JasperReports 님의 리포트?

+0

로 변경 (http://stackoverflow.com/q/8430313/876298) 포스트 help –

+0

'(* jrxml * 파일에있는)'imgdata' 필드의 타입은 무엇입니까? –

답변

5

내가 직접 문제를 해결 한 것 같습니다.

1) 이미지 보고서 필드의 표현해야한다 : 여기

는 I`v 완료 단계입니다 $ F {imgdata}

(참고 : imgdata이의 이름입니다 이미지 데이터가 저장되는 데이터베이스 필드)

2) 보고서의 "데이터 집합 및 쿼리 대화"를 열고 이리저리 imgdata 필드의 클래스 유형 변경 m java.lang.Object to java.io.InputStream ( 스크린 샷 --- 미안, 이미지 게시에 충분한 평판 포인트가 없다.) 대화 상자를 닫으십시오.

3) 미리보기 탭으로 전환하여 보고서를 생성하십시오. 이제 보고서에 이미지가 표시됩니다.

8

.jrxml 파일의 XML보기를 엽니 다. 다음이

<field name="image" class="java.lang.Object"/> 
/* "image" must be replaced by your actual field name */ 

유사한 코드를 찾아 [POSTGRESQL를 사용 Ireports에 화상 표시] 수 있음

<field name="image" class="java.io.InputStream"/> 
관련 문제