kViewerの詳細ページで、kintoneのサブテーブルを表示するために下記の設定を行っております。
※テーブルのフィールドコードは「回答資料」
※テーブル内の各項目の情報は下記の通り。
(フィールドコード名) (フィールドタイプ)
・承認フラグ チェックボックス形式
・回答ファイル 添付ファイル形式
上記のテーブルをkViewerで表示する際、
承認フラグのチェックがついた行だけ、回答ファイルを表示し
承認フラグのチェックがついてない行は、回答ファイルを非表示にしたく
下記のコードで制御できません。
どなたかkViewerにおけるテーブル情報の制御方法をご教示いただけると助かります。
(function() {
"use strict";
kv.events.record.mounted.push(function(state){
var switchField = '承認フラグ'; // 値が歩かないかを判断するフィールドのフィールドコード
var targetField = '回答ファイル'; // 表示・非表示を切り替えるフィールドのフィールドコード
if(!state.record[switchField].value){
targetFields.forEach(function(targetField){
kv.detail.getElementByCode(targetField).style.display = 'none';
});
}
});
})();
※現状
※実現したいこと
お世話になっております.
トヨクモのの石川と申します.
承認フラグに応じ,任意の要素を非表示にしたいとのことですが,下記のコードで実現できます.
処理の対象となるデータが複数個存在することになりますので,それぞれのデータに対して「Ok」の有無を判定する必要がございます.
ファイルを非表示にする方法として,CSSではなくJavascriptで不要な要素を画面から削除する方法で実装させて頂きました.
(function() {
"use strict";
var switchField = '承認フラグ'; // 値が歩かないかを判断するフィールドのフィールドコード
var targetField = '回答ファイル'; // 表示・非表示を切り替えるフィールドのフィールドコード
kv.events.records.mounted = [function (state) {
for (const record of state.records) {
if (!record[switchField].value.length) {
record[targetField].value = null;
}
}
return state;
}]
})();
トヨクモ株式会社 石川様
お世話になります。
いつもご回答、有難うござます。
「OK」の有無でファイル名の要素を画面から削除する方法で
実現できるわけですね。
アドバイス頂き大変助かりました。
今後とも、よろしくお願い致します。
トヨクモ株式会社 石川様
お世話になります。
本件につきまして、以前kViewerのテーブルのある項目の値が空だった場合に添付ファイルの項目の要素を画面から削除する方法を教えて頂いた事がありましたが、
今回、kViewerのある項目(フィールドコード:APP_DAY)の値が空の時に、テーブル(フィールドコード:receipts)内の項目(フィールドコード:PRICE)の値を
全て非表示にしたく下記のカスタマイズを行ってみましたが、APP_DAYフィールドの値が空の時にテーブルの項目の値が表示されてしまいます。
カスタマイズ内容に誤りが在りましたらアドバイス頂けると助かります。
(function() {
"use strict";
kv.events.record.mounted.push(function(state){
var switchField = 'APP_DAY'; // 表示制御の判定値が格納された項目のフィールドコード
var targetField = 'PRICE'; // 値の表示・非表示を行う項目のフィールドコード
if(!state.record[switchField].value) {
for (const record of state.records) {
record[targetField].value = null;
}
}
return state;
});
})();
お手数をお掛け致しますが、ご教示頂けますと幸いです。