如何禁止更改记录

假设我们有一个的数据表,它含有一个 boolean 类型的字段 “posted” 。 如果该字段的值是 真(true) ,就必须禁止或删除记录。

我们可以通过编写 on_after_scroll 事件处理程序,同时结合使用 permissions 的属性来实现。

function on_after_scroll(item) {
    if (item.rec_count) {
        item.permissions.can_edit = !item.posted.value;
        item.permissions.can_delete = !item.posted.value;
        if (item.view_form) {
            item.view_form.find("#delete-btn").prop("disabled", item.posted.value);
        }
    }
}

在上面的事件处理程序里,我们检查 “posted” 字段的值, 然后设置 permissions 的属性来实现。

我们也可以在服务端的模块中编写 on_apply 事件处理程序来实现同样的目的:

def on_apply(item, delta, params, connection):
  for d in delta:
      if d.posted.old_value:
          raise Exception('Document posted. No change allowed')