ユーザー選択フィールドをテーブルにして

始めたばかりですがよろしくお願い致します。

ユーザー選択フィールドをテーブルにして、そのユーザー選択フィールドを文字列にコピーをしたいです。

可能か不可能かわかりませんがよろしくお願い致します。

 

kintoneさん

こんにちは。

 

もう少し詳細をお聞かせください。

ユーザー選択フィールドをコピーする文字列フィールドは、

①同じテーブル内にありますか?

②テーブルの外に設置したフィールドでしょうか?

 

②の場合、

テーブル上のすべてのユーザー名を文字列フィールドにコピーしますか?(下記のようなイメージ)

 

<テーブルフィールド(例:3行)>

田中太郎

山田花子

鈴木二郎

 

<文字列フィールド>

田中太郎,山田花子,鈴木二郎

 

また、文字列フィールドにコピーするのは、ユーザーの「表示名」でしょうか?「ログインID」でしょうか?

koichi様
ご返信ありがとうございます。
同じテーブルにはありません。
テーブルにしたユーザー選択フィールド(ルックアップからのコピー)を文字列フィールドにコピーをしたいです。
ユーザー選択フィールド(テーブル)(山田太郎)を文字列フィールドに山田太郎をコピーしたいです。
大変お手数ですが何卒よろしくお願い致します。

kintone様

下記のようなイメージで合ってるでしょうか?

(function () {

 'use strict';

 // レコード追加画面保存時・編集画面保存時
 var events = ['app.record.create.submit', 'app.record.edit.submit'];
 kintone.events.on(events, function(event) {

  var record = event.record;

  var table = record.テーブル.value;

  var user = [];
  for (var i = 0; i < table.length; i++) {
   for (var j = 0; j < table[i].value.ユーザー選択.value.length; j++) {
    user.push(table[i].value.ユーザー選択.value[j].code);
   }
  }

  record.ユーザー文字列.value = user.join(',');

  return event;

 });

})();

koichi様

ご返信ありがとうございます。

そしてお忙しいところご対応をいただき恐縮です。

要望通りなのですが実際にJavascriptを設定して保存を押したところ保存ボタンが押せない(無反応状態)です。

エラー表示も何も出ません。

エラーログを確認しようと思ったのですが、どこをみたらいいのかわかりません

ちなみにmobileも同じJavascriptで動きますでしょうか。

大変お手数をお掛けして申し訳ございませんが何卒よろしくお願い致します。

下記の様なエラーが出ているようです。

kintone様

保存エラーについて、フィールドコードが異なっているということはないでしょうか。

下記、モバイルにも対応したスクリプトです。

(function() {

 'use strict';

 // レコード追加画面保存時・編集画面保存時
 var events = ['app.record.create.submit', 'app.record.edit.submit',
       'mobile.app.record.create.submit', 'mobile.app.record.edit.submit'];
 kintone.events.on(events, function(event) {

  var record = event.record;

  var table = record.テーブル.value; // テーブルフィールド

  var user = [];
  for (var i = 0; i < table.length; i++) {
   for (var j = 0; j < table[i].value.ユーザー選択.value.length; j++) { // テーブル内のユーザー選択フィールド
    user.push(table[i].value.ユーザー選択.value[j].code);
   }
  }

  record.ユーザー文字列.value = user.join(','); // ユーザーの文字列フィールド

  return event;

 });

})();

 

Chromeをお使いでしたら、デベロッパーツールのConsoleタブを開いて実行すると、エラーを確認できます(下図右側参照)。

IEやEdgeにも同様の開発者ツールがありますので、そちらで確認可能です。

解決が難しいようでしたら、下図のようなキャプチャを頂ければわかるかもしれません。

kintone様

ほぼ同じタイミングでコメントしていました。

エラー画像ありがとうございます。

現在のkintone様が使用しているコードの11行目に原因がありそうです。

koichi様

お忙しいところご対応いただきありがとうございます。

おっしゃる通り、一か所フィールドコードが間違えておりました。

本当にありがとうございました!!

大感謝です!!

また何かあればよろしくお願い致します。

 

kintone様

解決されてよかったです!

koichi様

ずっと悩んでいたのですが始めたばかりで全く分からない状態で困っておりました。

本当にありがとうございました。

kintone様

度々申し訳ございません。

ユーザー文字列に

ルックアップ あああ と user1 をコピーする方法はございませんか。

 

kintone様

前述のスクリプトの一部を下記に変更してください。

var user = [];
for (var i = 0; i < table.length; i++) {
 for (var j = 0; j < table[i].value.ユーザー選択.value.length; j++) { // テーブル内のユーザー選択フィールド
  user.push(table[i].value.ルックアップ.value + table[i].value.ユーザー選択.value[j].code);
 }
}

ただ、ユーザー選択に複数名指定されていると、それぞれ結合したものになります。

私が前に上げた画像の場合、下記のようになると思います。

あああuser1,いいいuser2,いいいuser3

koichi様

ご対応いただきありがとうございました。

ものすごく勉強になります。

本当にありがとうございました。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。