FLUX知识记录之Gem Report设计器学习1

  • 简介:采用HTML5开发,一个类似Excel表格形式的Web报表设计于开发平台
  • 设计的报表模板将以XML的格式保存
  • 组成部分:报表设计器、表单设计器、管理平台
  • 报表设计
    • 数据源管理
      • 数据库:

        报表与表单主要数据来源于数据库,支持Mysql、Oracle、DB2、SQLServer、Sybase、PostgreSQL等数据库

    • 数据集

      • 分为私有数据集和共享数据集

      • 报表设计器数据集即为私有数据集,私有数据集只应用该报表模板。如何使用共享数据集,可在数据集中"引用"共享数据集,将共享数据集变为私有数据集,并能编辑该数据集。

      • 在每个报表页面均能添加、编辑、删除共享数据集,如果报表页面使用共享数据集,则首先在共享数据集中添加数据集,然后在数据集页面引用共享数据集。

    • SQL解析

      • 解析SQL优点:简化带参数的sql语句,如select * from rpt_value where name=':arg', arg为参数名称与参数页面的组件名称相对应,当参数页面不输入arg值即arg为空, sql解析会智能生成可执行的sql语句如:select * from rpt_value where 1=1。

      • 解析SQL缺点:智能解析SQL语句并不能保证解析sql正确性,如果保存sql出现错误,建议SQL解析选择否。

      • 不解析SQL:SQL解析选择“否”,当sql语句中存在参数,需要写判断参数是否为空的表达式:

            select * from rpt_value where 1=1

              <if test='arg1 != null'> and name=':arg1'</if>

              <if test='startDate != null'> and t_date>:startDate</if>

        ​​​​​​​    ​​​​​​​当参数startDate=null,arg = name,生成的可执行的sql:
        • select * from rpt_value where 1=1 and name=’name’
    • ​​​​​​​IF表达式
      • ​​​​​​​<if test=""></if> test中为逻辑判断表达式,根据参数最终生成可执行的SQL语句,if表达式也支持嵌套SQL判断
      • 示例:可以根据参数sqltype不同执行不同的sql语句
        • <if test="sqltype=='A'">
          • select * from A where 1=1
          • <if test="year!=null"> and year=:year</if>
        • </if>
        • <if test="sqltyoe=='B'">
          • select *from B where 1=1
          • <if test="year!=null"> and year=:year</if>
        • </if>
    • 分页数
      • 分页数为0时表示不使用分页查询,当分页数大于0时,SQL语句在查询时会自动增加SQL分页片段,不需要在SQL检索中写分页查询SQL,当填写分页数如2,

            程序会智能依据不同数据库添加sql分页片段,如mysql:select * from rpt_value limit 0, 2

    • ​​​​​​​存储过程

      • ​​​​​​​在报表设计器左边的数据集或是共享数据集,点击“新增”则出现数据集窗口页面选中“存储过程”如下图:

      • 参数name的默认值为"wer",将查询姓名为wer的人员信息
      • 选择数据源,数据源对应数据库,填写数据集名称,数据集名称不能为空且不能与该报表其他数据集重复,填写存储过程名称

      • 参数:存储过程的参数主要包含输入参数、输出参数,存储过程的参数个数与顺序需要与存储过程相对应,关联参数名称是参数页面组件对应的名称,也可以是参数页面隐藏域参数名称
    • Excel文件
      • 描述:报表数据来源于excel,excel文件一般为第一行为标题,第二行开始是数据,第一行标题将作为数据列
      • 上传excel数据文件:数据集点击“新增”,出现选择数据集窗口,选择“excel文件”,进入上传excel数据文件页面
      • 填写数据集名称:

        Excel数据开始行:指excel文件除标题外数据开始的第一行,如描述中excel,名称、区域、销售额为标题,数据开始于第二行。

           上传Excel:可以上传多个相同格式的excel数据

           预览数据:预览excel中的数据

      • 数据集:上传完excel文件,确定生成数据集
    • JSON 文件
      • 描述:报表数据来源于JSON格式文件,json文件一般为数组json对象,name、age、birthday、sex为数据列
        • [{"name":"jack", "age":21, "birthday":"1990-02-01", "sex":"man"},
                {"name":"张三", "age":21, "birthday":"1990-02-01", "sex":"man"},
                {"name":"李四", "age":21, "birthday":"1990-02-01", "sex":"man"},
                {"name":"tom", "age":28, "birthday":"1991-02-01", "sex":"man"}]

      • 上传JSON文件:数据集点击“新增”,出现选择数据集窗口,选择“JSON文件”,进入上传JSON数据文件上传页面

        • 填写数据集名称

              上传JSON文件:文件格式为json数组对象

              上传JSON文件:可以上传多个相同格式的JSON数据文件

              预览数据:预览JSON中的数据

        • 数据集:上传完Json文件,确定生成数据集

    • XML文件

      • 描述:报表数据来源xml文件,xml文件一般为多组相同的叶子节点数据,叶子节点Tag名称为数据列name、age、birthday、sex为数据列名称

        • <?xml version="1.0" encoding="UTF-8"?>
             <resp>  
               <content> 
                  <name>jack</name> 
                  <age>21</age> 
                  <birthday>1990-02-01</birthday>  
                  <sex>man</sex> 
               </content> 
               <content> 
                  <name>tom</name> 
                  <age>21</age> 
                  <birthday>1990-02-01</birthday> 
                  <sex>man</sex> 
               </content> 
               <content> 
                  <name>张三</name> 
                  <age>21</age> 
                  <birthday>1990-02-01</birthday> 
                  <sex>man</sex> 
               </content> 
             </resp>

      • 上传xml文件

        • 数据集点击“新增”,出现选择数据集窗口,选择“XML文件”,进入上传XML数据文件上传页面

          • ​​​​​​​

          • 填写数据集名称 

                上传XMl文件:文件格式为XML多组相同的叶子节点数据

                上传XML文件:可以上传多个相同格式的XML数据文件

                预览数据:预览XML中的数据

          • 数据集:上传完Xml文件,确定生成数据集

    • Web服务

      • 描述:报表数据源支持来源web服务(http协议)、RESTFul服务,web服务返回的数据为JSON格式数据或是XML数据。

      • 服务连接:数据集点击“新增”,出现选择数据集窗口,选择“XML文件”,进入上传XML数据文件上传页面

      • 填写数据集名称

             链接URL:web服务地址

             请求方式:post或get,默认为post方式请求,建议使用post方式

        返回数据格式:JSON或XML,默认为Json格式数据,建议使用Json格式数据,体积小,传播速度快

    • 自定义数据集

      • 描述:使用报表定义数据集,并将数据存放在报表模板中,适合少量的固定数据

      • 定义数据:数据集点击“新增”,出现选择数据集窗口,选择“自定义数据”,进入数据定义页面

      • 定义数据列:进入数据定义页面,定义数据首先需要定义数据列,数据列数据集列名称及数据的类型。

             定义数据列名称为:姓名、年龄,姓名数据类型为字符串,年龄数据类型为整型

      • 添加数据:定义完数据列,点击确定,点击“增加行”输入数据,整型输入数字

      • 数据集:生成数据集

    • DQL数据集查询

      • 描述:DQL(Dataset Query Language)数据集查询是类SQL查询语句,对多数据源进行过滤、关联、聚合等流式分布并发计算。

      • 数据集关联查询:QL是对数据集进行再次查询,例如数据集ds1、ds2, ds1与ds2是数据库SQL查询生成的数据集,ds1与ds2来源不同数据库查询

        • DQL将数据集ds1与ds2按名称字段NAME进行关联

              DQL语句: select * from ds1 t1 join ds2 t2 on t1.NAME=t2.NAME 或是 select * from ds1 t1, ds2 t2 where t1.NAME=t2.NAME

      • 数据集过滤:

        DQL是对数据集进行再次过滤查询,过滤参数为name

           DQL语句: select * from ds1 t1, ds2 t2 where t1.NAME=t2.NAME and t1.NAME=:name

      • 数据集分组求和:数据库SQL查询生成数据集名称为groupby

        • ​​​​​​​

        • DQL对数据集groupby进行分组求和查询,按AREA_NAME,CITY_PRO,CITY_NAME 字段分组求和

              DQL语句:select AREA_NAME,CITY_PRO,CITY_NAME, sum(SALE_PRICE) SALE_PRICE from groupby GROUP by AREA_NAME,CITY_PRO,CITY_NAME

      • 分步计算:DQL也支持对DQL生成的数据集再次查询计算,如上DQL语句:select AREA_NAME,CITY_PRO,CITY_NAME, sum(SALE_PRICE) SALE_PRICE from groupby GROUP by AREA_NAME,CITY_PRO,CITY_NAME 生成数据名称为dqlgroup的数据集

        • ​​​​​​​

        • 可以对dql生成的数据集再次计算,如DQL语句:select sum(SALE_PRICE) AS TOTAL from dqlgroup

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值