可以用事件物件執行的操作

information

本頁面使用機器翻譯而成。
機器翻譯免責聲明 (External link)

目錄

對kintone的事件物件執行的操作進行說明。

記錄清單畫面上的事件

顯示時 開始進行內聯編輯時 變更欄位的值時 儲存時 儲存後 刪除時
重寫欄位的值 *1
將欄位設定為可編輯或不可編輯 *2
在欄位中顯示錯誤 *3
在畫面頂部顯示錯誤
轉換到指定的URL
支援Promise

*1 使用紀錄清單畫面的事件重寫欄位的值時,注意有 不支援的欄位 ^

*2 使用記錄清單畫面的事件設定欄位的可不可編輯時,注意有 不支援的欄位 ^

*3 使用記錄清單畫面的事件對特定欄位顯示錯誤時,注意有 不支援的欄位 ^

重寫欄位的值

若要重寫欄位的值,請在事件處理程式中變更記錄中欄位的值並返回事件物件。

  • 如果將欄位設置為不可編輯您仍然可以重寫該值。
    設置欄位是否可編輯
  • 重寫無權編輯的欄位的值時,則無法變更該欄位的值。
  • 如果註冊了同一事件類型的多個處理程式,則套用最後一個處理程式返回的值。
    如果最後的處理程式未返回事件物件,則不會反映欄位的值。
不支援的欄位

即使您重寫欄位的值並傳回,下列欄位的值也不會反映在表單中。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
  • 附件
  • Lookup
  • Lookup複製目標欄位
示例代碼

這是在下拉式選單(欄位代碼:下拉式選單_0)中變更欄位的值時重寫單行文字方塊(欄位代碼:單行文字方塊_0)的值的範例。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.下拉式選單_0', (event) => {
  const record = event.record;
  record['單行文字方塊_0'].value = '用這個字符串覆蓋';
  return event;
});

這是在下拉式選單的欄位值(欄位代碼:下拉式選單_0)發生變更時,重寫表格(欄位代碼:表格_0)第一行的單行文字方塊(欄位代碼:單行文字方塊_1)的文字值的示例。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.下拉式選單_0', (event) => {
  const tableRow = event.record['表格_0'].value;
  tableRow[0].value['單行文字方塊_1'].value = '覆蓋表格第1行';
  return event;
});

設置欄位是否可編輯

若要將欄位設置為可編輯或不可編輯,請在事件處理程式中將欄位的disabled屬性設置為布爾值,並返回事件物件。

  • 要使其可編輯:「false」
  • 要使其不可編輯:「true」

即使將無權編輯的欄位的disabled屬性設置為「false」,該欄位也不會變為可編輯。

不支援的欄位

下列欄位的值不會反映在表單中,即使您將其設定為[可編輯/不可編輯]並傳回。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
示例代碼

這是一個示例,當下拉式選單(欄位代碼:下拉式選單_0)的值發生變更時,在單行文字方塊(欄位代碼:單行文字方塊_0)不可編輯。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.下拉式選單_0', (event) => {
  const record = event.record;
  record['單行文字方塊_0'].disabled = true;
  return event;
});

在欄位中顯示錯誤

若要在欄位中顯示錯誤消息,請在事件處理程式的欄位屬性error中設置要顯示的消息,並返回事件物件。

不支援的欄位

設置錯誤消息時,以下欄位不會導致錯誤。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
示例代碼

這是一個示例,當下拉式選單(欄位代碼:下拉式選單_0)的值發生變更時,在單行文字方塊(欄位代碼:單行文字方塊_0)上顯示錯誤。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.下拉式選單_0', (event) => {
  const record = event.record;
  record['單行文字方塊_0'].error = '錯誤!';
  return event;
});

這是當下拉式選單(欄位代碼:下拉式選單_0)中的欄位值發生變更時,在表(欄位代碼:表格_0)的第一行的單行文字方塊(欄位代碼:單行文字方塊_1)中顯示錯誤的示例。

1
2
3
4
5
kintone.events.on('app.record.index.edit.change.下拉式選單_0', (event) => {
  const tableRow = event.record['表格_0'].value;
  tableRow[0].value['單行文字方塊_1'].error = '錯誤!';
  return event;
});

在畫面頂部顯示錯誤

若要在畫面頂部顯示錯誤消息,請在事件處理程式內對event的error屬性設置要顯示的消息,並返回事件物件。

示例代碼

這是一個示例,當下拉式選單(欄位代碼:下拉式選單_0)中的欄位值發生變更時,在畫面頂部顯示錯誤。

1
2
3
4
kintone.events.on('app.record.create.change.下拉式選單_0', (event) => {
  event.error = '錯誤!';
  return event;
});

轉換到指定的URL

若要在處理事件後轉換到指定的URL,請在事件處理程式url的屬性中設置要轉換到的URL,並返回事件物件。

  • 如果設置為「null」,則不會發生畫面轉換。
示例代碼

這是成功存儲記錄後轉換為「https://cybozu.co.jp」的範例。

1
2
3
4
kintone.events.on('app.record.index.edit.submit.success', (event) => {
  event.url = 'https://cybozu.co.jp';
  return event;
});

記錄詳情畫面上的事件

顯示時 刪除時 在流程管理中執行動作時
重寫欄位的值 *4
在畫面頂部顯示錯誤
支援Promise

*4 使用記錄詳情頁面事件改寫欄位的值時,注意有 不支援的欄位 ^

重寫欄位的值

若要重寫欄位的值,請在事件處理程式中變更記錄中欄位的值並返回事件物件。

  • 若要重寫該值,您必須具有記錄的編輯權限。
  • 如果在單選按鈕欄位中指定空字串,則默認選中單選按鈕預設值。
  • 重寫無權編輯的欄位的值時,無法變更該欄位的值。
  • 如果註冊了同一事件類型的多個處理程式,則套用最後一個處理程式返回的值。
    如果最後的處理程式未返回事件物件,則不會反映欄位的值。
不支援的欄位

即使您重寫欄位的值並傳回,下列欄位的值也不會反映在表單中。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
  • 附件
  • Lookup
  • Lookup複製目標欄位
示例代碼

這是在執行流程管理的動作後,變更為下一個狀態時重寫單行文字方塊(欄位代碼:單行文字方塊_0)的值的範例。

1
2
3
4
5
kintone.events.on('app.record.detail.process.proceed', (event) => {
  const record = event.record;
  record['單行文字方塊_0'].value = '用這個字符串覆蓋';
  return event;
});

這是一個示例,當執行流程管理的動作後變更為下一個狀態時,重寫表(欄位代碼:表格_0)第一行的單行文字方塊(欄位代碼:``單行文字方塊_1`)的值。

1
2
3
4
5
6
kintone.events.on('app.record.detail.process.proceed', (event) => {
  const record = event.record;
  const tableRow = record['表格_0'].value;
  tableRow[0].value['單行文字方塊_1'].value = '覆蓋表格第1行';
  return event;
});

在畫面頂部顯示錯誤

若要在畫面頂部顯示錯誤消息,請在事件處理程式的欄位屬性error中設置要顯示的消息,並返回事件物件。

示例代碼

這是在記錄詳情畫面上刪除記錄時在記錄上顯示錯誤的範例。

1
2
3
4
kintone.events.on('app.record.detail.delete.submit', (event) => {
  event.error = '錯誤';
  return event;
});

添加記錄畫面的事件

顯示時 變更欄位的值時 儲存時 儲存後
重寫欄位的值 *5 *6
將欄位設定為可編輯或不可編輯 *7
在欄位中顯示錯誤 *8
在畫面頂部顯示錯誤
自動獲取Lookup
自動清除Lookup複製目標欄位的值
獲取值已變更的欄位或表行的欄位資料
轉換到指定的URL
支援Promise

*5 使用新增記錄畫面的事件重寫欄位的值時,注意有 不支援的欄位 ^

*6 您可使用新增記錄畫面的顯示後事件,重寫欄位的值,以變更查閱欄位的值。 ^

*7 使用新增記錄畫面的事件設定欄位的可編輯性或不可編輯性時,注意有 不支援的欄位 ^

*8 使用新增記錄畫面的事件對特定欄位提示錯誤時,注意有 不支援的欄位 ^

重寫欄位的值

若要重寫欄位的值,請在事件處理程式中變更記錄中欄位的值並返回事件物件。

  • 如果將欄位設置為不可編輯,您仍然可以重寫該欄位的值。
    設置欄位是否可編輯
  • 重寫無權編輯的欄位的值時,無法變更該欄位的值。
  • 如果註冊了同一事件類型的多個處理程式,則套用最後一個處理程式返回的值。
    如果最後的處理程式未返回事件物件,則不會反映欄位的值。
不支援的欄位

即使您重寫欄位的值並傳回,下列欄位的值也不會反映在表單中。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
  • 附件
  • Lookup
  • Lookup複製目標欄位
示例代碼

這是在單行文字方塊(欄位代碼:單行文字方塊_0)上設置初始值的範例。

1
2
3
4
5
kintone.events.on('app.record.create.show', (event) => {
  const record = event.record;
  record['單行文字方塊_0'].value = '用這個字符串覆蓋';
  return event;
});

執行以下操作的範例:

  • 在表的第一行(欄位代碼:表格_0)的單行文字方塊(欄位代碼:單行文字方塊_1)中設置初始值。
  • 在表格的末尾添加一行。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
kintone.events.on('app.record.create.show', (event) => {
  const record = event.record;
  const tableRow = record['表格_0'].value;
  tableRow[0].value['單行文字方塊_1'].value = '覆蓋表格第1行';

  // 表格の末尾に行を追加する
  const newRow = {
    value: {
      單行文字方塊_1: {
        type: 'SINGLE_LINE_TEXT', // 在表中添加一行,需要指定欄位類型
        value: '要添加到表中的行',
      },
    },
  };
  tableRow.push(newRow);
  return event;
});

設置欄位是否可編輯

若要將欄位設置為可編輯或不可編輯,請在事件處理程式中將欄位的disabled屬性設置為布爾值,並返回事件物件。

  • 要使其可編輯:「false」
  • 要使其不可編輯:「true」

即使將無權編輯的欄位的disabled屬性設置為「false」,該欄位也不會變為可編輯。

不支援的欄位

下列欄位的值不會反映在表單中,即使您將其設定為[可編輯/不可編輯]並傳回。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
示例代碼

這是一個示例,當下拉式選單(欄位代碼:下拉式選單_0)的值發生變更時,在單行文字方塊(欄位代碼:單行文字方塊_0)不可編輯。

1
2
3
4
5
kintone.events.on('app.record.create.change.下拉式選單_0', (event) => {
  const record = event.record;
  record['單行文字方塊_0'].disabled = true;
  return event;
});

在欄位中顯示錯誤

若要在欄位中顯示錯誤消息,請在事件處理程式的欄位屬性error中設置要顯示的消息,並返回事件物件。

不支援的欄位

設置錯誤消息時,以下欄位不會導致錯誤。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
示例代碼

這是一個示例,當下拉式選單(欄位代碼:下拉式選單_0)的值發生變更時,在單行文字方塊(欄位代碼:單行文字方塊_0)上顯示錯誤。

1
2
3
4
5
kintone.events.on('app.record.create.change.下拉式選單_0', (event) => {
  const record = event.record;
  record['單行文字方塊_0'].error = '顯示此錯誤消息';
  return event;
});

這是當下拉式選單(欄位代碼:下拉式選單_0)中的欄位值發生變更時,在表(欄位代碼:表格_0)的第一行的單行文字方塊(欄位代碼:單行文字方塊_1)中顯示錯誤的示例。

1
2
3
4
5
6
kintone.events.on('app.record.create.change.下拉式選單_0', (event) => {
  const record = event.record;
  const tableRow = record['表格_0'].value;
  tableRow[0].value['單行文字方塊_1'].error = '表的第一行出錯';
  return event;
});

在畫面頂部顯示錯誤

若要在畫面頂部顯示錯誤消息,請在事件處理程式的欄位屬性error中設置要顯示的消息,並返回事件物件。

示例代碼

這是一個示例,當下拉式選單(欄位代碼:下拉式選單_0)中的欄位值發生變更時,在畫面頂部顯示錯誤。

1
2
3
4
kintone.events.on('app.record.create.change.下拉式選單_0', (event) => {
  event.error = '錯誤!';
  return event;
});

自動獲取Lookup

若要自動給Lookup的複製目標欄位設置值,請在Lookup欄位的lookup屬性設置為「UPDATE」或「true」,並返回事件物件。

  • 只有當Lookup只有一個搜尋結果時,才能自動獲取。
示例代碼

這是在打開新增記錄畫面時通過在Lookup中設置值(欄位代碼:Lookup_0)來獲取數據的範例。

1
2
3
4
5
6
7
kintone.events.on('app.record.create.show', (event) => {
  const record = event.record;
  record.Lookup_0.value = '0001';
  record.Lookup_0.lookup = true;
  // 或者record['Lookup_0'].lookup = 'UPDATE';
  return event;
});

自動清除Lookup複製目標欄位的值

若要自動清除Lookup複製目標欄位的值,請在Lookup欄位的lookup屬性設置為「CLEAR」並返回事件物件。

示例代碼

這是在打開新增記錄畫面時清空要複製Lookup的欄位(欄位代碼:Lookup_0)的值的範例。

1
2
3
4
5
kintone.events.on('app.record.create.show', (event) => {
  const record = event.record;
  record.Lookup_0.lookup = 'CLEAR';
  return event;
});

獲取值已變更的欄位或表行的欄位資料

獲取已變更的欄位或表行中的欄位的資料。

  • row屬性只能在表中發生事件時可獲取。
  • 刪除表中的行時,row該屬性為「null」。
示例代碼

這是在記錄編輯畫面上變更下拉式選單(欄位代碼:下拉式選單_0)的值時,獲取已變更的表的行資料的範例。

1
2
3
4
5
kintone.events.on('app.record.create.change.下拉式選單_0', (event) => {
  const row = event.changes.row;
  const field = event.changes.field;
  return event;
});

轉換到指定的URL

若要在處理事件後轉換到指定的URL,請在事件處理程式url的屬性中設置要轉換到的URL,並返回事件物件。

  • 如果設置為「null」,則不會發生畫面轉換。
示例代碼

這是成功存儲記錄後轉換為「https://cybozu.co.jp」的範例。

1
2
3
4
kintone.events.on('app.record.create.submit.success', (event) => {
  event.url = 'http://cybozu.co.jp/';
  return event;
});

記錄編輯畫面的事件

顯示時 變更欄位的值時 儲存時 儲存後
重寫欄位的值 *9 *10 ×
將欄位設定為可編輯或不可編輯 *11 × ×
在欄位中顯示錯誤 *12 ×
在畫面頂部顯示錯誤 ×
自動獲取Lookup × ×
自動清除Lookup複製目標欄位的值 × ×
獲取值已變更的欄位或表行的欄位資料 × × ×
轉換到指定的URL × × ×
支援Promise ×

*9 使用記錄編輯畫面的事件重寫欄位的值時,注意有 不支援的欄位 ^

*10 使用記錄編輯畫面顯示後的事件重寫欄位的值時,可變更Lookup欄位的值。 ^

*11 使用記錄編輯畫面的事件設定欄位可不可編輯時,注意有 不支援的欄位 ^

*12 使用記錄編輯畫面的事件對特定欄位提示錯誤時,注意有 不支援的欄位 ^

重寫欄位的值

若要重寫欄位的值,請在事件處理程式中變更記錄中欄位的值並返回事件物件。

  • 如果將欄位設置為不可編輯,您仍然可以重寫該欄位的值。
    設置欄位是否可編輯
  • 重寫無權編輯的欄位的值時,無法變更該欄位的值。
  • 如果註冊了同一事件類型的多個處理程式,則套用最後一個處理程式返回的值。
    如果最後的處理程式未返回事件物件,則不會反映欄位的值。
不支援的欄位

即使您重寫欄位的值並傳回,下列欄位的值也不會反映在表單中。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
  • 附件
  • Lookup
  • Lookup複製目標欄位
示例代碼

這是在打開記錄編輯畫面時為以下欄位設置初始值的範例。

  • 單行文字方塊(網欄位代碼:單行文字方塊_0
  • 表格(欄位代碼:表格_0)第一行中的單行文字方塊(欄位代碼:單行文字方塊_1
1
2
3
4
5
6
7
kintone.events.on('app.record.edit.show', (event) => {
  const record = event.record;
  record['單行文字方塊_0'].value = '用這個字符串覆蓋';
  const tableRow = record['表格_0'].value;
  tableRow[0].value['單行文字方塊_1'].value = '覆蓋表格第1行';
  return event;
});

設置欄位是否可編輯

若要將欄位設置為可編輯或不可編輯,請在事件處理程式中將欄位的disabled屬性設置為布爾值,並返回事件物件。

  • 要使其可編輯:「false」
  • 要使其不可編輯:「true」

即使將無權編輯的欄位的disabled屬性設置為「false」,該欄位也不會變為可編輯。

不支援的欄位

下列欄位的值不會反映在表單中,即使您將其設定為[可編輯/不可編輯]並傳回。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
示例代碼

這是一個示例,當下拉式選單(欄位代碼:下拉式選單_0)的值變更時,使一行文本(欄位代碼:單行文字方塊_0)不可編輯。

1
2
3
4
kintone.events.on('app.record.edit.change.下拉式選單_0', (event) => {
  event.record['單行文字方塊_0'].disabled = true;
  return event;
});

在欄位中顯示錯誤

若要在欄位中顯示錯誤消息,請在事件處理程式的欄位屬性error中設置要顯示的消息,並返回事件物件。

不支援的欄位

設置錯誤消息時,以下欄位不會導致錯誤。

  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
示例代碼

這是在以下欄位中顯示錯誤的範例:

  • 單行文字方塊(網欄位代碼:單行文字方塊_0
  • 表格(欄位代碼:表格_0)第一行中的單行文字方塊(欄位代碼:單行文字方塊_1
1
2
3
4
5
6
7
kintone.events.on('app.record.edit.change.下拉式選單_0', (event) => {
  const record = event.record;
  record['單行文字方塊_0'].error = '顯示此錯誤消息';
  const tableRow = record['表格_0'].value;
  tableRow[0].value['單行文字方塊_1'].error = '表的第一行出錯';
  return event;
});

在畫面頂部顯示錯誤

若要在畫面頂部顯示錯誤消息,請在事件處理程式的欄位屬性error中設置要顯示的消息,並返回事件物件。

示例代碼

這是一個示例,當下拉式選單(欄位代碼:下拉式選單_0)中的欄位值發生變更時,在畫面頂部顯示錯誤。

1
2
3
4
kintone.events.on('app.record.edit.change.下拉式選單_0', (event) => {
  event.error = '錯誤!';
  return event;
});

自動獲取Lookup

若要自動給Lookup的複製目標欄位設置值,請在Lookup欄位的lookup屬性設置為「UPDATE」或「true」,並返回事件物件。

  • 只有當Lookup只有一個搜尋結果時,才能自動獲取。
  • 可在電腦和行動裝置上使用。
示例代碼

以下是在顯示紀錄編輯畫面時,給Lookup欄位(欄位代碼:Lookup_0)設置值,以獲取資訊的例子。

1
2
3
4
5
6
kintone.events.on('app.record.edit.show', (event) => {
  const record = event.record;
  record.Lookup_0.value = '0001'; // Lookup欄位值
  record.Lookup_0.lookup = true; // 或record['Lookup_0'].lookup = 'UPDATE';
  return event;
});

自動清除Lookup複製目標欄位的值

若要自動清除Lookup複製目標欄位的值,請在Lookup欄位的lookup屬性設置為「CLEAR」並返回事件物件。

  • 可在電腦和行動裝置上使用。
示例代碼

這是在顯示記錄編輯畫面時清空Lookup(欄位代碼:Lookup_0)的複製目標欄位值的範例。

1
2
3
4
5
kintone.events.on('app.record.edit.show', (event) => {
  const record = event.record;
  record.Lookup_0.lookup = 'CLEAR';
  return event;
});

獲取值已變更的欄位或表行的欄位資料

獲取已變更的欄位或表行中的欄位的資料。

  • row屬性只能在表中發生事件時可獲取。
  • 刪除表中的行時,row該屬性為「null」。
示例代碼

這是在記錄編輯畫面上變更下拉式選單(欄位代碼:下拉式選單_0)的值時,獲取已變更的表的行資料的範例。

1
2
3
4
5
kintone.events.on('app.record.edit.change.下拉式選單_0', (event) => {
  const row = event.changes.row;
  const field = event.changes.field;
  return event;
});

轉換到指定的URL

若要在處理事件後轉換到指定的URL,請在事件處理程式url的屬性中設置要轉換到的URL,並返回事件物件。

  • 如果設置為「null」,則不會發生畫面轉換。
示例代碼

這是成功存儲記錄後轉換為「https://cybozu.co.jp」的範例。

1
2
3
4
5
kintone.events.on('app.record.edit.submit.success', (event) => {
  event.url = 'https://cybozu.co.jp/';
  console.log('url: ' + event.url);
  return event;
});

事件通用

支援Primise

通過返回網路瀏覽器的Promise,可以等待異步操作完成後,對欄位的值進行操作。
如果為同一個kintone事件註冊了多個事件處理程式,並且Thenable對象因錯誤而被拒絕,則後續的事件處理程式將不會執行。

程式碼的寫法請參考以下頁面。
我們來試試kintone定製的異步處理 (日語)