レコード編集イベント

フォローする

Index

イベント

イベント発生時に実行できる操作

その他

イベント


レコード編集画面が表示された時のイベント

レコードの編集画面を表示した時に発生するイベントです。

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

関数

環境 関数 イベントが発生するタイミング
PC用 app.record.edit.show
  • アプリのレコード編集画面が表示された時
スマートフォン用 mobile.app.record.edit.show
  • レコード編集画面が表示された時

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

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

プロパティ名 説明
appId 数値 アプリID
record オブジェクト レコードオブジェクト
recordId 数値 レコードID

フィールドの値に応じた制御

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

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

 関数

環境 関数 イベントが発生するタイミング
PC用 app.record.edit.submit
  • レコード編集画面で保存ボタンをクリックした時

スマートフォン用

 

mobile.app.record.edit.submit
  • レコード編集画面で保存ボタンをクリックした時

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

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

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

フィールドの値に応じた制御

非同期処理の実行を待ってフィールドの値に応じた制御を行う

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

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

レコード編集画面で保存ボタンをクリックし、サーバーの保存が成功した後に発生します。

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

関数

app.record.edit.submit.success

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

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

urlプロパティの指定

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

url プロパティの指定なし、またはnullを指定した場合は、通常通りレコード詳細画面に遷移します。

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

フィールドの値に応じた制御

ありません。

サンプル

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

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

関数

環境 関数 イベントが発生するタイミング
PC用 app.record.edit.change.<フィールドコード>
  • レコード編集画面で、指定フィールドの値が変更された時、フォームの値を書き換えた時

スマートフォン用

 

mobile.app.record.edit.change.<フィールドコード>
  • レコード編集画面で、指定フィールドの値が変更された時、フォームの値を書き換えた時

イベントタイプの<フィールドコード>に指定可能なフィールド

app.record.create.change.<フィールドコード> と同様となります。

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

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

プロパティ名 説明
appId 数値 アプリID
record オブジェクト イベント発生時点のユーザー入力のデータを保持したレコードオブジェクト
recordId 数値 レコードID
changes オブジェクト 変更されたオブジェクト
changes.field オブジェクト 変更されたフィールドのオブジェクト
changes.row オブジェクト 変更されたテーブル行のオブジェクト
  • テーブルに行を追加した場合:change.row は 追加した行オブジェクトを参照します。
  • テーブルの行を削除した場合:change.row は null になります。
  • テーブル外のフィールドを変更した場合:change.row は null になります。

フィールドの値に応じた制御

イベント発生時に実行できる操作


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

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

  • PC用とスマートフォン用で利用できます。
  • スペースに貼りつけたアプリには利用できません。
  • ラジオボタンフィールドで空文字列を指定した場合、初期値の選択肢となります。
  • フィールドの編集を不可にしても、値を書き換えることができます。
  • 編集権限のないフィールドの値を書き換えた場合はフォームには反映されません。
  • 最後のハンドラーが return しない場合、フィールドの値を更新しません。
  • 複数のハンドラーが登録されている場合、最後のハンドラーが return した戻り値を基準に反映されます。

サンプル

レコード編集画面を開いた時に「文字列_0」 フィールド、テーブル「Table」の1行目の「文字列_1」フィールドに初期値をセットし、さらにテーブルの末尾に行を追加します。
※テーブルの行追加にはフィールドタイプの指定が必要です。PC用とスマートフォン用で利用できます。

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

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

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

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

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

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

サンプル

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

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

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

  • 計算
  • ルックアップコピー先フィールド(旧デザインのみ)

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

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

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

サンプル

「文字列_0」フィールドとテーブル「Table」の1行目の「文字列_1」フィールドにエラーを表示します。

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

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

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

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

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

 

ルックアップの取得を自動で行う

ルックアップフィールドの lookupプロパティを trueにすると、レコードに値をセットする時にルックアップの取得を実行します。

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

サンプル

レコード編集画面を開いた時に「ルックアップ」フィールドに値を入れてデータを取得します。

フィールドの表示/非表示を切り替える

  • PC用とスマートフォン用で利用できます。

関数

環境 関数 説明
PC用 kintone.app.record.setFieldShown("フィールドコード","true/false")
  • フィールドの表示/非表示を切り替えます。関数の第一引数にフィールドコード,第二引数にtrue/falseを指定します。
    trueを指定すると表示、falseを指定すると非表示になります。

スマートフォン用

 

kintone.mobile.app.record.setFieldShown("フィールドコード","true/false")
  • フィールドの表示/非表示を切り替えます。関数の第一引数にフィールドコード,第二引数にtrue/falseを指定します。
    trueを指定すると表示、falseを指定すると非表示になります。

サンプル

レコード編集画面の表示時に、フィールドコード「文字列__1行」を非表示にする例:

以下のフィールドは非表示にできません。

  • ラベル
  • 罫線
  • スペース
  • テーブル内のフィールド

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

変更のあったテーブル内の行オブジェクト、テーブル外のフィールドを取得できます。

  • PC用とスマートフォン用で利用できます。
  • スペースに貼りつけたアプリには利用できません。
  • rowオブジェクトは、テーブル内のイベント時のみ取得できます。
  • テーブル内の行を削除した際には、rowオブジェクトは null になります。

その他


関連Tips

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

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

Avatar
EJM

レコード編集画面で保存ボタンをクリックした時の関数はapp.record.edit.submitとありますが、

キャンセルボタンをクリックしたときの関数は何になりますでしょうか?

app.record.edit.showイベントでメニュー上側の空白部分にユーザー向けの注意書きを表示して、保存またはキャンセル押下でその注意書きを非表示にしたいと思います。

保存ボタン押下時はapp.record.edit.submitで処理できましたが、キャンセルボタン押下時にボタンを非表示にする方法がわかりません。

よろしくお願いします。

Avatar
cybozu Development team

EJM様

キャンセルボタンをクリックした時のイベントはありません。

お手数ですが、要件の実現方法について、cybozu developer コミュニティで相談いただければと存じます。

その際、どういう目的でキャンセル押下時に注意書きを非常時にしたいのかもあわせて記述いただけると回答者が回答しやすいかと思います。

よろしくお願いいたします。

Avatar
EJM

cybozu Development team様

承知しました。必要が生じたら、コミュニティで相談してみます。

ただ、キャンセルボタン押下時のイベントもあると便利なので、今後のVer.UPの際に追加を検討いただけると、ありがたいです。

Avatar
cybozu Development team

EJM様

ご確認ありがとうございます。

製品のご要望については、ヘルプの?マークから「kintoneの改善に協力」から送信ができます。

開発者が確認しておりますので、ぜひご活用ください。

ログインしてコメントを残してください。
Powered by Zendesk