カテゴリー内の他の記事

レコード一覧イベント

フォローする

Index

イベント

eventオブジェクトで実行できる操作

その他

イベント


レコード一覧画面の表示後イベント

レコード一覧画面を表示するときに発生するイベントです。

  • PC用とスマートフォン用で利用できます。
  • スペースに貼りつけたアプリには利用できません。

イベントタイプ

環境 イベントタイプ イベントが発生するタイミング
PC用 app.record.index.show
  • レコード一覧画面の表示時
  • レコード一覧画面でページ送りした時
  • レコード一覧画面でフィールド名をクリックし、ソートした時 ※1
  • レコード一覧画面の絞り込み条件を適用した時
  • レコード一覧画面でカテゴリーを変更した時
  • レコード一覧画面で月送りしたとき(矢印ボタンによる切り替え)※2
  • レコード一覧画面で年・月プルダウンにより年または月を変更したとき ※2
スマートフォン用

mobile.app.record.index.show

  • レコード一覧画面の表示時
  • レコード一覧画面でページ送りした時
  • レコード一覧画面でフィールド名をクリックし、ソートした時 ※1
  • レコード一覧画面でカテゴリーを変更した時 
  • レコード一覧画面で月送りしたとき(矢印ボタンによる切り替え)※2
  • レコード一覧画面で年・月プルダウンにより年または月を変更したとき ※2

※1 レコード一覧の表示形式が「表形式」の場合のみ。
※2 レコード一覧の表示形式が「カレンダー」の場合のみ。

eventオブジェクトのプロパティ

PC用、スマートフォン用で同一の内容となります。

プロパティ名 説明
appId 数値 アプリID
viewType 文字列 'list' または 'calendar' または 'custom'
viewId 数値 ビューID
viewName 文字列 ビュー名
records 配列 またはオブジェクト

viewType によって下記の値となる
・list : レコードオブジェクトの配列
・calendar : キーを日付文字列、値をレコードオブジェクトの配列としたオブジェクト。

例:

{
    "2013-12-01": [record1, record2],
    "2013-12-20": [record1]
}

・custom かつ ページネーションがtrue : レコードオブジェクトの配列
・custom かつ ページネーションがfalse : 空配列

offset 数値

viewType によって下記の値となる
・list : 一覧のオフセット数
・calendar : null
・custom かつ ページネーションがtrue : 一覧のオフセット数
・custom かつ ページネーションがfalse : 0

size 数値 viewType によって下記の値となる
・list : 一覧のレコード数
・calendar : null
・custom かつ ページネーションがtrue : 一覧のレコード数
・custom かつ ページネーションがfalse : 0
date 文字列 viewType によって下記の値となる
・calendar : カレンダービューの表示月。2013年 6月なら "2013-06"
・calendar以外 : null
type 文字列

イベントタイプ

eventオブジェクトで実行できる操作

ありません。

サンプル

レコード一覧画面の表示時にメッセージを表示します。

レコード一覧画面のインライン編集の保存実行前イベント

レコード一覧画面でインライン編集の保存ボタンをクリックしたあとに発生するイベントです。

  • PC用のみで利用できるイベントです。
  • スペースに貼りつけたアプリでは発生しません。
  • falseをreturnすると保存処理をキャンセルできます。
  • フィールドにエラーを表示するレコードにエラーを表示するのようにerrorプロパティに値を設定したeventオブジェクトをreturnすると保存処理をキャンセルできます。
  • kintone.Promiseオブジェクトをreturnすると、非同期処理の実行を待ってイベントの処理を開始します。

イベントタイプ

app.record.index.edit.submit

eventオブジェクトのプロパティ

PC用、スマートフォン用で同一の内容となります。

プロパティ名 説明
appId 数値 アプリID
recordId 数値 レコードID
record オブジェクト ユーザー入力のデータを保持したレコードオブジェクト
type 文字列 イベントタイプ

eventオブジェクトで実行できる操作

非同期処理の実行を待ってeventオブジェクトで実行できる操作を行う

kintone.Promiseオブジェクトをreturnすることにより、非同期処理の実行を待ってからeventオブジェクトで実行できる操作を実行することができます。
記述方法はレコード追加画面の保存実行前イベントを参考にしてください。

注意事項

イベント処理の記述方法の注意事項をご確認下さい。

レコード一覧画面のインライン編集の保存成功後イベント

レコード一覧画面のインライン編集の保存がサーバー側で成功した後に発生します。

  • PC用のみで利用できます。
  • スペースに貼りつけたアプリでは利用できません。
  • kintone.Promiseオブジェクトをreturnすると、非同期処理の実行を待つことができます。
  • 保存が失敗した場合にはイベントが実行されません。

イベントタイプ

app.record.index.edit.submit.success

eventオブジェクトのプロパティ

PC用、スマートフォン用で同一の内容となります。

プロパティ名 説明
appId 数値 アプリID
recordId 数値 レコードID
record オブジェクト ユーザー入力のデータを保持したレコードオブジェクト
type 文字列 イベントタイプ

urlプロパティの指定

eventオブジェクトにurlプロパティを指定してeventをreturnすると、イベント処理後にそのURLに遷移します。

url プロパティの指定なし、またはnullを指定した場合は、通常通りレコード一覧のまま遷移しません。

例えば、次のように記載すると、保存成功後に画面が「http://cybozu.co.jp/」に遷移します。

eventオブジェクトで実行できる操作

ありません。

サンプル

レコード一覧画面のインライン編集開始時イベント

レコード一覧画面のインライン編集で、任意のレコードのインライン編集が開始された時に発生します。

  • PC用のみで利用できます。
  • スペースに貼りつけたアプリでは利用できません。

イベントタイプ

app.record.index.edit.show

eventオブジェクトのプロパティ

PC用、スマートフォン用で同一の内容となります。

プロパティ名 説明
appId 数値 アプリID
record オブジェクト インライン編集開始時のデータを保持したレコードオブジェクト
recordId 数値 レコードID
type 文字列 イベントタイプ

eventオブジェクトで実行できる操作

レコード一覧画面のフィールド値変更時イベント

レコード一覧画面のインライン編集で指定フィールドの値が変更された時、フォームの値の書き換え時に発生するイベントです。

  • PC用のみで利用できます。
  • スペースに貼りつけたアプリでは利用できません。
  • トリガーとなった値の変更はキャンセルされません。

イベントタイプ

app.record.index.edit.change.<フィールドコード>

フィールドコードに指定可能なフィールド

<フィールドコード>に存在するフィールドコード、かつ次の種類のフィールドを指定した場合のみハンドラーが実行されます。 存在しないフィールドコード、または下記の種類以外のフィールドを指定した場合は何も発生しません。

  • ラジオボタン
  • ドロップダウン
  • チェックボックス
  • 複数選択
  • ユーザー選択
  • 組織選択
  • グループ選択
  • 日付
  • 時刻
  • 日時
  • 文字列(1行)
  • 数値
  • テーブル

※文字列(1行)と数値フィールドに関して、イベントが発生するタイミングは以下の通りです。ブラウザによって少し挙動が異なります。

  • コントロールからフォーカスが外れたタイミング
  • ルックアップで値がコピーされたタイミング
  • 文字列(1行)フィールドで「自動計算する」設定になっている場合は、自動計算が反映されたタイミング(レコード一覧画面の編集時は、自動計算処理自体が無効なため対象外)

※テーブルフィールドに関して、イベントが発生するタイミングは以下の通りです。

  • テーブルの行追加、行削除ボタンがクリックされたタイミング

eventオブジェクトのプロパティ

PC用、スマートフォン用で同一の内容となります。

プロパティ名 説明
appId 数値 アプリID
record オブジェクト イベント発生時点のユーザー入力のデータを保持したレコードオブジェクト
recordId 数値 レコードID
changes オブジェクト 変更されたオブジェクト
changes.field オブジェクト 変更されたフィールドのオブジェクト
type 文字列 イベントタイプ

eventオブジェクトで実行できる操作

注意事項

イベント処理の記述方法の注意事項をご確認下さい。

レコード一覧画面のレコード削除前イベント

レコード一覧画面で削除ボタンをクリックしてポップアップの「削除する」をクリックしたあと発生します。

  • PC用のみで利用できます。
  • スペースに貼りつけたアプリでは利用できません。
  • false を return すると削除処理をキャンセルできます
  • kintone.Promiseオブジェクトをreturnすると、非同期処理の実行を待ってイベントの処理を開始します。

イベントタイプ

app.record.index.delete.submit

eventオブジェクトのプロパティ

PC用、スマートフォン用で同一の内容となります。

プロパティ名 説明
appId 数値 アプリID
record オブジェクト 削除対象のレコードデータを保持したレコードオブジェクト
recordId 数値 レコードID
type 文字列 イベントタイプ

サンプル

kintone.Promiseオブジェクトをreturnすることで、非同期処理の実行を待ってからレコードの削除を実行できます。
次のサンプルはkintone.Promiseを利用しないケース、利用するケースです。記述方法はレコード追加画面の保存実行前イベントも参考にしてください。

kintone.Promise を利用しない場合

kintone.Promise を利用する場合

eventオブジェクトで実行できる操作


フィールドの値を書き換える

ハンドラーが record オブジェクトのフィールドの値を書き換えて event オブジェクトを return した場合、その値でフィールドの値を更新します。

  • PC用のみで利用できます。
  • スペースに貼りつけたアプリには利用できません。
  • フィールドの編集を不可にしても、値を書き換えることができます。
  • テーブルの行追加、削除はできません。
  • 追加権限のないフィールドの値を書き換えた場合はフォームには反映されません。
  • 最後のハンドラーが return しない場合、フィールドの値を更新しません。
  • 複数のハンドラーが登録されている場合、最後のハンドラーが return した戻り値を基準に反映されます。

サンプル

レコード一覧画面の「ドロップダウン_0」フィールドの値変更時に、「文字列_0」 フィールド、テーブル「Table」の1行目の「文字列_1」フィールドに初期値をセットします。

書き換えできないフィールド

以下のフィールドは、保存実行前イベントのハンドラーでフィールドの値を書き換えて return しても、フォームには反映されません。

  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者
  • 計算
  • 自動計算にした文字列1行
  • 添付ファイル
  • ルックアップ
  • ルックアップコピー先フィールド

フィールドの編集可/不可を設定する

ハンドラーが record オブジェクトのフィールドの disabled に true/falseを代入して event オブジェクトを return した場合は、そのフィールドは編集不可/可になります。

  • PC用のみで利用できます。
  • スペースに貼りつけたアプリには利用できません。
  • 編集権限のないフィールドを編集可能(disabled を false)にしても反映されません。

サンプル

「ドロップダウン_0」フィールドの値が変更になった時に、「文字列_0」 フィールドを編集不可にします。

編集可/不可にできないフィールド

以下のフィールドの値を編集可/不可を設定して return しても、フォームには反映されません。

  • 計算
  • ルックアップコピー先フィールド

フィールドにエラーを表示する

ハンドラーが record オブジェクトのフィールドの error にエラーメッセージを代入して event オブジェクトを return した場合、 フォームの値の書き換えと編集可/不可の設定はキャンセルされ、フィールドにエラーメッセージが表示されます。

  • PC用のみで利用できます。
  • スペースに貼りつけたアプリには利用できません。
  • フィールドの error に null を代入し event オブジェクトを return した場合、そのフィールドに表示されていたエラーを消すことができます。

サンプル

「文字列_0」フィールドにエラーを表示します。

以下のフィールドは、エラー値を設定してもエラーは発生しません。

  • レコード番号
  • 作成者
  • 作成日時
  • 更新者
  • 更新日時
  • ステータス
  • 作業者

レコードにエラーを表示する

ハンドラーが event オブジェクトの error にエラーメッセージを代入して event オブジェクトを return した場合、フィールドの値の書き換えと編集可/不可の設定はキャンセルされ、画面の上部にエラーメッセージが表示されます。

  • PC用のみで利用できます。
  • スペースに貼りつけたアプリには利用できません。

サンプル

レコード一覧画面の「保存ボタン」クリック時イベントでレコードにエラーを表示します。

変更されたフィールドやテーブル内の行オブジェクトを取得する

変更のあったフィールドを取得できます。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
三分一雅博

レコード一覧画面のレコード削除後のイベントはありませんでしょうか。例えば、一覧画面でレコード削除後に、画面をリロードさせたい場合はどうすれば良いでしょうか。

Avatar
もずく

三分一雅博さん

残念ですが、現状ではレコード削除後イベントは用意されていません。
現状ムリにでもやるというのであれば、「削除する?」ダイアログの「削除する」ボタンを押した時点から○秒経ったら発火する。というようなプログラムになるかと思います。

Avatar
三分一雅博

もずくさん

ご回答ありがとうございます。並び替えした時のように、表示イベントでも呼んでくれればと思ったんですが、ないものは仕方ないですね。ありがとうございます。

Avatar
kuma

レコード一覧画面表示後にビューIDを取得しようと思ってもできません。 

どこが悪いのでしょうか…

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


  var record = event.record;
    console.log(record['viewId']['value']);
    return event;


});

kumaにより編集されました
Avatar
cybozu Development team

kuma 様

お世話になっております。
cybozu developer network 事務局です。

viewId は event.record ではなく event 内に含まれていますので

event.viewId

で取得することができます。

なお、仕様以外の技術的な質問に関してはコミュニティをご活用いただければ幸いです。

Avatar
tanaka

一覧画面のページ遷移時のイベント取得はできないのでしょうか?

app.record.index.show でははじめに表示している一覧の情報しか取得できず

ページ遷移した先のレコード群に対してでボタンなどで処理を走らせようとしてもうまくいきません。

その時表示している一覧のレコードを取得するか、ページ遷移のタイミングで保持している内容を更新したいのですがそういったものはありますか?

Avatar
cybozu Development team

tanaka様

>一覧画面のページ遷移時のイベント取得はできないのでしょうか?

一覧画面のページ遷移時のイベントはありません。

>その時表示している一覧のレコードを取得するか、ページ遷移のタイミングで保持している内容を更新したいのですがそういったものはありますか?

申し訳ありませんが、既存の情報では確認できなかったため、コミュニティをご活用いただければ幸いです。

cybozu Development teamにより編集されました
ログインしてコメントを残してください。