Skip to content

レポートエンジン

紹介

  • レポートエンジンは【データソースエンジンインターフェースエンジンのフォームエンジンモジュールのエンジン】の組み合わせで実現されていますが、現在は一時的に表の表現形式しかサポートしていません。EChartsグラフィックの展示形式は【インタフェースエンジン】を使用してください。

機能のハイライト:

  • 1、完全にカスタマイズされた追加、削除、変更、調査をサポート: 一般的な統計レポートデータは複数のテーブルに由来しており、追加、修正、削除を実行する際に複数のテーブルを操作する必要がある場合がありますインタフェースエンジンのトランザクションで実現できます。
  • 2、レポートはいずれも仮想diy_tableテーブル、仮想diy_fieldフィールドを生成します。
  • 3、レポートは独立したフォームデザイン (仮想フィールド) をサポートしています
  • 4、サポート【モジュールエンジン】レポートのクエリ列、編集可能列、検索可能列などを設定します。

使用手順

  • 1、データソースエンジンを作成します。現在、レポートエンジンには、データソースサポートを提供するデータソースエンジンが必要です。データソースはSQL、v 8、JSONをサポートしています (古いバージョンのデータソースタイプに中国語が含まれている場合は、この3つに大文字に変更してください)
js
var _where = [];
var sql = `SELECT ShebeiMC,ShebeiXH,YujiFWSJ,SUM(Shuliang) AS Shuliang FROM diy_huanxinlb A
						WHERE IsDeleted=0 
            AND YujiFWSJ >= '2025-05-01 00:00'
						AND KehuMC LIKE '%宁波%'
						`;
if(V8.Param._Where && V8.Param._Where.length > 0){
  sql += ` AND (`;
  V8.Param._Where.forEach((item, index) => {
    sql += ((index == 0) ? '' : 'AND') + ` ${item.Name} ${item.Type} '${item.Value}' `
  })
  sql += ` )`;
}
sql += `AND (A.TenantId='${V8.CurrentUser.TenantId}' OR ${V8.CurrentUser.Level} >= 999)
        GROUP BY ShebeiMC,ShebeiXH,YujiFWSJ 
        ORDER BY YujiFWSJ,ShebeiMC,ShebeiXH ASC`;
if(V8.Param._PageSize && V8.Param._PageIndex){
  sql += ` LIMIT ${(V8.Param._PageIndex - 1) * V8.Param._PageSize},${V8.Param._PageSize}`;
}
var result = V8.Db.FromSql(sql).ToArray();
return result;
  • 2、レポートエンジンを作成します。適切なデータソースを選択し、保存してから表示するフィールドを設定します
  • 3、【モジュールエンジンDIY】にモジュールを追加し、開く方法を選んで【DIY】を選ぶ。自動的に生成されたばかりの仮想レポートを選択します
  • 4、【レポートエンジン】設計において、【クエリインタフェース置換、インタフェース置換の新規追加、インタフェース置換の変更、インタフェース置換の削除】をインタフェースエンジンに対応する実装インタフェースに変更します (例:/apiengine/get_webuser_info)

古いバージョンのデータベースはレポートエンジン機能をアップグレードします。

  • 注意: 最新の標準ライブラリを使用するには、アップグレード手順を実行する必要はありません
  • サーバ側apiインタフェースシステムがv9.5.7以上にアップグレードされましたフロントエンドosシステムはv3.16.21以上にアップグレードされました
  • 手動: フォームデザイン --> Diy_Tableの検索 --> 5行のテキスト・コントロール・フィールドを追加します。フィールド・タイプはデフォルトです
  • 手動: フォームデザイン --> Sys_Menuの検索 --> 2つのテキストコントロールフィールドを追加します。
  • 実行アップグレードスクリプト: レポートエンジンのアップグレードスクリプト-2024-04-24.txt。直接実行して、エラーにフィールドがない場合は、直接「フォームエンジン」に行って適切なテーブルを見つけ、「単一行テキスト」コントロールをドラッグして対応するフィールド名を命名すればよい。
  • Adminの役割に新しいモジュール権限を設定します (システムエンジンの下)
  • レポートエンジンを開くと【存在しないデータ! TableName:Diy_Table。Where:WHERE A.Id = '32c49fd3-54e9-4bb3-b9aa-cb9ea6032653' AND A.IsDeleted <> 1】
  • この時点でデータベースにsqlを実行する必要があります
  • 取得したId値を【d38b0a4c-7d2e-4f15-b9d5-8aa20c30bedf】とする
  • そしてsqlを再度実行します
  • 手動: フォームデザイン --> Rpt_Reportを検索 --> 選択フィールド【フィールド設定RptFieldList】 --> 関連モジュールは「レポートエンジンフィールド設定」モジュールを選択し直します。次に、フィールド【フィールド構成RptFieldList】構成モジュール設計 --> データソースの [クエリ列、テーブル内の編集可能な列] にName、Label、Componentを再選択します
  • 上のRpt_Reportフォームのデザインを続ける --> フォームプロパティ --> フォームエントリーイベントを【標準ライブラリ】に対応するv 8コードに置き換えます。

MIT License.