第7回 カスタマイズビュー でチェックボックスを表示

第7回 カスタマイズビュー・・・の講義を元に、オリジナルのビューを作っていますが、チェックボックスのデータをどうやって引っ張り込めば良いのかわかりません。

例えばフィールドコードが”category”だとすると、各チェックボックスはcategory[0],category[1],…で指示すると考えれば良いですか?

第7回の講座を元に、recordオブジェクトの内容をカスタマイズビューに反映する場合、

record[i]→record に代入して、

if(record.category[0].checked){k1 =“デザイン”}

else if(record.category[0].checked){k2 =“設計”}

var kate= k1 + k2

cell4.innerHTML =“kate”
という感じ??

あるいはfor構文で

for(j=0; j<record.category.lengh; j++){
if(record.category[j].checked){
record.category[j].value +=
record.category[j].value + “/” ;}

どちらも上手く行かないのですが。

 

大変恐縮ですが、アドバイスいただければ幸甚です。

林光邦 さん

レコードの取得(GET)のレスポンスの例を見ると、各項目タイプの構造が分かります。
チェックボックスは、value が配列構造になっています。
設定値が、「デザイン」、「設計」の場合は、下記のようになっていると思います。
配列の値をまとめて取り出したい場合は、join を使います。

"チェックボックス": {
"type": "CHECK_BOX",
"value": [
"sample1",
"sample2"
]
},
"category": {
"type": "CHECK_BOX",
"value": [
"デザイン",
"設計"
]
},

var kate = record.category.value.join(',');

また、イベント処理で console.log(event); を実行すると、
ブラウザデバッグツールの console タブで、構造を確認できます。

この辺は、動かない?そんな時はデバッグをしてみよう!入門編 を見てください。
最初は面倒でも、JavaScript 入門など一通り見ておくと、開発効率が全く違いますよ。

 

ありがとうございます。

初心者で理解に時間がかかるので、色々試してから顛末ご報告いたします。

感謝。

JavaScript入門書は何冊か読んだのですが、チェックボックスの部分の記載がマチマチで混乱しておりました。

まだ配列構造のあたりが良く理解できていないのだと思います。

ありがとうございます、うまく行きました。

初心者なので、確認なのですがつまりこういう理解でよろしいでしょうか?

キントーンでレコードのデータを取得(GET?)すると、

”record”の変数内にこんな感じのJSON形式のデータが入っている訳ですね?

“フィールドコード名”:                              //フォームの要素のフィールドコード

      {“type”:“SINGLE_LINE_TEXT”,         //フォームの要素の形式

         “value”:“ABC”}  ,       //フォームの要素の値

// ※以下要素分のデータ

 

今回の質問は形式がチェックボックスのデータを拾うことが目的でした。

選択肢の数分、値(value)にデータが入っていて、どうすれば良いのかが分かりませんでした。

 

“フィールドコード名”:                              //フォームの要素のフィールドコード

      {“type”:“CHECK_BOX”,         //フォームの要素の形式

         “value”:“ABC”,“DEF”,“GHI”}  ,       //フォームの要素の値(複数)

 

ご指摘のとおり、繋いで表示すれば問題ありませんでした。

record.category.value.join(',');

ありがとうございます。

 

選択肢のうち、個別の項目を抜き出すにはどうしたら?とチラっと思いましたが、

多分そういう用途はないかな、とも思います。

お礼申し上げます。

 

ちょっと勘違いがあるようです。
チェックボックスのvalue値は、配列となっており、[] で囲まれています。

"フィールドコード名": //フォームの要素のフィールドコード
{"type":"CHECK_BOX",     //フォームの要素の形式
"value":["ABC","DEF","GHI"]} ,  //フォームの要素の値(複数)

なお、配列から個別に値をとりだす場合は、配列の位置を指定します。

record["フィールドコード名"].value[0] // "ABC"
record["フィールドコード名"].value[1] // "DEF"
record["フィールドコード名"].value[2] // "GHI"

なるほど、ありがとうございました。