【kintone】テーブルの中で入力禁止にしたりフィールドにエラー出したりの小技


こんにちは!
おそらく私の今年のkintone記事マラソンは今日でおしまい✨

今年最後はテーブルのフィールドのちょっとした小技を書いて終わりたいと思います。
devnetをサーフィン(?)していてチラホラ見かけた質問たちが元ネタであります・・・。
答えを書いてしまいたいけど、コミュニティの方針上、答えをズバリと書くのは良くない気がしていまして。
「困った」で検索して引っかかるような、ちょっとしたTips記事になったら良いなぁみたいな淡い欲望から書いております。

アプリの準備

アプリストアから「案件管理」をサンプルデータ込みで追加して試してね。
活動履歴テーブルを使うよ!

テーブルのフィールド編集不可にする

1行目のメモ(フィールドコードは文字列1行2)を編集不可にするにはこう。
disabledtrueにすると編集不可になります。

//編集不可
kintone.events.on(['app.record.edit.show', 'app.record.create.show'], event => {
    //1行目
    event.record.活動履歴.value[0].value.文字列__1行__2.disabled=true;
    return event;
}); 

全部の行のメモを編集不可にするには、こう(1例です)!

kintone.events.on(['app.record.edit.show', 'app.record.create.show'], event => {
    //全行
    event.record.活動履歴.value.forEach(v =>{
        v.value.文字列__1行__2.disabled=true;
    });
    return event;
}); 

テーブルのフィールドに値が入っていたらエラーを出す

保存のタイミングで値が入っていたらエラーをだしたいという場合はこんな感じ。
errorになにか文字列を入れておきましょう。

//入力禁止
kintone.events.on(['app.record.edit.submit','app.record.create.submit'],event=>{
    //2行目
    if(!!event.record.活動履歴.value[1].value.文字列__1行__2.value){
        event.record.活動履歴.value[1].value.文字列__1行__2.error = "入力禁止";
    }
    return event;
})

全部の行チェックしたい場合はこう!

kintone.events.on(['app.record.edit.submit','app.record.create.submit'],event=>{
    //全行
    event.record.活動履歴.value.forEach(v =>{
       if(!!v.value.文字列__1行__2.value){
           v.value.文字列__1行__2.error = "入力禁止";
        }
    });    
    return event;
}) 

そしてこうなった!

八方塞がり\(^o^)/

まとめ

使い方を誤ってしまい、何もできないアプリを作り出してしまった・・・。
JavaScript使うときはこんな事にならないように気をつけましょうっ!

というわけで、良いお年をお過ごしください^0^!