2013-07-04 5 views
0

CF9 용 ColdFusion Report Builder에서 차트를 보고서로 PNG 이미지로 전달하려고합니다. 내가 매개 변수가 chartImage에게 전화를 BLOB의 유형 (또한 시도 유형 Image)로 설정 입력을 정의 CF 보고서 작성기에서ColdFusion 보고서 입력 매개 변수에 이미지를 바인드 할 수 없습니다.

<cfchart format="png" name="chartImage"> 
    <cfchartseries type="bar" query="chart" itemcolumn="title" valuecolumn="level"> 
</cfchart> 
<cfreport format="pdf" template="report.cfr" name="grid"> 
    <cfreportparam name="reportTitle" value="#reportType.title#"> 
    <cfreportparam name="chartImage" value="#chartImage#"> 
</cfreport> 

정확히 these instructions 다음 : 여기 내 CFML 코드입니다.

이 오류를 얻고 그것을 극복 할 수 없었다 다음 ColdFusionReport 데이터 세트에서 chartImage을 매개 변수에 할당 오류가 호환되지 않는 [B 값을 바인딩

보고서 데이터 ..

또한 매개 변수 유형을 String으로 변경하고 base64 문자열을 전달한 다음 보고서 내에서 이진 형식으로 변환했지만 도움이되지 않는 메시지 인 [B을 반환합니다.

이 이미지를 입력 매개 변수로 올바르게 바인딩하려면 어떻게해야합니까?

답변

0

이 질문에 대한 관심이 부족한 이유는 CF Report Builder의 인기에 대한 것입니다. 바인딩 오류를 극복하지 못했지만 합리적인 해결 방법을 찾았습니다.

이미지를 이진 값으로 직접 바인딩하는 대신 차트 이미지를 temp 디렉토리에 쓴 다음 해당 경로를 보고서에 문자열 매개 변수로 전달합니다. 그런 다음 보고서는 파일 시스템에서 이미지를 찾아 문제없이 보고서에 첨부 할 수 있습니다. 보고서가 실행되면 파일 시스템에서 차트를 삭제하여 모든 것이 잘 정리되어 있는지 확인합니다.

<cfchart format="png" name="chartImage"> 
    <cfchartseries type="bar" query="chart" itemcolumn="title" valuecolumn="level"> 
</cfchart> 

<cfset chartImageFile = getTempDirectory() & '\' & createUUID()> 
<cfset fileWrite(chartImageFile, chartImage)> 

<cfreport format="pdf" template="report.cfr" name="grid"> 
    <cfreportparam name="reportTitle" value="#reportType.title#"> 
    <cfreportparam name="chartImage" value="#chartImageFile#"> 
</cfreport> 

<cfset fileDelete(chartImageFile)> 

그것은 매우 우아 아니지만, CF 보고서 작성기에 대해 아무것도 특히 우아한 없었다 :

다음은이 솔루션과 함께 업데이트 된 코드입니다.

관련 문제