2012-03-13 7 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の出力を得るにはどうすればよいですか? 1つの可能な解決策は、cfchartからイメージを作成し、後ですべてのスレッドが終了したときにイメージを使用してドキュメントを作成するだけですが、cfthreadからcfchart出力を得る方法があるかどうかは疑問でした。

答えて

0

cfchart呼び出しの周りにカスタムタグを配置し、生成された内容を変数に取り込み、スレッドスコープを使用してアクセスしてみてください。私はこれがうまくいきません(あなたの出力フォーマットに依存します)。

0

これは単なるアイデアですが、cfchartをcfsavecontentブロックの中に入れてみてください。

0

私はcfsavecontentを使用して引用符付きのcfchartsを保存し、生成することができました。

だけ(私はこの部分で問題を抱えていた、あなたが注意されていない場合スコープは少しグラグラ取得)使用変数は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> 

私の問題はその私はこれにダイナミック変数の命名/呼び出しを行いました。私はそれが非常に簡単な修正だと確信していますが、私が知っていた名前で各コンテンツを呼び出すと、それが表示されました - これは動的変数を使用する目的を打ち負かします。しかし、それはまったく別の戦いです!答えは「はい」です.cfsthreadの中にcfchartsと一緒にcfsavecontentを使用することができます。

関連する問題