Zoho Creator には、リンクする必要がある 2 つのフォームがあります。
フォーム A:特定の質問に対して特定のポイントが与えられる報酬カウンターであり、エントリごとに「Points_Earned」という列に保存されます。
フォーム B: ID データベースであり、名前、姓、DB のメンバーシップなど、個人の基本的な詳細が含まれています。
2 つのフォーム間の PK は、次の形式の個人 ID です"UID - Lastname, Firstname"
(これらのフィールドは、フォーム Bでは個別の列として表示されますが、フォーム Aでは、ドロップダウン ボックスに 1 つの連結された文字列として表示されます。フィールド名Reward_Member
)。
目的:
フォーム B には という列があり、特定の UIDTotal_Points
のすべての合計を表示する必要があります。Points_Earned
SQL 式は次のようになります。select SUM(Points_Earned) from Form_A where Reward_Member = Form_B.UID + " - " + Form_B.Lastname + ", " + Form_B.Firstname;
問題:
Delugeで前述のロジックを実行する方法がわかりません。Aggregate メソッドを試してみましたが、レコードの合計をカウントしていないようで、ナレッジ ベースの記事もあまり役に立ちません。結果は空白のままです。
これは、Sum を表示するために使用したスクリプトです (EDIT>>ON_LOAD に配置):
//Variables
curpts = 0;
emp_lookup_val = input.Employee_ID + " - " + input.First_Name + ", " + input.Last_Name;
//Perform the sum aggregation function
curpts = Add_Loyalty_Entry[Reward_Member == input.Employee_ID].sum(Points_Earned);
//Set the Text Field Total_Points with the calc result
input.Total_Points = curpts;
サンプルデータ:
フォーム A:
+---------------+---------------+
| Reward_Member | Points_Earned |
+---------------+---------------+
| 1 - Doe, John | 3 |
| 1 - Doe, John | 2 |
| 4 - Crow, Bob | 1 |
+---------------+---------------+
フォーム B:
+-----+-----------+----------+
| UID | Firstname | Lastname |
+-----+-----------+----------+
| 1 | John | Doe |
| 4 | Bob | Crow |
+-----+-----------+----------+
デバッグ情報
次の式を使用して、格納されているデータがどのように見えるかを確認しReward_Member
、式の後に結果を示しました。
式:alert input.Reward_Member.toString() + " earned " + input.Points_Earned + " Point(s).";
結果: 3485853000000015046 earned 1 Point(s).
... BigInt のように見える