2012-03-13 4 views
3

cfcharts를 사용하여 그래프를 인쇄하는 보고서의 실행 시간을 개선하려고합니다. 코드 자체는 엔티티 루프이며 각 엔티티에 대해 차트를 작성합니다 (비교 보고서).cfthread 내의 Cfcfhart가 가능합니까? 출력을 얻는 방법?

이 인라인을 수행하면 보고서의 복잡성으로 인해 완료하는 데 거의 1 분 이상이 소요되므로이 경우 cfthread를 사용하려고하지만 가능한 경우 확실하지 않습니다.

<body> 
<cfloop array="#uuids#" index="uuid" > 

    <cfthread action="run" name="t#threadCount#" output="to#threadCount#"> 
    ... 
     <cfchart > 
      ... 
     </cfchart> 
    </cfthread> 
    ... 
</cfloop> 
</body> 

분명히이 실행되고 비록 예상 인 cfchart이 cfthread 내부에서 "인쇄"되지 않으므로 :

여기에 코드입니다. cfthread의 출력을 얻으려면 어떻게해야합니까? 한 가지 가능한 해결책은 cfchart에서 이미지를 작성하고 나중에 모든 스레드가 완료 될 때 이미지를 사용하여 문서를 작성하는 것입니다. 그러나 cfthread에서 cfchart 출력을 가져 오는 방법이 있는지 궁금합니다.

답변

0

cfchart 호출 주위에 사용자 정의 태그를 넣고 생성 된 컨텐츠를 변수로 캡처 한 다음 스레드 범위를 사용하여 액세스하십시오. 나는 이것이 효과적 일지는 모르겠다. (출력 포맷에 따라).

0

나는 이것을 테스트하지 않았지만 단지 아이디어 일 뿐이지 만 cfchart를 cfsavecontent 블록 안에 넣을 수는 있습니다.

0

나는 cfsavecontent를 사용하여 따옴표가있는 cfchart를 저장하고 생성 할 수있었습니다. (나는이 부분에 문제가되었다 당신이 조심하지 않으면 범위 지정이 조금 남았습니다 도착)

그냥 확인 어떤 쿼리 /를 cfsavecontent 블록 내부에 저장되어 사용되는 데이터 변수를 만들

<body> 
<cfloop array="#uuids#" index="uuid" > 

    <cfthread action="run" name="t#threadCount#" output="to#threadCount#"> 
     <cfsavecontent variable="thisContent"> 
      <cfquery name="thisQuery" datasource="dsource"> 
       ... 
      </cfquery> 
     <cfchart > 
      ... 
     </cfchart> 
     </cfsavecontent> 
    </cfthread> 
... 
</cfloop> 

<cfloop array="#uuids#" index="uuid" > 
    <cfthread action="join" name="t#threadCount#"/> 
    #thisContent# 
</cfloop> 
</body> 

내 문제를 그 내가 가진 동적 변수 명명/호출했다. 매우 쉬운 방법이라고 생각 합니다만, 각 콘텐츠를 내가 아는 이름으로 호출하면 표시되는 것입니다.하지만 동적 변수를 사용하는 목적에는 위배됩니다. 그러나 그것은 또 다른 전투입니다! 대답은 예입니다. cfscs 안에 cfcharts와 함께 cfsavecontent를 사용할 수 있습니다.