郵便番号から住所を取得し表示させる件について

皆様お世話になっております。不勉強で恐縮ですが、ご教授お願いいたします。

https://developer.cybozu.io/hc/ja/community/posts/360030568412-%E9%83%B5%E4%BE%BF%E7%95%AA%E5%8F%B7%E3%81%8B%E3%82%89%E4%BD%8F%E6%89%80%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E5%BE%97%E3%82%8B-2018%E5%B9%B411%E6%9C%88- 

を参考にさせていただきました。

テーブルで利用したいのですが書き込みができません。下記コードにご指摘いただけますと幸甚です。何卒宜しくお願いいたします。

・フォームに郵便番号書き込み用(文字列1行)[zipcode]

・フォームに住所書き出し用(文字列1行)[address1]

・上記をテーブル化 [tbl_branch]

 

(function() {
“use strict”;
kintone.events.on([‘app.record.create.change.zipcode’, ‘app.record.edit.change.zipcode’], function(event) {
var tbl_row = event.changes.row;
var zipcode = tbl_row.value[‘zipcode’].value;
kintone.proxy(‘http://zipcloud.ibsnet.co.jp/api/search?zipcode=’ + zipcode, ‘GET’, {}, {}, function(body) {
var response = JSON.parse(body);
if (response.status == 200) {
if(response.results != null){
if(response.results.length > 0){
var tmp1 = ‘’;
tmp1 = (response.results[0].address1 != null ? response.results[0].address1 : ‘’);
var tmp2 = ‘’;
tmp2 = (response.results[0].address2 != null ? response.results[0].address2 : ‘’);
var tmp3 = ‘’;
tmp3 = (response.results[0].address3 != null ? response.results[0].address3 : ‘’);

var address1 = tbl_row.value[‘address1’];
address1.value = tmp1;

} else {
alert(‘← 郵便番号を修正してください。_01(’ + response.message + ‘)’);
}
}else{
alert(‘← 郵便番号を修正してください。_02(’ + response.message + ‘)’);
}
} else if (response.message) {
alert(‘← 郵便番号を修正してください。_03(’ + response.message + ‘)’);
} else {
alert(‘郵便番号から住所を検索しましたが、失敗しました_04’);
}
},function(body) {
alert(‘郵便番号から住所の検索に失敗しました_05’);
});
return event;
});
})();

 

以上、宜しくお願いいたします。

Tatsuya Ishibashi さん

こんにちは。はじめまして。

参考にされた記事にあるように、フィールドの値には、record.get() や record.set() を使うと設定できると思います。

テーブル内のフィールドの値は、次のようにすれば設定できると思います。

var record = kintone.app.record.get();
record.record.tbl_branch.value[変更のあった行番号].value.address1.value=tmp1;
kintone.app.record.set(record);

変更のあったテーブルの行番号は、こちらのコメントを参考に取得しました。

function getRowIndex(event, table_field) {
  var row = event.changes.row;
  var tbl = event.record[table_field].value;
  for (var i=0; i<tbl.length; i++) {
    if (row == tbl[i]) { //same reference
      return i;
    }
  }
  return -1;
}

ひよこ様

はじめまして!そして、ありがとうございます!

参照先の記事の情報も含め、しっかりと勉強します。

実装するまでに少し時間が空くので、先ずはお礼を申し上げます。

本当にありがとうございます。