ja | en

Webフォームから入力された値を変換する「フィルタ」処理をスクリプトで記述できます。 R7.8

入力フィルタ処理をスクリプトコードとして記述することができます。

図1 スクリプト記述欄

ここに書いた処理は、入力値からWagby内部のプレゼンテーションモデルを作成するに実行されます。

Designerでスクリプトを修正すると、開発機上のアプリケーションへ即座に反映されます。ビルド処理なしで修正を確認することができます。

WagbyではWebフォームから入力された値は「プレゼンテーションモデル」が管理しています。

スクリプト内では${モデル名_p}という表記で扱います。すべての値は文字列型になっています。

プレゼンテーションモデルの操作では、項目名の末尾に ".content" を付与することで、入力文字列を取得することができます。

次の例は、モデルID customer の電子メール項目 email の入力値に "@" が含まれていない場合、@以下を補完するというスクリプトです。操作はすべてプレゼンテーションモデルである customer_p に対して行います。

var email = (customer_p.email != null) ? customer_p.email.content : null;
if (email != null && email != "" && email.indexOf("@") < 0) {
    email = email + "@jasminesoft.co.jp";
    customer_p.email.content = email;
}

Wagbyの文字列拡張検索は標準では AND 検索です。これを「空白区切りで検索条件が入力されたら、OR 検索を標準とする」ように変更するスクリプトを紹介します。モデルIDはcustomerとし、対象項目をnameとしています。

このスクリプトは「入力フィルタ(検索)」に記述します。

var cname = (customer_cp.name != null) ? customer_cp.name.content : null;
if (cname != null && cname != "" && cname.indexOf(" ") >= 0 && cname.indexOf("OR ") != 0) {
    cname = "OR " + cname;
    customer_cp.name.content = cname;
}

検索条件項目 name に空白を含む値が入力されていて、かつ、先頭が"OR "で開始されていない場合、これを付与するようにしています。

Webフォームから入力された検索値は「コンディションのプレゼンテーションモデル」が管理しています。 スクリプト内では${モデル名_cp}という表記で扱います。すべての値は文字列型になっています。

ja | en