# 逻辑组件

平台提供了一组通用的可视化逻辑组件用于编写可视化逻辑。

  • 逻辑有开始和结束节点,逻辑按照开始到结束的顺序流有序执行。
  • 每个逻辑由多个(可视化)逻辑组件组成,大多数组件都是顺序执行,少部分逻辑组件具有分支或循环结构,其执行流程比较特殊。

后面的章节介绍组件分类。

# 分支

  • If:用于条件分支,当满足某个条件时执行其中的代码块。
  • 匹配:根据匹配条件判断是否执行其中的代码块。
  • Switch:用于多个条件分支的情况,根据不同的条件执行不同的代码块。

# 循环

  • ForEach:用于遍历数组或对象的元素,执行其中的代码块。
  • While:当满足某个条件时,不断执行其中的代码块。

# 原子项

  • 变量或常量:用于使用常量数据或对变量名(包括内部成员)进行引用,还包括枚举值。

    • 常量:可从 nulltruefalse 三个值中选择。分别表示空(没有数据)、逻辑真值、逻辑假值。
    • 枚举:用户定义的所有枚举类型。
    • 变量:当前可访问到的所有变量。
    • 公共变量。

    前端逻辑中还包括前端全局变量

  • 数字:数值类型的组件,默认值是 0。有小数点时是 Double 类型;没有小数点是 Integer-21474836472147483647 之间时) 或 Long 类型。

  • 文本:文本类型的组件,默认值是空文本 ""

  • 文本插值:带有一些空位的文本,空位可被变量或表达式填充。

  • 新建:用于创建新的对象、列表、映射等。

  • 自定义:用户自定义的表达式;表达式需要符合 JavaScript 的语法,但平台暂时不会做检查。

# 调用

  • 内置函数:平台提供了一组丰富的函数,用于完成特定的操作,大致分类如下。
    • 类型转换与格式化函数
    • 字符串函数
    • 日期与时间函数
    • 列表(List)函数
    • 映射(Map)函数
    • 枚举函数
    • 其他函数
  • 调用逻辑:用于调用全局逻辑、页面逻辑、系统逻辑等。
  • 调用接口:用于调用第三方接口。

# 数据查询

通过“数据查询”组件或者 “SQL 查询”组件来从数据源中查询数据。

  • 数据查询:通过可视化的方式查询数据源的数据。
  • SQL 查询:通过运行 SQL 语句来查询数据源的数据。

数据查询和 SQL 查询是全局逻辑特有的组件。

# 数据查询组件

通过可视化的方式查询数据源的数据。包含查询数据源、筛选条件、分组聚合、分页排序、调试这 5 个功能。

# 查询数据源

拖拽实体列表中的实体到此面板来建立查询。大致可看做 SQL 语句的 from 部分。 可视化数据查询

  • 支持数据源中的连接(join)功能,以将数据源中的两个或多个表组合起来。当需要此功能时,用户需拖入多个实体并定义其连接关系。支持以下的连接关系:

  • 内部(inner join):即内连接,只返回那些在两个表之间具有匹配值的行,即只返回满足条件的行。

  • 左侧(left join):即左连接,返回左表中所有的行,以及右表中匹配的行,如果右表中没有匹配的行,则(右表的部分)返回 null

  • 右侧(right join):即右连接,与左连接相反,返回右表中所有的行,以及左表中匹配的行,如果左表中没有匹配的行,则(左表的部分)返回 null

  • 完全外部(full join):即外连接,返回所有行,包括左表和右表中的所有行,如果没有匹配的行,则返回 null

  • 两表的关联关系需要通过关联条件进行串联,关联条件说明如下:

    • 关联条件(on):左右表各填入一个类型匹配的属性并定义其关系,支持的关联关系有等于、不等于、小于、小于等于、大于、大于等于。
    • 支持单击添加链接,设置多个关联条件。

# 筛选条件

拖拽原子项、逻辑运算、比较运算、算术运算、数据筛选以及它们的组合来构造查询的筛选条件。筛选条件是个布尔类型的表达式。筛选条件大致可看作 SQL 语句的 where 部分。 筛选条件

# 分组聚合

分组聚合功能是指将数据按照一定的规则进行分类(分组),然后对每组数据进行聚合操作,例如求和、求平均值、计数、最大值、最小值等,最终返回聚合结果。分组聚合大致可看作 SQL 语句的 group by 部分。

  • 支持不分组,也支持按一个或多个属性进行分组。有时按多个属性进行分组,以更准确地反映数据的分布情况。例如,如果要统计某个城市各个区域的销售情况,则需要按照城市和区域两个属性进行分组,才能得到准确的结果。
  • 支持为数据源的列名添加别名,返回的结果中的数据会优先使用别名。

分组聚合

  • 目前支持的聚合属性有

    • Count 计数:计算指定列或表中行的数量。可以用于计算某个列或整个表中的行数。

    • CountD 去重计数:计算指定列或表中不同值的数量,即去重后的数量。

    • Sum 求和:计算指定列或表中数值类型列的总和。可以用于计算某个列中数值的总和。

    • Avg 平均值:计算指定列或表中数值类型列的平均值。可以用于计算某个列中数值的平均值。

    • Max 最大值:找出指定列或表中数值类型列的最大值。可以用于找出某个列中数值的最大值。

    • Min 最小值:找出指定列或表中数值类型列的最小值。可以用于找出某个列中数值的最小值。

这些聚合函数在SQL中经常被应用于数据分析和报表制作等场景,能够对大量数据进行快速的统计和分析。

# 分页排序

排序、分页指的是在执行查询语句时,将查询结果按照指定方式进行排序,并且将排序结果分成若干页进行展示。排序、分页功能通常被用于处理大量数据的场景,以便于用户阅读和处理数据。排序大致可看作 SQL 语句的 order by 部分,分页大致可看作 SQL 语句的 limitoffset 部分。

分页排序

  • 支持不排序,也支持按一个或多个属性进行排序。例如当需要对一个在线商店的商品进行排序时,通常需要根据商品的价格、销量、评分等多个因素进行排序。
  • 支持任意多分页数量和每页的记录数。

# 调试

平台为可视化查询提供了调试功能。

筛选条件中使用到的变量,会在“调试输入”中出现。填写变量的值,点击开始调试,会显示查询结果。用户可根据查询结果来判断查询是否正确,并做相应的调整。

调试

# SQL 查询组件

通过编写、运行 SQL 语句来从数据源中查询数据。

SQL 查询

  • 可从右侧面板中拖拽变量、枚举、实体到 SQL 语句面板中。
  • SQL 语法要求请遵守应用所使用的数据库规则。平台虽然会根据数据源,对手写的 SQL 做一些基本的语法、语义检测,但不完全。

# 语句

  • 赋值:将新的值赋给变量。
  • 输出日志:输出一些信息到控制台或日志文件中。
  • 弹出消息:在界面上弹出一条消息提示。
  • 跳转页面:在界面上跳转到其他页面。
  • 结束:终止当前的代码执行。
  • JS 代码块:用于执行 JavaScript 代码。

# 逻辑运算

  • and(与):两个参数都为真时,输出True,否则输出False。
  • or(或):两个参数有一个为真或两个均为真时输出True,两个参数均为假时输出False。
  • not(非):两个参数有一个为真或两个均为真时输出False,两个参数均为假时输出True。

# 比较运算

  • 等于:判断两数是否相等,输出Boolean值。
  • 不等于:判断两数是否不等,输出Boolean值。
  • 大于:判断左数是否大于右数,输出Boolean值。
  • 小于:判断左数是否小于右数,输出Boolean值。
  • 大于等于:判断左数是否大于等于右数,输出Boolean值。
  • 小于等于:判断左数是否小于等于右数,输出Boolean值。

# 算数运算

  • 加法:两数相加,输出结果为两数之和。
  • 减法:两数相减,输出结果为左数减去右数。
  • 乘法:两数相乘,输出结果为两数之积。
  • 除法:两数相除,输出结果为左数除以右数。
  • 取余:两数相除,输出结果为左数除以右数的余数。

# 数据筛选

  • 起始匹配:定义筛选条件“X”,筛选参数开头为“X”的数据。
  • 结尾匹配:定义筛选条件“X”,筛选参数结尾为“X”的数据。
  • 范围内匹配:定义筛选条件“X”,筛选参数内容和“X”完全匹配的数据。
  • 模糊匹配:定义筛选条件“X”,筛选参数内容包含“X”的数据。
  • 空值匹配:筛选参数内容为空的数据。

# 其他

  • JSON序列化:将变量转化为字符串,进行传输或存储。如将实体类型变量序列化为字符串。
  • JSON反序化:将获取到的字符串,转化为指定结构的变量。如将字符串反序列化为实体类型变量。
  • 注释:可通过注释进行补充说明。
上次更新: 2023年06月14日