テーブル内項目もダウンロードできるボタン作成

質問ばかりで、申し訳ございません。
注文書のアプリを作成しています。

テーブル外項目:「企画コード」
テーブル内項目:「商品名」、「冊数」
テーブル名:「Table」

ステータス項目:「ステータス」

一覧画面で、「ステータス」が、「未出力」のものを引っかけています。

一覧画面にある「ダウンロード」ボタンを押すと、
表示されているレコード一覧(注文)がCSVで出力され、
ステータスを「出力済」に変更するという「javascript」を書きたいと思っているのですが、
どなたか、お助け頂けないでしょうか。

以下コードを応用して、リンクを押すとCSVダウンロードが出来る、
というところまでは行けたのですが、テーブル内の項目を出そうとしても、うまくいきません。

(function () {
“use strict”;

// 一覧ビューの表示イベント
kintone.events.on(‘app.record.index.show’, function(events) {

var $link = $(‘#download-csv’);
if ($link.length == 0) {
// ヘッダにリンクを作成
var $header = $(kintone.app.getHeaderMenuSpaceElement());
$link = $(‘<a id=“download-csv” href=“#”>CSVでダウンロード</a>’);
$header.append($link);
}

// エスケープ
var escapeStr = function(value) {
return ‘"’ + (value? value.replace(/“/g, '”“'): ‘’) + '”';
};

if ((window.URL || window.webkitURL).createObjectURL == null) {
// サポートされていないブラウザ
return;
}

// CSVデータを作成
var csv = [];
var row = [‘ID’,‘column1’,‘column2’];
csv.push(row);
for (var i = 0; i < events.records.length; i++ ) {
var record = events.records[i];
row = [];
row.push(escapeStr(record[‘レコード番号’].value));
row.push(escapeStr(record[‘column1’].value));
row.push(escapeStr(record[‘column2’].value));
csv.push(row);
}

// BOM付でダウンロード
var csvbuf = csv.map(function(e){return e.join(‘,’)}).join(‘\r’);

var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
var blob = new Blob([bom, csvbuf], { type: ‘text/csv’ });

var url = (window.URL || window.webkitURL).createObjectURL(blob);

var fileName = “download.csv”;
if (window.navigator.msSaveOrOpenBlob) {
// for IE
$link.unbind();
$link.click(function() {
var retVal = window.navigator.msSaveOrOpenBlob(blob, fileName);
});
} else {
$link.attr(‘download’, fileName);
$link.attr(‘href’, url);
}
});
})();

fxpradmin様

お世話になっております。 トヨクモの加納と申します。

作成されているアプリについて、以下のような認識でよろしいでしょうか?

  • テーブル内項目「商品名」と「冊数」のフィールドコードがそれぞれcolumn1とcolumn2。
  • ダウンロードされたcsv内のカラムに、欲しい値が反映されていない。(空文字になってしまっているなど)

その場合、ソースコードのcsvデータ作成の部分の、pushしている部分を以下のように変更することで解決できるかもしれませんので、お試しください。

row.push(escapeStr(record['レコード番号'].value));
row.push(escapeStr(record['Table'].value[0].value['column1'].value));
row.push(escapeStr(record['Table'].value[0].value['column2'].value));

加納様

はじめまして。書き込み有り難うございます!
(諸事情で、確認が遅くなり、申し訳ございませんでした)

お知らせ頂いた書き方で試してみたところ、無事、出力できるようになりました!
有り難うございます。今後とも、宜しくお願い致します。