YYMAさん
こんにちは。
その記事の回答した者です。少し書き方が変わりますが、恐らくこちらの方が分かりやすいと思います。
*エラー判定する部分だけ書きます。
const record = event.record;
record.使用区間テーブル.value.forEach((row) => {
if (!row.value.使用用途.value) {
row.value.使用用途.error = '必須です';
}
});
return event;
テーブル内の各行をforEachを使って順に処理します。rowは各行のデータを指します。
今回は「使用用途」だけエラー対象のため、「row.value.使用用途.error = ***」でエラーを設定します。
どんな時にエラーとするか→「row.value.使用用途.valueに値が入ってない場合」
if (!row.value.使用用途.value) {
row.value.使用用途.error = '必須です';
}
これだけでは全ての場合にエラーになってしまいますので、用途が「交通費」または「タクシー代」の場合というif文も必要です。
まずはコードに落とし込んでみてください。
koichiさん
こんにちは、お返事が遅くなってしまい申し訳ございません。
丁寧なご回答大変助かります。ありがとうございます。
おっしゃる通り、書いてみたらうまくできました!ありがとうございます。
3つ確認なのですが、①event.recordというものは、「今自分が編集しているレコードの情報を取得する」という認識でよろしいでしょうか?
また、②foreach((row) => の部分ですが、検索すると「テーブルの行数分ループする」というものであるという推測ができたのですが、意味は合っておりますか?
また、③.errorについては、どんなJavaScript(つまりKintoneでなくても)汎用性があるのでしょうか?
用途による分岐も、無事できました。ありがとうございます。
大変お手数をおかけいたしますが、今後の勉強と理解を深めるために、ご回答いただけますと幸いです。
ご確認いただきありがとうございます。
①event.recordはご記載のとおり、「今自分が編集しているレコードの情報を取得する」です。
(より正確には、kintone.events.onに指定したイベント発火時点のレコード情報を取得する)
②forEachもご記載のとおり、行数分のループです。
これはkintoneに関わらず、JavaScriptが持つメソッドで、基本的には配列の中身を順にループするものです。
kintoneのサブテーブルは配列で構成されているため、行のループとなります。
(forEachでなくても、for文で書いても問題ないです)
③.errorはkintone独自のものですので、kintone以外での汎用性はありません。
解決しまして何よりです!
ご回答ありがとうございます。すべて承知いたしました。
大変助かりました。またもし機会がございましたら、質問にご回答をお願いできれば幸いです。
勉強を重ねて少しずつレベルの高い質問ができるよう頑張ります。ありがとうございました。
system
(system)
クローズされました:
6
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。