詳細画面にボタンを設置し、必要なフィールドの値だけを定められた順番でCSVに出力するボタンを作ろうとしています。
いざ実行してみると文字化けしたファイルになっているので、PCやブラウザなどの設定以外でkintone内のコードで行える対応があれば、教えていただけないでしょうか。
(function() {
'use strict';
// レコード詳細画面の表示時に実行
kintone.events.on('app.record.detail.show', function(event) {
if (document.getElementById('ButtonA') !== null) {
return;
}
// ボタンの作成
const ButtonA = document.createElement('button');
ButtonA.innerHTML = '書き出しパターンA';
ButtonA.id = 'ButtonA';
// クリックイベント
ButtonA.onclick = function() {
// 選択したフィールドの値を取得
var Name = event.record['会社名A'].value;
var Sales = event.record['営業所'].value;
var manager = event.record['担当者'].value;
var postcord = event.record['郵便番号A'].value;
var address = event.record['住所A'].value;
var tellnum = event.record['電話番号A'].value;
// CSVフォーマットのデータを作成
var CSVa = 'A,B,C,D,E,F\n' +
utf8Encode(Name) + ',' +
utf8Encode(Sales) + ',' +
utf8Encode(manager) + ',' +
utf8Encode(postcord) + ',' +
utf8Encode(address) + ',' +
utf8Encode(tellnum);
// CSVをダウンロード
var blob = new Blob([CSVa], { type: 'text/csv;charset=utf-8' });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = 'data.csv';
link.click();
};
// ボタンの設置
kintone.app.record.getHeaderMenuSpaceElement().appendChild(ButtonA);
});
// UTF-8エンコード関数
function utf8Encode(text) {
return unescape(encodeURIComponent(text));
}
})();