README.md 3.1 KB

导航参数说明

导航参数有两个部分,分别是导航上下文参数(SRFNAVCTX)和导航参数(SRFNAVPARAM

配置相关

示例:

ITEMPARAM={ param: {'n_xx_id':'%field4%'}, context: {'XXXXid': '%majorentityname%'} }
SRFNAVPARAM.test = test
SRFNAVPARAM.test1 = %majorentityname%
SRFNAVCTX.ctx = %srforgid%
SRFNAVCTX.ctx1 = ctx1

对象运行时:

context:{ CTX:"%srforgid%", CTX1:"ctx1", XXXXID:"%majorentityname%" } 
param:{ test1:"%majorentityname%", test:"test", n_xx_id:"%majorentityname%" } 

上下文参数支持变量,变量使用两个百分号定义,如%param% ,上下文参数变量计算源来自上下文参数,如把当前用户标识srfuserid放入上下文参数用户USER上,可以这么定义 {USER:’%srfuserid%’}

配置方法

默认方法

导航参数的默认配置为 使用SRFNAVPARAM. 或者 SRFNAVCTX. 前缀

场景技巧

对不同的场景有着不同的配置技巧

  • 重新定义(只支持编辑器

​ 如默认定义不足,比如想定义更多的上下文参数,可以通过ITEMPARAM参数指定,如下,param 属性定义了附加参数,context属性定义了附加上下文 例如 ITEMPARAM={param:{'n_xx_id':'%field4%'},context:{'XXXXid':'%majorentityname%'}}

  • 直接赋值

    test=test 会转为为导航视图参数

导航参数支持场景

  1. 编辑器

    支持重新定义

    不支持直接赋值

  2. 应用功能

    不支持重新定义

    支持直接赋值

  3. 应用视图引用

    不支持重新定义

    不支持直接赋值

    导航参数必须显式使用SRFNAVPARAM. 前缀

  4. 实体关系界面

    不支持重新定义

    支持直接赋值

  5. 实体视图面板

    不支持重新定义

    支持直接赋值

  6. 界面行为

    不支持重新定义

    支持直接赋值

解构赋值

解构赋值方法

值是%xxx%类型,需要动态解构赋值。

其取值赋值顺序为:

  • 首先从视图传递给编辑器的视图上下文中获取匹配值,如存在,则赋值给相应的属性。
  • 其次从视图传递给编辑器的视图参数中获取匹配值,如存在,则赋值给相应的属性。(属性若有值会被覆盖)
  • 最后从表单数据中获取匹配值,如存在,则赋值给相应的属性。

注意事项

  • 如果在赋值过程中该属性存在值会覆盖之前值,请配置参数时,合理配置。
  • 如在上下文参数定义了{ORDER:''}{ORDER:null}意味着将上下文参数中的【ORDER】进行移除

参数作用

指定视图导航参数增强处理能力

导航参数可以用于表单默认值,也可作为数据查询条件往后台请求,灵活使用导航参数可以降低对后台的要求,如在做odoo的客户及联系人表格视图时,odoo将这两类数据存储在同一个实体中,如直接在导航参数中直接定义SRFNAVPARAM.n_iscompany_eq=1就可以在前台直接分类数据,而无需后台提供查询能力。