记录列表事件

aki发表于:2016年09月15日 11:15:39更新于:2019年02月02日 18:17:03

Index

事件

在事件发生时可执行的操作

其他

事件


记录列表页面显示后的事件

显示记录列表页面时发生的事件。

  • 可在PC专用版和智能手机专用版中使用。

  • 粘帖到空间中的应用不可使用。

函数(PC用)

app.record.index.show

发生的时机(PC专用)

  • 显示记录列表页面时

  • 在记录列表页面换页时

  • 在记录列表页面更改排序时

  • 在记录列表页面更改筛选条件时

event对象的属性(PC专用)

属性名类型说明
appId数值应用ID
viewType字符串'list'或者 'calendar'或者 '自定义'
viewId数值列表 ID
viewName字符串列表名称
records数组
或者
对象
如果viewType 为list,则是记录对象的数组。如果viewType为calendar,则是Key为日期字符串、值为记录对象的数组所组成的对象。例:
{
    "2013-12-01": [record1, record2],
    "2013-12-20": [record1]
}
offset数值列表的偏置值(viewType是'calendar'时为null)
size数值列表的记录条数(viewType是'calendar'时,为 null)
date字符串日历列表的月显示。如果是2013年 6月,则显示 "2013-06" (viewType为'list'时为 null )

函数(智能手机专用)

mobile.app.record.index.show

发生的时机(智能手机专用)

  • 显示记录列表页面时

  • 在记录添加页面中保存时

    • 因为在记录添加页面执行保存时,会显示记录列表页面,之后显示记录详情页面,所以会发生此事件。

event 对象的属性(智能手机专用)

属性名类型说明
appId数值应用ID
viewId数值列表 ID
viewName字符串列表名称

记录列表页面的行内编辑保存前的事件

在记录列表页面进行行内编辑并点击【保存】按钮后发生的事件。

  • 仅可在PC专用版上使用的事件。

  • 粘帖到空间中的应用不可使用。

  • kintone.Promise对象return时,将等待异步处理执行完后才开始事件处理。

函数

app.record.index.edit.submit

event 对象的属性

属性名类型说明
appId数值应用ID
recordId数值记录ID
record对象用于保存用户输入的数据的记录对象

根据字段的值执行不同的处理

等到异步处理执行完后再根据字段的值执行不同的处理

使用return kintone.Promise 对象的方法,可等待异步处理执行完后才开始根据字段的值执行不同的处理。
关于写法请参考记录添加页面在执行保存之前的事件

注意事项:

请查看有关事件处理的一些注意事项

记录列表页面的行内编辑保存成功后的事件

于2016/8 /14进行定期维护后开始可用的功能。

在服务器侧成功保存记录列表页面的行内编辑时发生。

  • 仅可在PC专用版上使用。

  • 粘帖到空间的应用中不可使用。

  • 使用return kintone.Promise对象的方法,可等待异步处理执行完成。

  • 保存失败时不执行事件。

函数

app.record.index.edit.submit.success

event 对象的属性

属性名类型说明
appId数值应用ID
recordId数值记录ID
record对象用于保存用户输入的数据的记录对象

指定url属性

给event对象指定url属性,并return event时,事件处理后页面将跳转至所指定的URL。

url属性未指定、或指定为null时,跟往常一样跳转到记录详情页面。

比如,像下面这样写的话,保存成功后将跳转至[https://www.cybozu.cn/] 。

根据字段的值执行不同的处理

无。

范例

kintone.events.on("app.record.index.edit.submit.success", function(ev)
{    
    var record = ev.record;    
    alert("更新时间为" + record["更新时间"]["value"] + " 。");    
});

记录列表页面的行内编辑开始时的事件

记录列表页面的行内编辑中,开始任意一条记录的行内编辑时发生。

  • 仅可在PC专用版上使用。

  • 粘帖到空间的应用中不可使用。

函数

app.record.index.edit.show

event 对象的属性

属性名类型说明
appId数值应用ID
record对象持有行内编辑开始时的数据的记录对象
recordId数值记录ID

根据字段的值执行不同的处理

在记录列表页面更改字段值时的事件

记录列表页面的行内编辑中指定字段的值被更改时,表单的值被重写时发生的事件。

  • 仅可在PC专用版上使用。

  • 粘帖到空间的应用中不可使用。

  • 作为触发器的值的更改不可取消。

函数

app.record.index.edit.change.< 字段代码>

字段代码中可指定的字段

app.record.create.change.< 字段代码> 一样。

event 对象的属性

属性名类型说明
appId数值应用ID
record对象用于保存事件发生时用户输入的数据的记录对象
recordId数值记录ID
changes对象发生更改的对象
changes.field对象发生更改的字段的对象

根据字段的值执行不同的处理

注意事项:

请查看有关事件处理的一些注意事项

在记录列表页面执行记录删除前的事件

在记录列表页面点击删除按钮并在弹出框点击【删除】之后发生。

  • 仅可在PC专用版上使用。

  • 粘帖到空间的应用中不可使用。

  • 使用对false 进行 return的方法,可取消删除处理

  • kintone.Promise对象return时,将等待异步处理执行完后才开始事件处理。

函数

app.record.index.delete.submit

event 对象的属性

属性名类型说明
appId数值应用ID
record对象用于保存要删除的记录数据的记录对象
recordId数值记录ID

范例

使用return kintone.Promise 对象的方法,可等待异步处理执行完成后再删除记录。
以下范例是使用kintone.Promise的情况和不使用的情况。写法请参考记录添加页面在执行保存之前的事件

//不使用kintone.Promise构造函数时    
kintone.events.on(['app.record.index.delete.submit'], function(event) {    
    var record = event.record;    
    if (!record['公司名称']['value']){    
        event.error = '无公司名称,无法删除。';    
    }    
    return event;    
});
//返回return false时不处理    
kintone.events.on(['app.record.index.delete.submit'], function(event) {    
    var record = event.record;    
    // 无公司名称时返回false    
    return (record['公司名称']['value']!== null);    
});
//使用kintone.Promise构造函数时    
kintone.events.on('app.record.index.delete.submit', function(event) {    
    var record = event.record;    
    var companyName = record['公司名称'].value;    
    // 确认企业管理中是否有公司名称    
    var masterAppId = 100;    
    var query = '公司名称="' + companyName + '"';    
    return new kintone.Promise(function(resolve,reject) {    
        var params = {app: masterAppId, query: query};    
        kintone.api('/k/v1/records', 'GET',params, function(resp){    
            resolve(resp);    
        });    
    }).then(function(resp) {    
        if (!resp.records.length) {    
            event.error = '无公司名称,无法删除。';    
        }    
        return event;    
    });    
});



在事件发生时可执行的操作


重写字段的值

在句柄中record 对象中的字段值重写后,return event 对象时,将使用此值更新字段的值。

  • 仅可在PC专用版上使用。

  • 粘帖到空间中的应用不可使用。

  • 在单选框字段中指定空字符串时,默认初始值选项。

  • 即使设为不可编辑字段,也可重写值。

  • 无法删除、添加表格的行。

  • 对无添加权限的字符的值进行重写时,不会应用到表单中。

  • 最后的句柄不return的情况,将不更新字段的值。

  • 添加多个句柄时,将以最后的句柄return回来的值为标准进行更新。

范例

更改记录列表页面的【下拉菜单_0】字段的值时,对【文本框_0】字段、表格【Table】第一行的【文本框_1】字段设置初始值。

kintone.events.on('app.record.index.edit.change.下拉菜单_0', function(event) {    
    var record = event.record;    
    record['文本框_0']['value'] = '用该字符串覆盖';    
    record['Table']['value'][0]['value']['文本框_1']['value'] = '覆盖表格第一条记录';    
    return event;    
});

无法重写的字段

以下字段即使使用句柄重写了字段的值并return,也不应用到表单中。

  • 记录编号

  • 创建人

  • 创建时间

  • 更新人

  • 更新时间

  • 状态

  • 执行者

  • 计算

  • 设置为自动计算的单行文本框

  • 附件

  • Lookup

  • Lookup的复制目标字段

设置字段的可/不可编辑

在句柄中对record对象的字段的disabled设置true/false,并对event 对象进行return时,该字段将变成可/不可编辑。

  • 仅可在PC专用版上使用。

  • 粘帖到空间中的应用不可使用。

  • 即使将无编辑权限的字段设为可编辑(disabled 设为 false),此设置也不会生效。

范例

【下拉菜单_0】字段的值发生更改时,将【文本框_0】字段设为不可编辑。

kintone.events.on('app.record.index.edit.change.下拉菜单_0', function(event) {
    var record = event.record;
    record['文字列_0']['disabled'] = true;
    return event;
});

无法设置可/不可编辑的字段

即使对以下字段的值设置可/不可编辑,并进行return,设置也不应用到表单。

  • 计算

  • 要通过Lookup复制的字段

在字段中报错

在句柄中对record对象的字段的error设置了错误信息,并return event 对象时,将取消表单的值的重写和可/不可编辑的设置,对字段显示错误信息。

  • 仅可在PC专用版上使用。

  • 粘帖到空间中的应用不可使用。

范例

在【文本框_0】字段中显示错误。

kintone.events.on('app.record.index.edit.submit', function(event) {    
    var record = event.record;    
    record['文本框_0']['error'] = '显示此错误信息';    
    return event;    
});

以下字段即使设置了错误信息,也不会报错。

  • 字段代码

  • 创建人

  • 创建时间

  • 更新人

  • 更新时间

  • 状态

  • 执行者

在记录中报错

在句柄中给event 对象的error定义错误信息后,return event对象时,将取消字段值的重写以及可/不可编辑的设置,在页面顶部显示错误信息。

  • 仅可在PC专用版上使用。

  • 粘帖到空间中的应用不可使用。

范例

在记录列表页面点击【保存】时的事件发生时在记录中显示错误。

kintone.events.on('app.record.index.edit.submit', function(event) {    
    event.error = '错误!';    
    return event;    
});

获取被更改的字段及表格内的行对象

获取发生了更改的字段。

  • 仅可在PC专用版上使用。

  • 粘帖到空间中的应用不可使用。

  • 仅可在表格内的事件发生时获取row对象。(记录列表时不可获取)

kintone.events.on('app.record.index.edit.change.下拉菜单_0', function(event) {    
    var field = event.changes.field;    
});

其他


相关Tips

    您需要登录后才可以回复