プレビューなしでデータベースに直接書き込み

  • 作成者:ayuan0625
  • 編集回数:12次
  • 最終更新:FRInternational 于 2022-01-11
  • 一.概要

    1.問題の説明

    書き込みテンプレートのデータ量が非常に大きいが、変更する必要がなく、そのまま書き込めば済む場合があります。

    一般の方式で書き込む場合、書き込みボタンをクリックする前にまずページプレビューをしなければなりません。データ量が大きいと、ページプレビューが非常に遅くなり、動かなくなることがあります。

    02.gif

    本マニュアルでは、プレビューせずにバックグラウンドでデータベースに直接書き込む方法について紹介します。

    2.実現の方向性

    書き込みテンプレートにアクセスする時、urlの後ろに&format=submitというパラメータを付け加えると、帳票がデフォルトでクエリしたデータをデータベースに直接書き込むことができます。

    注:バックグラウンドで書き込む場合、設定済みのチェックとページイベントは無効となります。

    二.例示

    1.データベーステーブルを準備

    先ず、FRDemoでデーベーステーブルOrders_copyを新規作成します。

    ここでは、OrdersからOrders_copyへコピーします。書き込み先のデータベーステーブルとして、Orders_copyを空白のままにします。下の図に示すように、Orders_copyのテーブル構造は、Ordersと同じです。

    01.png

    2.書き込みテンプレートをデザイン

    1.一般帳票を新規作成し、データベースのクエリデータセットds1を新規作成します。SQL文:SELECT * FROM Orders

    02.png

    2.書き込みテーブルをデザインします。A2~E2セルにテキストウィジェットを追加し、データセットのフィールドを対応するセルにドラッグします。これで下の図に示すように、フロントエンドでプレビューする時、クエリの結果を確認できるようになります。

    03.png

    3.ビルトインSQL書き込みを新規作成し、データベースはOrders_copyを選択します。そして次の図に示すように、A2~M2セルとOrders_copyのフィールドを関連付けます。

    04.png

    3.効果プレビュー

    3.1.標準方式

    下の図から分かるように、クエリ結果が出てきてからデータベースに書き込むため、待つ時間が非常に長く、効率は比較的に低いです。

    02.gif

    3.2.バックグラウンド書き込み方式

    ウェブページに http://localhost:8075/webroot/decision/view/report?viewlet=直接書き込み.cpt&op=write&format=submitを入力するとページプレビューの段階をスキップしてデータベースに直接書き込むことができます。標準方式に比べ、スピードがだいぶ速くなります。

    Attachment List


    Theme: FineReport データ書き込み
    既に最初
    既に最後
    • Helpful
    • Not helpful
    • Only read