on_open
on_open(item, params)
使用范围: server
编程语言: python
父类: Item 类
描述说明
请参考 版本 7 中的 on_before_open 和
on_after_open 。
当您需要重写在 client 或 server 上执行 open 方法期间从数据集中获取记录的标准过程时,
请编写
on_open、on_bforee_open和on_after_open事件处理程序。
参阅 on_open_events 以理解如何触发 on_open 事件。
on_open 事件处理程序有如下参数:
item- 实体项的引用params- 字典,它包含使用 open 方法传递给服务端的参数:__expanded- 对应服务端 open 方法的expanded参数, 或是客户端:doc:open </refs/client/item/m_open> 方法的 options 参数中的 ``expanded``属性。__fields- 字段名称的列表__filters- 实体项列表。每个实体项都是一个包含以下成员的列表:字段名称
来自 过滤记录 中的过滤器常量
过滤器的值
__funcs- 函数字典__order- 实体项的列表。每个实体项都是一个包含以下成员的列表:字段名称
逻辑值( ture 或 false ), 如果为 ture ,则顺序为降序
__offset- 对应于 open 方法的 offset 参数__limit- 对应于 open 方法的 limit 参数__client_request- 当请求来自客户端时,其值为 true
params还可以包括传递给 open 方法的用户定义参数。
以下是发票实体项的客户端 open 方法发送到服务端的参数示例:
{
'__fields': [u'id', u'deleted', u'customer', u'firstname', u'date',
u'subtotal', u'taxrate', u'tax', u'total',
u'billing_address', u'billing_city', u'billing_country',
u'billing_postal_code', u'billing_state'],
'__filters': [[u'customer', 7, [6]]],
'__expanded': True,
'__limit': 11,
'__offset': 0,
'__order': [[u'date', True]]
}
{
'__fields': [u'id'],
'__funcs': {u'id': u'count'},
'__filters': [],
'__expanded': False,
'__offset': 0,
'__order': [],
'__summary': True
}
服务端应用程序基于参数生成 SQL 查询并执行它们。
如果在执行过程中发生错误,服务端会向客户端返回结果记录和错误消息。