0

CFSTOREDPROC プロセスからの情報を表示するレポート アプリケーションに取り組んでいる Coldfusion 開発者です。クエリからデータを取得して CFGRID に正しく表示することができました。データの表示には非常に満足しています。グリッドを使用すると、CFOUTPUT タグを使用したり、何百ものレポートの HTML でデータをフォーマットしたりする必要がなくなるため、時間を大幅に節約できます。

私がやりたいのは、データグリッド コントロールのどこかに単純なディスク アイコンを追加して、データグリッドの内容を保存し、それをエンド ユーザーがスプレッドシート プログラムで操作できる XLSX(2010) ファイルにエクスポートすることだけです。これは、1 年の特定の時期の「スナップショット」をデータに保存する必要があるため重要です。

試した解決策: レポート オプション ページから report_xls.cfm ページへのリンクを作成する方法を調べましたが、すべてのレポート オプションをもう一度キャッチするページを設計するのはばかげているようで、Web サイトに何千もの CFM を追加することになります。

CFSPREADSHEET は、さまざまな理由で機能しないようです。1 つは、サーバーがこのタグの「書き込み」機能で常に私と戦っているように見えることです。もう 1 つは、このボタンで JavaScript を機能させて、必要な出力を取得する方法がわからないことです。

また、入力されたデータに基づいて起動する Javascript ボタンとしてこれを行うことも検討しました。CFOUTPUT ブロックを使用すると CFSTOREDPROC からのデータは正しく表示されますが、CFGRID は HTML 以外のすべての出力スタイルで苦労しているようです。アプリケーションは適切な HTML テーブルを出力せず、代わりに JavaScript ページ セクションを送信するため、これらのソリューションで問題が発生しました。

4

1 に答える 1

0

Raymond Camden のブログには、プロジェクトで使用したCFGRID からのエクスポートというエントリが含まれています。

download.cfmこの記事の例では PDF にエクスポートしますが、ファイルを変更して Excel ファイルにもエクスポートするのはかなり簡単です。

  1. ファイルを変更して、タグ<table>...</table>内の例から HTMLを生成し、スプレッドシートに表示されるテーブルが変数に含まれるようにします。<cfsavecontent variable="exportList">#exportList#
  2. 次にmode、PDF と Excel のどちらにエクスポートするかを決定する URL パラメーターがあります。

したがって、最後はdownload.cfm次のようになります。

<cfif url.mode EQ "PDF">
  <cfheader name="Content-Disposition" value="inline; filename=report.pdf">
  <cfdocument format="pdf" orientation="landscape">    
    <cfoutput>#exportList#</cfoutput>
  </cfdocument>
<cfelse>
  <cfcontent type="application/vnd.ms-excel">
  <cfheader name="Content-Disposition" value="report.xls">
  <cfoutput>#exportList#</cfoutput>
</cfif>
于 2012-01-17T10:35:25.880 に答える