カタログ変数セットにある項目の注釈を特定のカタログのみ変更する方法を教えてください。

Hisol171
Tera Contributor

変数セットを複数のカタログで流用しています。

特定のカタログのみ注釈を変更したです。

 

以下スクリプトを試してみましたが、既存の注釈に追加される形で表示されてしまいました。

var f = g_form.getField("field_name");
    f.expand_help = true;
    f.instructions = "<p>information text</p>";
    f.help_tag = "More information";

 

特定のカタログのみ既存の注釈を変更する方法を教えて頂きたいです。

2件の返信2

Tai Vu
Kilo Patron
Kilo Patron

Hisolさん、こんにちは。

要素を直接変更するのではなく、カタログアイテムに基づいて変数セット内の変数に情報を動的に表示する方法として、showFieldMsg メソッドを使うワークアラウンドを提案します。メッセージの種類は「Info」に設定します。

この方法では、OnLoadクライアントスクリプトを使ってカタログアイテムを検証し、それに応じたメッセージをフィールドに表示することができます。

サンプルコードは以下の通りです。

 

function onLoad() {
    if (g_form.getUniqueValue() === '<catalog_item_sys_id>') { //Try to avoid hard-code sys_id
        g_form.showFieldMessage("<field_name>", "<message>", "info");
        return;
    }
    g_form.hideFieldMsg('<field_name>', true);
}

 

 

このように、特定のカタログアイテムに対して適切なフィールドメッセージを表示することが可能です。

 

Cheers,

Tai Vu

Hitoshi Ozawa
Giga Sage
Giga Sage

変数セットのクライアントスクリプトではなく、カタログのクライアントスクリプトにスクリプトを記述します。

例:

カタロググアイテム

 1. 変数:field1

 2. 変数セット:variableset1

  2.1変数:vr_field1

 3. カタログクライアントスクリプト

function onLoad() {
    var f = g_form.getField("vr_field1");
    f.expand_help = true;
    f.instructions = "<p>information text</p>";
    f.help_tag = "More information";
}
 
実行結果
HitoshiOzawa_0-1729211634171.png