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

お世話になります。

複数行に記載した内容をテーブル内の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

>複数行の行数をカウントして、その行数分のテーブル行を
>追加して、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-

たまねぎさん

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

1.はif文で何とかすればいいような気がします。
2.は現状分からない状況です。
3.は一度削除する?、もしくはボタンで追加する。

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

(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;
});
})();

たまねぎさん

一応できました。

作成時のみに変更することで、編集時に延々と追加されることを
防ぐ形にしました。
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];
}
}