関数の動的値を使ったレポートのフィルタリング

関数の動的値を使ったレポートのフィルタリング

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

要件

ユーザーがレポートにアクセスしたとき、ログインしているユーザーの役割に基づいてデータがフィルタされ、そのユーザーに必要な詳細のみが表示されるようにします。

ユースケース

従業員管理システムには「部署」と「従業員」の 2 つのフォームがあります。「部署」フォームには各部署が一覧表示され、「従業員」フォームには従業員の詳細が保存されます。1 つの部署に複数の従業員が所属できます。このアプリケーションでは、部署の責任者がログインしたとき、その責任者の部署に所属する従業員のみが確認用に一覧表示されます。

動作を確認する

手順

1. フォームを作成 し、次の内容を設定します。

フォーム

フォームリンク名

項目タイプ

項目名

項目リンク名

部署

部署

単一行

部署名

Department_Name

従業員

従業員

名前

名前

名前

ルックアップ(部署)

部署

部署

メール

公式メール

Official_Email

電話番号

電話番号

Phone_Number


ここで、 公式メール 項目には、従業員が従業員管理アプリケーションにログインする際に使用するメール ID が保存されます。
 
2) 次に、現在ログインしているユーザーの部署を取得する関数を作成します。 関数を作成 し、名前を getDepartment とし、戻り値の型として int を選択します。
 
(ルックアップ は、元のフォーム内の関連データのデータリンク ID に基づいて参照されるため、この関数の戻り値の型は int(数値) になります。この関数は、従業員レポートを検索し、このルックアップ値に基づいて従業員を特定します。)
 
3) 続いて表示される Deluge エディターに、次のコードを追加します。
  1. int getDepartment()
  2. {
  3. //ログインユーザーのメール ID に基づいて部署データを取得する
  4. 従業員 = 従業員[Official_Email = Zoho。loginuserid];
  5. 返品する 従業員。部署;
  6. }
この関数は、ログイン中のユーザーのメール ID を基準に、 すべての従業員 レポート内の従業員データを検索します。従業員データから、対応する 部署 データの ID 値が返されます。
 
4) フィルターを追加 し、 すべての従業員 レポートに対して、 getDepartment 関数を使用して、 部署 フォーム内の ID と照合します。
 


動作を確認する


注意 ポイント

  • 従業員フォームの 部署 項目は、ピックリストとして作成することもできます。この場合、 getDepartment 関数は、 部署 の値を文字列として直接返すことができ、フィルターもそのまま適用できます。(整数で比較する方が文字列で比較するよりも最適なため、この例ではルックアップを使用しています。)サンプルコードは次のとおりです。
  1. string getDepartment()
  2. {
  3. return 従業員[Official_Email == zoho.loginuserid].部署;
  4. }