以下のjsでkintone内のボタンクリックからプリントクリエイターの該当帳票を呼び出しデータを移行させています。見積書・注文書・注文請書まではボタンクリックで可動するのですが、引渡書だけ反応しません。同じように書き込んでいると思うのですが、どこに問題があるのでしょうか。ご指導ください。
よろしくお願いいたします。
(function() {
“use strict”;
var reportNo = new Array();
var appNo = new Array();
reportNo = [‘見積書NO’,‘注文書NO’,‘注文請書NO’,‘引渡書NO’];
appNo = [‘76’,‘66’,‘79’,‘567’];
// 登録・編集イベント
var events = [‘app.record.create.show’,‘app.record.edit.show’];
kintone.events.on(events, function (event) {
var i = 0;
//帳票NOは非表示
for (i = 0 ; i < reportNo.length ; i++) {
kintone.app.record.setFieldShown(reportNo[i],false);
}
});
// 詳細表示イベント
var events = [‘app.record.detail.show’];
kintone.events.on(events, function (event) {
var i = 0;
//帳票NOは非表示
for (i = 0; i < reportNo.length; i++){
kintone.app.record.setFieldShown(reportNo[i],false);
}
var record = event.record;
// ボタンの作成
//見積書
var mitsumori_button = document.createElement(‘button’);
mitsumori_button.id = ‘mitsumori_button’;
mitsumori_button.innerHTML = ‘見積書’;
kintone.app.record.getSpaceElement(‘mitsumori_btn_field’).appendChild(mitsumori_button);
//注文書
var chumon_button = document.createElement(‘button’);
chumon_button.id = ‘chumon_button’;
chumon_button.innerHTML = ‘注文書’;
kintone.app.record.getSpaceElement(‘mitsumori_btn_field’).appendChild(chumon_button);
//注文請書
var chumon_uke_button = document.createElement(‘button’);
chumon_uke_button.id = ‘chumon_uke_button’;
chumon_uke_button.innerHTML = ‘注文請書’;
kintone.app.record.getSpaceElement(‘chumon_uke_btn_field’).appendChild(chumon_uke_button);
//引渡書
var hikiwatasisyo_button = document.createElement(‘button’);
hikiwatasisyo_button.id = ‘hikiwatasisyo_button’;
hikiwatasisyo_button.innerHTML = ‘引渡書’;
kintone.app.record.getSpaceElement(‘hikiwatasisyo_btn_field’).appendChild(hikiwatasisyo_button);
//各ボタン押下時
document.getElementById(‘mitsumori_button’).onclick = function () { AddReport(0); };
document.getElementById(‘chumon_button’).onclick = function () { AddReport(1); };
document.getElementById(‘chumon_uke_button’).onclick = function () { AddReport(2); };
document.getElementById(‘oshirase_button’).onclick = function () { AddReport(3); };
document.getElementById(‘hikiwatasisyo_button’).onclick = function () { AddReport(4); };
});
//帳票アプリへの登録
function AddReport(btnNo) {
var i = 0;
var lastRID = -1;
var record = event.record;
var rec = kintone.app.record.get();
var myRecID = kintone.app.record.getId();
var url = “https://000000.cybozu.com/k/”;
var myAppId = 000;
var otherAppId = appNo[btnNo];
var recNo = rec[‘record’][reportNo[btnNo]][‘value’];
//パラメータの設定
switch (btnNo){
//見積書
case 0:
var mitsumoriPrice = 0;
var mitsumoriTblIdx = -1;
var recMax =rec[‘record’][‘見積テーブル’][‘value’].length;
for (i = 0; i<recMax; i++){
if (rec[‘record’][‘見積テーブル’][‘value’][i][‘value’][‘確定_見積’][‘value’] == ‘選択’){
mitsumoriTblIdx = i;
break;
}
}
if (mitsumoriTblIdx < 0) {
return;
}
mitsumoriPrice = Math.floor ( Number( rec[‘record’][‘見積テーブル’][‘value’][mitsumoriTblIdx][‘value’][‘見積額_見積’][‘value’] ) *
( ( 100 + Number( rec[‘record’][‘消費税率’][‘value’] ) ) / 100 )) +
Number( rec[‘record’][‘見積テーブル’][‘value’][mitsumoriTblIdx][‘value’][‘消費税調整額_見積’][‘value’] ) ;
var param = {
app:otherAppId,
record: {
見積NO: { value: rec[‘record’][‘見積テーブル’][‘value’][mitsumoriTblIdx][‘value’][‘見積書NO_見積’][‘value’] },
見積日: { value: rec[‘record’][‘見積テーブル’][‘value’][mitsumoriTblIdx][‘value’][‘見積日_見積’][‘value’] },
消費税調整額: { value: rec[‘record’][‘見積テーブル’][‘value’][mitsumoriTblIdx][‘value’][‘消費税調整額_見積’][‘value’] },
見積合計金額_税込: { value: mitsumoriPrice },
工事NO: { value: rec[‘record’][‘工事NO’][‘value’] },
物件名: { value: rec[‘record’][‘物件名’][‘value’] },
工事開始予定: { value: rec[‘record’][‘工事開始予定’][‘value’] },
工事完了予定: { value: rec[‘record’][‘工事完了予定’][‘value’] },
工事名: { value: rec[‘record’][‘工事名’][‘value’] },
顧客名: { value: rec[‘record’][‘顧客名’][‘value’] },
号室: { value: rec[‘record’][‘号室’][‘value’] },
担当: { value: rec[‘record’][‘工事担当’][‘value’] },
消費税率: { value: rec[‘record’][‘消費税率’][‘value’] }
}
}
break;
//注文書
case 1:
var mitsumoriTblIdx = -1;
var recMax =rec[‘record’][‘見積テーブル’][‘value’].length;
for (i = 0; i<recMax; i++){
if (rec[‘record’][‘見積テーブル’][‘value’][i][‘value’][‘確定_見積’][‘value’] == ‘選択’){
mitsumoriTblIdx = i;
break;
}
}
if (mitsumoriTblIdx < 0) {
return;
}
var param = {
app:otherAppId,
record: {
NO: { value: rec[‘record’][‘工事NO’][‘value’] },
工事名: { value: rec[‘record’][‘工事名’][‘value’] },
工事名称: { value: rec[‘record’][‘物件名’][‘value’] },
号室: { value: rec[‘record’][‘号室’][‘value’] },
工事場所: { value: rec[‘record’][‘現場住所’][‘value’] },
工事期間_自: { value: rec[‘record’][‘着工日_実施’][‘value’] },
工事期間_至: { value: rec[‘record’][‘完工日_実施’][‘value’] },
工事代金: { value: rec[‘record’][‘見積テーブル’][‘value’][mitsumoriTblIdx][‘value’][‘見積額_見積’][‘value’] },
消費税率: { value: rec[‘record’][‘消費税率’][‘value’] }
}
};
break;
//注文請書
case 2:
var mitsumoriTblIdx = -1;
var recMax =rec[‘record’][‘見積テーブル’][‘value’].length;
for (i = 0; i<recMax; i++){
if (rec[‘record’][‘見積テーブル’][‘value’][i][‘value’][‘確定_見積’][‘value’] == ‘選択’){
mitsumoriTblIdx = i;
break;
}
}
if (mitsumoriTblIdx < 0) {
return;
}
var param = {
app:otherAppId,
record: {
NO: { value: rec[‘record’][‘工事NO’][‘value’] },
注文者氏名: { value: rec[‘record’][‘顧客名’][‘value’] },
工事名称: { value: rec[‘record’][‘物件名’][‘value’] },
号室: { value: rec[‘record’][‘号室’][‘value’] },
工事名: { value: rec[‘record’][‘工事名’][‘value’] },
工事場所: { value: rec[‘record’][‘現場住所’][‘value’] },
工事期間_自: { value: rec[‘record’][‘着工日_実施’][‘value’] },
工事期間_至: { value: rec[‘record’][‘完工日_実施’][‘value’] },
工事代金: { value: rec[‘record’][‘見積テーブル’][‘value’][mitsumoriTblIdx][‘value’][‘見積額_見積’][‘value’] },
消費税率: { value: rec[‘record’][‘消費税率’][‘value’] }
}
};
break;
//引渡書
case 4:
var param = {
app:otherAppId,
record: {
請求先住所: { value: rec[‘record’][‘請求先住所’][‘value’] },
顧客名: { value: rec[‘record’][‘顧客名’][‘value’] },
工事名: { value: rec[‘record’][‘工事名’][‘value’] },
完了引渡日: { value: rec[‘record’][‘完了引渡日’][‘value’] }
}
};
break;
}
//パラメータに更新対象のレコードNOを追加
param.id = recNo;
//CSRFトークンの取得
var token = kintone.getRequestToken();
param[“__REQUEST_TOKEN__”] = token;
//更新
var appUrl = kintone.api.url(‘/k/v1/record’);
var XmlHttp = new XMLHttpRequest();
XmlHttp.open(‘PUT’, appUrl, false);
XmlHttp.setRequestHeader(‘Content-Type’, ‘application/json’);
XmlHttp.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
XmlHttp.send(JSON.stringify(param));
//編集画面を開く
window.open(url + otherAppId + “/show#record=” + recNo + “&mode=edit”);
}, function(resp) {
if (resp.message !== undefined){
//CSRFトークンの取得
var token = kintone.getRequestToken();
param[“__REQUEST_TOKEN__”] = token;
//新規登録
var appUrl = kintone.api.url(‘/k/v1/record’);
var XmlHttp = new XMLHttpRequest();
XmlHttp.open(‘POST’, appUrl, false);
XmlHttp.setRequestHeader(‘Content-Type’, ‘application/json’);
XmlHttp.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
XmlHttp.send(JSON.stringify(param));
if (XmlHttp.status == 200) {
var respdata = JSON.parse(XmlHttp.responseText);
lastRID = respdata[“id”];
//登録したレコード番号を取得する
var rec = kintone.app.record.get();
recNo = lastRID;
kintone.app.record.set(rec);
//レコード番号を呼出し元画面に返す
var retparam;
switch (btnNo){
case 0:
retparam = { app:myAppId, id:myRecID, record: {見積書NO: { value: recNo }} }
break;
case 1:
retparam = { app:myAppId, id:myRecID, record: {注文書NO: { value: recNo }} }
break;
case 2:
retparam = { app:myAppId, id:myRecID, record: {注文請書NO: { value: recNo }} }
break;
case 3:
retparam = { app:myAppId, id:myRecID, record: {お知らせNO: { value: recNo }} }
break;
case 4:
retparam = { app:myAppId, id:myRecID, record: {引渡書NO: { value: recNo }} }
break;
}
// CSRFトークンの取得
var token = kintone.getRequestToken();
retparam[“__REQUEST_TOKEN__”] = token;
// 更新
var appUrl = kintone.api.url(‘/k/v1/record’);
var XmlHttp = new XMLHttpRequest();
XmlHttp.open(‘PUT’, appUrl, false);
XmlHttp.setRequestHeader(‘Content-Type’, ‘application/json’);
XmlHttp.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
XmlHttp.send(JSON.stringify(retparam));
//呼出し元画面をリロード
location.reload(true);
}
//編集画面を開く
window.open(url + otherAppId + “/show#record=” + lastRID + “&mode=edit”);
}
});
};
})();