# 複数行フィールドをテーブル内の1行に転記したい

**URL:** <https://community.cybozu.dev/t/topic/5203>\
**Category:** kintone 開発相談\
**Created:** [2021 年 8 月 24 日午前 8:27 UTC](https://community.cybozu.dev/t/topic/5203 "2021-08-24T08:27:39Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2783](https://avatars.discourse-cdn.com/v4/letter/l/f475e1/32.png) [@Legacy\_Account2783](https://community.cybozu.dev/u/Legacy_Account2783)\
**Post date:** [2021 年 8 月 24 日午前 8:27 UTC](https://community.cybozu.dev/t/topic/5203/1 "2021-08-24T08:27:39Z")

</div>

お世話になります。

複数行に記載した内容をテーブル内の1行フィールドに  
コピーできないか検討しているのですが、なかなか  
良い発想ができません。  
複数行の行数をカウントして、その行数分のテーブル行を  
追加して、for分でsplitを回す感じになるのでしょうか？  
下記を参考にできそうですが、テーブルなので良く分かりません。  
ご教授お願いいたします。

[https://developer.cybozu.io/hc/ja/community/posts/360056301491-%E5%90%8C%E4%B8%80%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E5%86%85%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E8%A4%87%E6%95%B0%E8%A1%8C1%E8%A1%8C%E7%9B%AE%E3%81%AE%E5%86%85%E5%AE%B9%E3%81%AE%E3%81%BF%E3%82%92%E6%96%87%E5%AD%97%E5%88%971%E8%A1%8C%E3%81%B8%E3%82%B3%E3%83%94%E3%83%BC](https://developer.cybozu.io/hc/ja/community/posts/360056301491-%E5%90%8C%E4%B8%80%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E5%86%85%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E8%A4%87%E6%95%B0%E8%A1%8C1%E8%A1%8C%E7%9B%AE%E3%81%AE%E5%86%85%E5%AE%B9%E3%81%AE%E3%81%BF%E3%82%92%E6%96%87%E5%AD%97%E5%88%971%E8%A1%8C%E3%81%B8%E3%82%B3%E3%83%94%E3%83%BC)

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1018](https://avatars.discourse-cdn.com/v4/letter/l/e56c9b/32.png) [@Legacy\_Account1018](https://community.cybozu.dev/u/Legacy_Account1018)\
**Post date:** [2021 年 8 月 24 日午前 10:00 UTC](https://community.cybozu.dev/t/topic/5203/2 "2021-08-24T10:00:44Z")

</div>

\>複数行の行数をカウントして、その行数分のテーブル行を  
\>追加して、for分でsplitを回す感じになるのでしょうか？

考え方としてはそれで大丈夫です。  
行追加の方法は下記リンクを参考にしてみてください。  
[https://developer.cybozu.io/hc/ja/articles/360022502911-kintone%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E6%93%8D%E4%BD%9C%E3%81%AE%E5%9F%BA%E6%9C%AC-%E8%A1%8C%E3%81%AE%E8%BF%BD%E5%8A%A0-%E6%9B%B4%E6%96%B0-%E5%89%8A%E9%99%A4-](https://developer.cybozu.io/hc/ja/articles/360022502911-kintone%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E6%93%8D%E4%BD%9C%E3%81%AE%E5%9F%BA%E6%9C%AC-%E8%A1%8C%E3%81%AE%E8%BF%BD%E5%8A%A0-%E6%9B%B4%E6%96%B0-%E5%89%8A%E9%99%A4-)

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2783](https://avatars.discourse-cdn.com/v4/letter/l/f475e1/32.png) [@Legacy\_Account2783](https://community.cybozu.dev/u/Legacy_Account2783)\
**Post date:** [2021 年 8 月 25 日午前 1:08 UTC](https://community.cybozu.dev/t/topic/5203/3 "2021-08-25T01:08:18Z")

</div>

たまねぎさん

アドバイスありがとうございます。  
おおよそはできたのですが、問題点がいくつかでました。  
１．複数行がブランクの場合、保存できなくなる。  
２．1行目が空白で保存される。  
３．編集で保存すると再度追加される。

１．はif文で何とかすればいいような気がします。  
２．は現状分からない状況です。  
３．は一度削除する？、もしくはボタンで追加する。

お手数ですが、再度アドバイス頂ければ幸いです。

```
(function() {
"use strict";
var events = [
'app.record.create.submit',
'app.record.edit.submit'
];
//作成、編集時に適用
kintone.events.on(events, function(event) {
var record = event.record;
var multiText = record.MultiText.value;
var countMultiText = 1;

//複数行の行数カウント（改行をキーに）
for (var i = 0; i < multiText.length; i++) {
if (multiText.charAt(i) === "") {
countMultiText += 1;
}
}
//複数行を配列に分割
var str = multiText.split(/\r|/);

//行ごとにpushする
for (var j = 0; j < countMultiText; j++) {
record.Table1.value.push({
value: {
"No": {
value: '',
type: 'NUMBER',
},
"Text": {
value: str[j],
type: 'SINGLE_LINE_TEXT',
},
"Value": {
value: '',
type: 'NUMBER',
},
}
});
}
return event;
});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2783](https://avatars.discourse-cdn.com/v4/letter/l/f475e1/32.png) [@Legacy\_Account2783](https://community.cybozu.dev/u/Legacy_Account2783)\
**Post date:** [2021 年 8 月 26 日午前 7:58 UTC](https://community.cybozu.dev/t/topic/5203/4 "2021-08-26T07:58:00Z")

</div>

たまねぎさん

一応できました。

作成時のみに変更することで、編集時に延々と追加されることを  
防ぐ形にしました。  
1行目の空白は、j \< countQText-1でなんかできたようです。  
if文は最初に追加したので、コピー元が空白の場合も問題なく  
対応できました。以下変更分です。（本アプリから持ってきてるので、若干違うかも…）

```
//複数行の行数カウント（改行をキーに）
if (multiText) {
for (var i = 0; i < multiText.length; i++) {
if (multiText.charAt(i) === "") {
countMultiText += 1;
}
}

//複数行を配列に分割
var str = multiText.split(//);

var table1 = record.Table1.value;
var tableLength = table1.length;

//行ごとにpushする
if (countMultiText != tableLength) {
for (var j = 0; j < countMultiText-1; j++) {
record.Table1.value.push({
value: {
"No": {
    value:'',
    type:'NUMBER',
    },
    "Text": {
    value: str[j],
    type:'SINGLE\_LINE\_TEXT',
    },
    "Value": {
    value:'',
    type:'NUMBER',
    },
}
});
}
}
//対象に文字列だけを格納する
for (var k = 0; k < countMultiText; k++) {
record.Table1.value[k].value.Text.value = str[k];
}
}

```
