aiM18开发者中心 aiM18开发者中心
文档主页
  • 平台

    • 平台总体概述
    • 前端开发须知
    • 后台开发须知
    • EBI开发须知
    • JSF组件属性表
    • BPM扩展接口
    • 一查到底扩展接口
    • 手机App设置
  • ERP

    • ERP 后端扩展
    • ERP 应用配置
    • ERP 前端扩展
  • 教程

    • 设置Eclipse开发环境
    • 创建App教程
  • 平台相关

    • API授权
    • 通用的数据对象
    • 核心的API
    • EBI相关接口
  • 企业资源规划
  • 人力资本管理
  • 业务流程处理
  • 日程管理
  • 文档管理
  • 教程

    • 通过API与aiM18进行交互
教程
GitHub (opens new window)
文档主页
  • 平台

    • 平台总体概述
    • 前端开发须知
    • 后台开发须知
    • EBI开发须知
    • JSF组件属性表
    • BPM扩展接口
    • 一查到底扩展接口
    • 手机App设置
  • ERP

    • ERP 后端扩展
    • ERP 应用配置
    • ERP 前端扩展
  • 教程

    • 设置Eclipse开发环境
    • 创建App教程
  • 平台相关

    • API授权
    • 通用的数据对象
    • 核心的API
    • EBI相关接口
  • 企业资源规划
  • 人力资本管理
  • 业务流程处理
  • 日程管理
  • 文档管理
  • 教程

    • 通过API与aiM18进行交互
教程
GitHub (opens new window)
  • 平台

    • 平台总体概述
    • 前端开发须知
    • 后台开发须知
    • EBI开发须知
      • EBI的创建的步骤
      • 创建Query
        • Lookup Parameter(模块条件)
        • Criteria Parameter(筛选条件)
        • Primitive Parameter(原型参数条件)
        • Data Handler(数据处理函数)
      • 创建QuerySet
      • 创建Combined QuerySet
      • 创建EBI
      • 导出EBI
    • JSF组件属性表
    • BPM扩展接口
    • 一查到底扩展接口
    • 手机App设置
  • ERP

    • ERP EJB 接口
    • ERP XML 配置应用
    • ERP 装饰器(前端接口)
  • 教程

    • 设置Eclipse开发环境
    • 创建App教程
  • App中文
  • 平台
Multiable
2024-02-27
目录

EBI开发须知

版本: 1.2 | 发布日期: 07/02/2024

# EBI的创建的步骤

  1. 创建Query,Query用来直接从数据库中获取数据
  2. 创建QuerySet,QuerySet将多个Query获取的数据链接在一起, 输出为EBI / Combined Set所需要的结果集。
  3. 创建Combined Set, 将多个QuerySet的结果汇集在一起,输出为EBI的所需要的结果集。
  4. 创建EBI,通过EBIBuilder创建EBI。EbiBuilder的结果集来源可以是QuerySet,也可以是Combined Set。
  5. 导出EBI

# 创建Query

Query脚本由标准的SQL+参数组成

ebi1

select a.*, now() as testTimeStamp, '12:08:34' as testTime
from employee a
where ${[lookupCond('a.dept', @D_deptFilter)]}
and ${[lookupCond('a.position', @D_posFilter)]}
and ${[criteriaForMySQL('a.sex', @D_sexFilter)]}
and ${[criteriaForMySQL('a.createDate', @D_createDateFilter)]}
and ${[lookupCond('a.id', @D_idFilter)]}
and ${[lookupCond('a.expired', @D_expiredFilter)]}
and (?{[@D_empCode]} = '' or a.code = ?{[@D_empCode]})

以上的脚本经过渲染之后,最后到数据执行的执行如下所示

select a.*, now() as testTimeStamp, '12:08:34' as testTime
from employee a
where a.dept in (SELECT `id` FROM t_qt_IBSWTCIQGG WHERE id !=0)
and a.position in (SELECT `id` FROM t_qt_HBDTYCMZAC WHERE id !=0)
and a.sex = ?
and a.createDate < ?
and a.id in (SELECT `id` FROM t_qt_GUAEMVFIDM WHERE id !=0)
and 1 = 1
and (? = '' or a.code = ?)
 {'male', 2019-09-11 10:50:49.549, '', ''}

SQL中使用参数的语法为@D_XXXX,XXXX 为Input Parameter的Code。总共有三种类型的参数

  1. Lookup(模块条件)
  2. Criteria(筛选条件)
  3. Primitive

ebi1

这些参数可以在EBI Builder中用于配置生成的EBI界面

ebi5

# Lookup Parameter(模块条件)

一个Lookup类型的Input Parameter对应界面上的一个Turbo Filter,使用的语法为

${[lookupCond('a.dept', @D_deptFilter)]}

最终生成如下的脚本, 用户在Turbo Filter设置的条件,会被加到括号内 id != 0 后面

a.dept in (SELECT `id` FROM t_qt_IBSWTCIQGG WHERE id !=0)

# Criteria Parameter(筛选条件)

筛选条件需要进一步选择筛选条件类型 (Text-文本、Integer-整数、Decimal-分数、Logical\Boolean-布尔、Date-日期、Datetime-时间),使用的语法如为

${[criteriaForMySQL('a.createDate', @D_createDateFilter)]}

最终生成如下脚本,? 表示sql script占位符,< 是用户在界面选择的操作符

a.createDate < ?

筛选条件出现在Report Option中,它的类型决定了界面上可以使用的操作符,比如对于日期类型,可以用的操作符如下

ebi6

# Primitive Parameter(原型参数条件)

支持 Text-文本、Integer-整数、Decimal-分数、Logical\Boolean-布尔、Date-日期、Datetime-时间,

Primitive Parameter也同样出现在Report Option中,它的操作符固定为=

引用参数的语法为

?{[@D_empCode]}

# Data Handler(数据处理函数)

ebi4

该功能用于对Query的结果进行Java层级的过滤和处理,可以在Java中逐行对Query结果进行复杂计算。

使用时只需要指定class名称即可(内部类需要使用$符号指定),该Class必须实现QueryRowHandler接口

public abstract class QueryRowHandler{
    
    protected abstract void init();
    
    protected abstract boolean pass(SqlTable rowData);
}

# 创建QuerySet

将多个Query通过水平链接进行扩展

ebi7

# 创建Combined QuerySet

将多个QuerySet进行集合操作

ebi8

# 创建EBI

通过【EBI Builder】创建EBI,目前的Query Source Type 只有QuerySet和 Combined QuerySet

ebi9

创建之后的EBI可以通过UDF Menu添加到Menu中作为入口

ebi10

开发者也可以通过xml的方式进行修改,注意Menu code= EBI Builder创建的EBI的Code

<menu code="raindrop_test" messCode="empbi.hr" src="view/module/ebi/ebi" mType="EBI" apDebug="true">
	<inherit name="ebi_module_fc"></inherit>
</menu>

# 导出EBI

通过【EBI XML Console】可以导入/导出 EBI

Last Updated: 2025/04/09, 02:58:38
后台开发须知
JSF组件属性表

← 后台开发须知 JSF组件属性表→

Theme by Vdoing | Copyright © 1990-2025 Multiable | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式