暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

质流零代码开发十讲之四:报表开发配置

85

报表在企业数字化转型过程中扮演着至关重要的角色,它不仅是信息的记录和传递工具,更是支持决策、优化运营、提升效率的重要手段。以下是报表在企业数字化中的几个关键价值:

数据驱动决策:报表将企业的运营数据转化为易于理解的信息,帮助管理层做出基于事实而非直觉的决策。通过分析历史趋势和当前表现,管理者可以更好地预测未来并制定策略。

性能监控与评估:定期生成的报表允许企业持续监控关键绩效指标(KPIs),从而快速识别出业务流程中的问题或机会。这有助于及时调整策略,确保目标达成。

促进沟通协作:共享报表可以加强部门间的信息流通,打破信息孤岛现象。当所有团队成员都能访问相同的数据源时,便能更有效地合作解决问题。

在数字化时代,利用先进的报表工具和技术来构建高效、动态的报表系统,已成为现代企业管理不可或缺的一部分。随着技术的进步,报表还将继续进化,为企业提供更加智能化的支持。

质流基于配置模式实现报表开发,将表头设计、查询条件、数据处理、数据安全的配置能力提供给用户,用户可以快速构建报表,并可以在迭代过程中用极低的成本持续优化分析报表。质流的报表开发能力能够极大地提升企业数据处理和分析的效率,帮助决策者快速获取有价值的信息。

本文通过报表的开发配置说明,使用两个例子演示来进一步讲解质流的报表配置开发使用方法。

01

触发器配置

    管理员登录    --> 系统设置  --> 报表开发管理    

报表开发管理主要配置如下,设计的思路是将表头配置、查询条件配置、数据查询条件,安全配置都开放给用户,用户可以根据实际报表的复杂度,可以设计多行表头、基于单个时间和时间段的查询,支持无时间、一个时间、两个时间的日报,月报等,并根据空间可以支持下拉选择和模糊查询的报表搜索能力,执行sql可以配置明细类数据,在考虑性能效率的同时,支持进行聚合汇总的sql配置,实现实时的数据汇总报表。

具体参数使用说明:

参数
说明
报表英文名
报表的主键,不能重复,当输入表名时,点击获取可以根据表自动生成表头和sql语句
报表中文名
开发完成后,在“报表应用”中呈现的报表名称
表头配置
基于html的table的<tr><th>标签进行设计
执行sql
配置sql语句,支持聚合,排序,支持内置条件,包括

{{starttime}}  选择一或两个时间参数传第一个值

{{endtime}}  选择两个时间参数传第二值

{{hashusername}} 自动转化为用户的cn_name的hash,支持数据可用不可见

{{zhname}}自动转化为用户的中文名称

{{username}}自动转化为用户的cn_name

{{deptcode}}自动转化为用户的部门编码

{{companyname}}自动转化为用户的g公司名称

{{nename}}根据空间条件进行替换

{{nename1}}根据空间条件1进行替换

{{nename2}}根据空间条件2进行替换

{{nename3}}根据空间条件3进行替换

{{nename4}}根据空间条件4进行替换


查询条件
支持选了0-2个时间参数,对应需要在sql中配置,如果选择一个参数则赋值给{{starttime}},如果选择两个参数则赋值给{{starttime}}和{{endtime}},如果选择月份,则会将时间转化为标准的时间2024-04-01 00:00:00
默认时间
报表打开时默认的开始时间NOW|1440|-1440,格式固定,第二个参数为天求整,第三个参数为向前推1天,例如当前时下午4点30分,则向前推1天,然后求1440分钟取整,则开始时间为昨天零点。如果第二个参数为60,则表示向前推1天,然后按小时取整,则获取时间为昨天四点整
角色
设置角色,只有设置了角色的人才能看到该报表
是否可以打印
配置为否,则无法复制,也无法导出。配置为是则可以导出和复制数据。
是否转置
选择是,自动实现数据的转置
空间条件N
设置的规则为【英文字段:中文名称,下拉选项1,下拉选项2,下拉选项3】
状态
是为可用,否为不可用

  单行表头配置

    <tr><th>登记时间</th><th>访客姓名</th><th>访客性别</th><th>访客电话</th><th>访客身份证</th><th>被访人姓名</th><th>被访人部门</th><th>来访事由</th><th>申领号牌</th><th>访问结束时间</th></tr>
      多行表头配置
      <tr><td rowspan="2">时间</td><td  colspan="3" style="text-align:center">科目</td></tr><tr><td>语文</td><td>数学</td><td>英语</td></tr>

      空间条件N


      在sql的where条件中增加{{nename}} {{nename1}},生成的查询界面如下图




      02

      可视化分析报表开发

      在报表开发中,“报表名称”设置为tpl为后缀,在“执行sql”中配置html和js脚本

      就可以生成如下图形化视图

      详细代码如下
        <!DOCTYPE html>
        <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Dynamic Charts</title>
          <style>
            .chart-container {
              position: absolute; /* Allow positioning */
              border1px solid #ccc;
              width1920px/* Default width */
              height1600px/* Default height */
            }
            .fullscreenBtn {
              position: absolute;
              top10px;
              left:2450px;
               border: none; /* 去掉边框 */
              outline: none; /* 去掉聚焦轮廓线 */
              cursor: pointer; /* 设置鼠标悬停时的指针样式 */
              padding10px 20px/* 内边距 */
             
              color: white; /* 文本颜色 */
              font-size16px/* 字体大小 */
              text-align: center; /* 文本水平居中 */
            }
        </style>
          <script src="/static/js/abcecharts.js"></script>
          <script src="/static/js/vintage.js"></script>
          <script src="/static/js/dark.js"></script>
          <script src="/static/js/roma.js"></script>
          <script src="/static/js/macarons.js"></script>
          <script src="/static/js/shine.js"></script>
          <script src="/static/js/infographic.js"></script>
          <script src="/static/js/reportechart.js"></script>
        </head>
        <body>
        <button class="fullscreenBtn" id="fullscreenBtn">x</button>
          <!-- Containers for the charts -->
          <div id="chart1" class="chart-container"></div>
          <div id="chart2" class="chart-container"></div>
          <div id="chart3" class="chart-container"></div>
          <div id="chart4" class="chart-container"></div>
          <div id="chart5" class="chart-container"></div>
          <div id="chart6" class="chart-container"></div>
          
          <script type="text/javascript">
            configureContainer('chart1', { width'800px'height'400px'top'50px'left'0px' });
            configureContainer('chart2', { width'800px'height'400px'top'500px'left'0px' });
            configureContainer('chart3', { width'800px'height'400px'top'50px'left'850px' });
            configureContainer('chart4', { width'800px'height'400px'top'500px'left'850px' });
            configureContainer('chart5', { width'800px'height'400px'top'50px'left'1700px' });
            configureContainer('chart6', { width'800px'height'400px'top'500px'left'1700px' });
           
           


            initRadarChart('chart1', {
              type'bar',
              theme'shine',
              title:'雷达图',
              apiUrl'/getdata',
              sqlQuery'select stock_name,market_price,20,market_price from stock_information',
                 });


            initTwoBarChart('chart2', {
               theme'shine',
               data:["2023","2024"],
              title:'',
              type'line',
              apiUrl'/getdata',
              sqlQuery'select stock_name,market_price,20,market_price+200 from stock_information',
                 });


           initPieChart('chart3', {
              title:'饼图',
              type'bar',
              apiUrl'/getdata',
              sqlQuery'select stock_name, market_price,market_price,market_price+3000 from stock_information',
                 });


            initBarLineChart('chart4', {
              title:'',
              type'line',
              data:["2023","2024","增量"],
              apiUrl'/getdata',
              sqlQuery'select stock_name, market_price,market_price,market_price+30 from stock_information',
                 });
                  initChart('chart5', {
              type'line',
              title:'曲线图',
              apiUrl'/getdata',
              sqlQuery'select stock_name,market_price,20,market_price from stock_information',
                 });
                  initChart('chart6', {
              type'bar',
              title:'柱状图',
              apiUrl'/getdata',
              sqlQuery'select stock_name,market_price,20,market_price from stock_information',
                 });


          document.addEventListener("DOMContentLoaded"function() {
            var btn = document.getElementById('fullscreenBtn');


            btn.addEventListener('click'function() {
              if (document.fullscreenElement === null) {
                // 如果当前没有元素处于全屏模式,选择一个元素进入全屏模式
                var elem = document.documentElement;
                if (elem.requestFullscreen) {
                  elem.requestFullscreen();
                } else if (elem.webkitRequestFullscreen) { // Safari等浏览器
                  elem.webkitRequestFullscreen();
                } else if (elem.msRequestFullscreen) { // IE/Edge
                  elem.msRequestFullscreen();
                }
              } else {
                // 如果已经有元素处于全屏模式,退出全屏模式
                if (document.exitFullscreen) {
                  document.exitFullscreen();
                } else if (document.webkitExitFullscreen) { // Safari等浏览器
                  document.webkitExitFullscreen();
                } else if (document.msExitFullscreen) { // IE/Edge
                  document.msExitFullscreen();
                }
              }
            });
          });
        </script>
        </body>
        </html>
        自行选择不同的图形并配置sql获取数据,无需开发api快速实现图形化报表。
        零代码一键启动免费体验

        质流零代码开发十讲之一:表单开发配置

        质流零代码开发十讲之二:流程工单开发配置

        质流零代码开发十讲之三:触发器开发配置

        文章转载自数据库平台优化,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论