- 高级规则使用的情况:
- 一个字段的值,依赖本表中的其它字段.可以通过其它更计算出来比如学生表中,如果有单科学分,有总分,那么总分通过其它单科的成绩计算出来.
- 一个字段的值,依赖于其它表中的某个字段(一般要是引用的表的某个字段)
- Java代码的编写
- 用户编写的规则继承自JavaRole,JavaRole可以使用的方法有:
- getValue("字段名") 获取本表的一个字段的值.(只能获取当前记录的值)
- getReferencer("字段1", "字段2"...) 获取当前表的一个引用表.字段1,字段2必须是同一个外键的N个字段,比如学生表可以通过TableConfig tableConfig = getReferencer("ClassId");获取班级表的引用,然后可以通过tableConfig.getValue("字段名")获取班级表中的值.
- getReferencer返回一个TableConfig对象.tableConfig有以下方法
- getValue 同JavaRole相同
- getReferencer 同JavaRole相同 .
- 返回值, 有两种类型:
- 简单类型:如果用户选择 简单类型,那么getValueByJava方法应该返回Java支持的基本数据类型.
- 复合类型,如果用户选择复合类型,那么getValueByJava方法只能返回ComplexObj类型ComplexObj是一个key,value对的map,可以保存多个字段值,如果用户在返回字段中写: field1,field2,field3,那么ComplexObj中应该设置以上三个字段的值:
complexObj.addValue("field1", value1);
complexObj.addValue("field2", value2);
complexObj.addValue("field3", value3);