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

information

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

目錄

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

記錄清單畫面上的事件

顯示時 開始進行內聯編輯時 變更欄位的值時 儲存時 儲存後 刪除時
重寫欄位的值
設置欄位是否可編輯
在欄位中顯示錯誤
在畫面頂部顯示錯誤
轉換到指定的 URL
支援Promise

重寫欄位的值

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

  • 如果將欄位設置為不可編輯您仍然可以重寫該值。
    設置欄位是否可編輯
  • 如果您重寫了您無權編輯的欄位的值,則無法變更該欄位的值。
  • 如果註冊了同一事件類型的多個處理程式,則套用最後一個處理程式返回的值。
    如果最後的處理程式未返回事件物件,則不會反映欄位的值。
不支援的欄位
  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
  • 附件
  • 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 = '覆蓋表第一行';
  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'].disabled = true;
  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;
});

在畫面頂部顯示錯誤

若要在畫面頂部顯示錯誤消息,請在事件處理程式的欄位屬性 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;
});

記錄詳情畫面上的事件

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

重寫欄位的值

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

  • 若要重寫該值,您必須具有記錄的編輯許可權。
  • 如果在單選按鈕欄位中指定空字串,則選擇設置為單選按鈕預設值的選項。
  • 如果您重寫了您無權編輯的欄位的值,則無法變更該欄位的值。
  • 如果註冊了同一事件類型的多個處理程式,則套用最後一個處理程式返回的值。
    如果最後的處理程式未返回事件物件,則不會反映欄位的值。
不支援的欄位
  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
  • 附件
  • 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 = '覆蓋表第一行';
  return event;
});

在畫面頂部顯示錯誤

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

示例代碼

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

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

添加記錄畫面的事件

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

重寫欄位的值

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

  • 如果將欄位設置為不可編輯,您仍然可以重寫該欄位的值。
    設置欄位是否可編輯
  • 如果您重寫了您無權編輯的欄位的值,則無法變更該欄位的值。
  • 如果註冊了同一事件類型的多個處理程式,則套用最後一個處理程式返回的值。
    如果最後的處理程式未返回事件物件,則不會反映欄位的值。
不支援的欄位
  • 記錄號碼
  • 建立人
  • 建立時間
  • 更新人
  • 更新時間
  • 狀態
  • 執行者
  • 計算
  • 設置自動計算的單行文字方塊
  • 附件
  • 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 = '覆蓋表第一行';

  // 在表格末尾添加一行
  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 = 'https://cybozu.co.jp/';
  return event;
});

記錄編輯畫面的事件

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

重寫欄位的值

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

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

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

  • 單行文字方塊(網欄位代碼:單行文字方塊_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 = '覆蓋表第一行';
  return event;
});
不支援的欄位

當存儲預執行事件的處理程式重寫欄位的值並返回時,以下欄位不會反映在表單中:

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

設置欄位是否可編輯

若要將欄位設置為可編輯或不可編輯,請在事件處理程式中將欄位的 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 欄位的 Lookup_0屬性設置為「UPDATE」或「true」,並返回事件物件。

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定製的異步處理