ご回答ありがとうございます。
google.apiの中でgoogle chart APIのグラフ描画処理を入れてみたのですが、
google.setOnLoadCallbackを読み込まずに処理終了してしまいました。
以下がソースです。。。
/*
* カスタマイズビューのサンプルプログラム
* Copyright (c) 2014 Cybozu
*
* Licensed under the MIT License
*/
kintone.events.on(['app.record.index.show'], function(event){
if (document.getElementById( "linechart" ) != null){
var appId = kintone.app.getId(); //実績管理アプリID
var app_yosan = 54; //予算管理アプリID
//テーブルの作成
var data = [];
var param={
"app":app_yosan,
"query":'order by 日付'
};
kintone.api('/k/v1/records', 'GET', param, function(resp) {
var records = resp['records'];
var key0,key1,key2,key3;
var chkPush = 0;
var nn = 0;
var reqUri;
var xmlHttp;
for(var i = 0; i < records.length; i++){
chkPush = 0;chkPush = 0;
key0 = records[i]['氏名']['value'];
key0 = key0.replace(/</g, "<").replace(/>/g, ">");
key1 = records[i]['日付']['value'];
key2 = records[i]['金額']['value'];
// 同期リクエストを行う
reqUri = kintone.api.url('/k/v1/records') + '?app='+ appId + '&query=' + encodeURI("氏名 = \"" + key0 + "\"");
xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", reqUri, false);
xmlHttp.setRequestHeader('X-Requested-With','XMLHttpRequest');
xmlHttp.send(null);
if (xmlHttp.status == 200){
if(window.JSON){
key3 = 0;
var obj = JSON.parse(xmlHttp.responseText);
// 実績DB、予算DBともに登録してある場合
//if (obj['records'].length != 0){
for(var j = 0; j < obj['records'].length; j++){
key3 += parseInt(obj['records'][j]['金額']['value']);
}
preData=data.length;
while (chkPush == 0){
preData=data.length;
data.push({segment:key1,budget:key2,results:key3});
// なぜか処理が重いので…
if (preData == data.length){
chkPush = 0;
} else {
chkPush = 1;
}
}
//}
}
}
}
//---------------------google chart APIの処理------------------------
//描写用ライブラリの読み込み
google.load("visualization", "1", {packages:["corechart"]});
//ライブラリの読み込み後に実行する関数
google.setOnLoadCallback(function(){
//Google Chartのインスタンスを作成する
var elment = document.getElementById("linechart");
if (elment == null) {
return;
}
var chart = new google.visualization.AreaChart(elment);
//データのインスタンスを作成する
var dataSum = new google.visualization.DataTable();
//カラムの設定
dataSum.addColumn("date","日付");
dataSum.addColumn("number","実行金額");
dataSum.addColumn("number","予定金額");
var sumBudget = 0;
var sumResults = 0;
for (var i = 0; i < data.length; i++){
sumBudget += parseInt(data[i]['budget']);
sumResults += parseInt(data[i]['results']);
//データの挿入
dataSum.addRow([new Date(data[i]['segment']), sumBudget, sumResults]);
}
//オプション要素
var option = {
'title':'予実績累計グラフ',
'pointSize': 5,
'backgroundColor':'black',
'hAxis': {
'title':'日付',
'titleTextStyle': { fontSize: 15 },
'baselineColor':'green',
'gridlines':{
color:'green',
'count':8
},
titleTextStyle: {color: 'red'},
textStyle: {color: 'red'}
},
'vAxis': {
'title': '金額',
'titleTextStyle': { fontSize: 15 },
'baselineColor':'green',
'gridlines':{
color:'green',
'count':8
},
titleTextStyle: {color: 'red'},
textStyle: {color: 'red'}
},
'legend': {
position:'top',
textStyle:{
color:'white'
}
}
};
//グラフの描画
chart.draw(dataSum, option);
});
});
}
return event;
});
callbackがよくわかっていない状況です。。。