List-type column control

Potemi
Tera Contributor

In the form, I made the UI policy to allow only two choices.

Potemi_0-1692609784707.png

 

But in the list, all choices are displayed. I want to control this so that only one can be selected.

Please tell me how to do it.

Potemi_1-1692609922710.png

 

I'm Japanese, so I used a translation app to create the sentences. Sorry for the poor writing.

1 件の受理された解決策

yasutaka ono
Giga Guru

yasutakaono_0-1693175593255.png

例えばインシデント[incident]テーブルのStateフィールドの選択を絞りたい場合、
ここではClosed,Canceledを非表示にしたい場合、
client script(sys_script_client)で以下のように設定すると非表示になります。
Name:適当
Table:incident
Type:onload

function onLoad() {
  // Stateフィールドの選択肢を取得
  var stateField = g_form.getControl('state');
  var options = stateField.options;

  // "Closed"と"Canceled"を非表示にする
  for (var i = options.length - 1; i >= 0; i--) {
    var option = options[i];
    if (option.value == '7' || option.value == '8') {
      stateField.remove(i);
    }
  }
}

最終的な結果は以下
yasutakaono_1-1693176184708.png

 

元の投稿で解決策を見る

2件の返信2

yasutaka ono
Giga Guru

yasutakaono_0-1693175593255.png

例えばインシデント[incident]テーブルのStateフィールドの選択を絞りたい場合、
ここではClosed,Canceledを非表示にしたい場合、
client script(sys_script_client)で以下のように設定すると非表示になります。
Name:適当
Table:incident
Type:onload

function onLoad() {
  // Stateフィールドの選択肢を取得
  var stateField = g_form.getControl('state');
  var options = stateField.options;

  // "Closed"と"Canceled"を非表示にする
  for (var i = options.length - 1; i >= 0; i--) {
    var option = options[i];
    if (option.value == '7' || option.value == '8') {
      stateField.remove(i);
    }
  }
}

最終的な結果は以下
yasutakaono_1-1693176184708.png

 

大変参考になりました。ありがとうございます。

別途質問になってしまうのですが、お答えいただけますと幸いです。

ServiceNowのUIアクションのスクリプトを作成しています。
該当のレコードを☑で選択肢「選択行のステータスを登録完了へ変更」ボタン押下で、
ステータスカラムが「登録中」から「登録完了」へ変更する処理です。

そこで、☑で複数行選択した場合に、ポップアップメッセージを表示させ、
ステータスの更新処理を行ってよい場合は「OK」ボタンを、キャンセルする場合は「キャンセル」ボタンを、
とし、「OK」が押された場合はステータスの更新処理を行うようにしたいです。
1レコードのみ選択の場合は、特にメッセージは表示させません。
以上のことを、UIアクションのスクリプトで実現できますでしょうか。
以下は、イメージ図と、現在のスクリプトになります。

Potemi_0-1693357119639.png

 

function registWorkingFromList() {
// 選択したsysid
var selSysIds = g_list.getChecked();
var number = current.u_number;
if (selSysIds == '') {
alert(getMessage('No records selected'));
return false;
}else if(selSysIds!= ''){
// 登録完了ステータス変更
var ajaxHelper = new GlideAjax('dpjcdAjaxUtil');
ajaxHelper.addParam('sysparm_name', 'updateToRegistrationCompleted');
ajaxHelper.addParam('sysparm_sysids', selSysIds);
ajaxHelper.getXMLAnswer(updateToRegistrationCompleted);
}
}

function updateToRegistrationCompleted() {
alert('PJCDステータスを「登録完了」に変更しました。');
var fixedQuery = g_list.getFixedQuery();
var selSysIds = g_list.getChecked();
var urlregist = "x_623840_ddreams_pjcd_test_list.do?sysparm_view=dpjcdRegist&sysparm_fixed_query=" + fixedQuery;/* + "^NQu_pjcd_status=3"+ "^sys_idIN"+ selSysIds;*/
location.href = urlregist;
}