新規投稿
フォローする

検索窓をすべてのレコード一覧で表示する方法

お世話になっております。

kintone、javascript初心者です。

以下が分からず、ご教示いただけますと幸いです。

-------------------

現在アプリに4つの一覧があります。

 

Javascriptで検索窓を実装したのですが、「(作業者が自分)」の一覧のみにしか検索窓が表示されません。

4つ全ての一覧で表示するにはどうすればよいでしょうか。

 

Javascriptには、以下を冒頭に記述しています。

  kintone.events.on('app.record.index.show', function(event) {

  //以降は検索窓の実装

  ・・・

-------------------

0

5件のコメント

Avatar
村濱一樹

記載いただいた情報だけだとちょっとアタリをつけるのは難しいですね。。(動きそうに見えますね。

下記を参考にしてエラーがでてるかみたほうがいいかもしれません。

https://developer.cybozu.io/hc/ja/articles/360038920252-kintoneカスタマイズの基本的なデバッグの流れを身につけよう

 

エラーが何も出てない場合は検索窓のソースを載せれる分は載せたほうが答えやすいかと思います。

0
Avatar
雨宮雅人

コメント、参考サイトのご提供ありがとうございます。
情報が不足しており、申し訳ありません。

ソースは、以下サイトの実装をほぼそのまま利用しています。
http://crud-lab.hatenablog.com/entry/2016/03/17/9000

------------------------

//検索したいフィールドの設定値
const FIELD_CODE = '問題';

//レコード一覧表示のイベントハンドラー
(function () {
'use strict';

kintone.events.on("app.record.index.show", function (event) {

//GET引数に格納された直前の検索キーワードを取得して再表示
var result = {};
//クエリから、URL固定部分(?query=)を無視して取り出す
var query = window.location.search.substring(7);
//フィールドコード名と検索キーワードに分割する
for(var i = 0;i < query.length;i++){
var element = query[i].split('like');
var param_field_code = encodeURIComponent(element[0]);
var param_search_word = encodeURIComponent(element[1]);

//空白スペースを取り除いて、配列に格納
result[param_field_code.replace(/^\s+|\s+$/g, "")] = param_search_word.replace(/^[\s|\"]+|[\s|\"]+$/g, "");
}

//検索キーワード
var search_word = document.createElement('input');
search_word.type = 'text';

//検索ボタン
var search_button = document.createElement('input');
search_button.type = 'submit';
search_button.value = 'search';
search_button.onclick = function () {
keyword_search();
};

//キーワード検索の関数
function keyword_search(){
var keyword = search_word.value;
var str_query = '?query='+ FIELD_CODE +' like "' + keyword;

if(keyword === ""){
str_query = "";
}else if(keyword !== ""){
str_query = '?query='+ FIELD_CODE +' like "' + keyword + '"';
}

//検索結果のURLへ
document.location = location.origin + location.pathname + str_query
}

//重複を避けるため要素をあらかじめクリアしておく
var node_space = kintone.app.getHeaderMenuSpaceElement()
for (var j =node_space.childNodes.length-1; j>=0; j--) {
node_space.removeChild(node_space.childNodes[j]);
}
var label = document.createElement('label');
label.appendChild(document.createTextNode('レコード内検索'));
label.appendChild(document.createTextNode(' '));
label.appendChild(search_word);
label.appendChild(document.createTextNode(' '));
label.appendChild(search_button);
kintone.app.getHeaderMenuSpaceElement().appendChild(label);

return event;
});
})();
------------------------

上記ソースを適用すると「(作業者が自分)」の一覧には、以下のように検索窓が表示されます。コンソールにはエラー出力ありません。

 

しかし、他の一覧には以下のように検索窓が表示されません。コンソールにはエラー出力がありました。

 

0
Avatar
村濱一樹

128行目でエラーってでてるようにみえますがそもそも128行もないのでは、、。

もしかして他にもJSカスタマイズやプラグインつかってて、そこでエラーがでておかしくなってたりするんですかね。。

上記コードをコピって自分の環境でためすと普通にうごきますね。

村濱一樹により編集されました
0
Avatar
雨宮雅人

村濱様

コメントありがとうございます。

一度、全てのJSを削除して検索窓のJSのみを適用したところ、正しく動作するようになりました。

他にもいくつかJSカスタマイズしており、そこに問題があったようです。

お力添えありがとうございました。大変勉強になりました。

 

0
Avatar
村濱一樹

解決したようでよかったです!

よくあるパターンだと思いますので、次回なにか動作しないことがあったら同じように試すのを心がけると解決がはやくなるかもしれません。

1. エラーがでているか確認し掘り下げる

2. 他のJSやプラグインをつけている場合はつけていない状態でためす

0
サインインしてコメントを残してください。