表格软件之FineReport-JS实现大数据集导出(二)

news/2024/4/29 22:22:26/文章来源:https://blog.csdn.net/sjfxnxsr_/article/details/128044197

1. 示例:大数据集导出动态参数值

1.1 新建模板

1.1.1 新建数据集

新建普通报表,新建数据集,SQL 语句如下:

ds1:SELECT * FROM 销量 where 1=1 and 地区 in ('${area}') and 销售员 in ('${stuff}')

ds2:SELECT 销售员 FROM 销量 where 地区 in ('${area}')

1.1.2 设计报表

报表主体样式如下图所示:

1.2 设置查询控件

编辑参数面板,新增两个「标签控件」,两个「下拉复选框控件」,一个「查询控件」。如下图所示:

1.2.1 地区控件

选中第一个「下拉复选框控件」,设置控件名称为「area」,标签名称为「地区:」,数据字典设置为数据库 FRDemo 中「销量」表中的「地区」,返回值类型为「字符串」,分隔符为',',如下图所示:

1.2.2 销售员控件

选中第二个下拉复选框」控件,设置控件名称为「stuff」,标签名称为「销售员:」,数据字典设置为数据集 ds2 中的「销售员」,返回值类型为「字符串」,分隔符为',',如下图所示:

1.3 设置动态导出列

新增一个「标签控件」,一个「下拉复选框控件」。选中「下拉复选框控件」,点击「控件设置>属性」,设置控件名称为「col」,标签名称为「导出列」,数据字典类型为「公式」,实际值为:TABLEDATAFIELDS("ds1"),如下图所示:

1.4 设置导出控件

1.4.1 新增控件

新增一个「按钮控件」,点击「控件设置>属性」,设置按钮名字为「大数据集导出」,如下图所示:

1.4.2 设置点击事件

选中「按钮控件」,点击「控件设置>属性」,新增「点击事件」,输入 JavaScript 语句,如下图所示:

JavaScript 代码如下:

var widgetNames = ['area', 'stuff']; //定义数组存放控件名称

function getWidgetValueByName(name) {

       var widget = _g().parameterEl.getWidgetByName(name); //根据控件名获取控件值

       if (widget == undefined) return;

       var obj = {};

       obj[name] = widget.getValue();

       return obj; //返回控件值组成的数组

}

var paramJson = widgetNames.map(getWidgetValueByName).reduce(function(a, b) {

       return Object.assign(a, b)

});

var paramJsonStr = JSON.stringify(paramJson); //将json数据转换为字符串

var col = _g().getParameterContainer().getWidgetByName("col").getValue();

//alert(col);

//参数进行url编码

var colNames = encodeURIComponent(col)

//var colNames = encodeURIComponent("地区,销售员,产品类型,产品,销量") //指定导出的数据列,导出字段按此顺序排列,为空默认导出所有

//调用导出接口

//console.log(paramJsonStr);

//console.log(colNames);

_g().directExportToExcel("ds1", "销量", encodeURIComponent(paramJsonStr), colNames," "," ");

显示代码

1.5 效果预览

保存模板,点击「分页预览」。查询「地区」、「销售员」,选择需要导出的数据列,点击「大数据集导出按钮」,导出内容与查询内容一致,且仅导出指定的数据列。如下图所示:

注:不支持移动端。

2. 已完成模板

2.1 示例一

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\大数据集导出固定参数值.cpt

2.2 示例二

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\大数据集导出动态参数值.cpt

总结

帆软FineReport大数据集导出时连接的是 Presto 数据库,如果导出失败且有如下报错信息:

警告:14:39:00  EventThread , 帆软的人性化操作做得好,也是一套相对完整的报表平台制作表格软件,也可进行全链路数据建设。中文用户界面用户更容易上手,都提供官方技术支持、论坛、交流小组等,可以帮助用户快速解决问题。ERROR [standard] com.facebook.presto.jdbc.NotImplementedException:  Method Connection.prepareStatement is not yet implemented

只需要将驱动升级到 presto-jdbc-339.jar 即可,进入 Presto官网 ,下载驱动的方法如下图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_36766.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机毕业设计】36.网易购商城购物平台源码

一、系统截图(需要演示视频可以私聊 摘 要 本毕业设计的内容是设计并且实现一个基于JSP技术的网易购购物平台。它是在Windows下,以MYSQL为数据库开发平台,Tomcat网络信息服务作为应用服务器。网易购购物平台的功能已基本实现,主…

干货分享:超级浏览器使用感受

在亚马逊做工艺品时间挺长的了,来说说我这几年使用超级浏览的感受。 现在做跨境的就跟做国内的电商平台一样卷了,不仅产品要新奇独特、要包邮价格还要有优势,可以说以前跨境电商是卖方市场,现在已经妥妥变成买方市场了。但这是国际…

Euler diagram

An Euler diagram (/ˈɔɪlər/, OY-lər) is a diagrammatic means of representing sets and their relationships. They are particularly useful for explaining complex hierarchies and overlapping definitions. They are similar to another set diagramming techniqu…

TrustSVD算法进行基于矩阵分解的商品推荐 代码+数据(可作为毕设)

案例简介 (1)方法概述: 本教程包含如下内容: 从原始的数据文件中加载数据,进行训练集和测试集的切分,并对测试集进行负采样。 对数据分batch, 利用用户历史点击记录进行模型训练 结果展示 数据集:https://download.csdn.net/download/qq_38735017/87154848 (2)宏观流程图 …

物联网安全年报暴露情况分析

暴露情况分析 在去年研究的基础上,我们今年对 UPnP 协议的暴露情况进行持续关注。如无特殊说明,本章中的 统计数据基于全球单轮次的测绘(2019 年 10 月)。本节我们将对 SSDP 与 SOAP服务的暴露情况进行 分析,4.4.2 节…

Flutter 实现局部刷新 StreamBuilder 实例详解

一、前言 在flutter项目中,页面内直接调用setState方法会使得页面重新执行build方法,导致内部组件被全量刷新,造成不必要的性能消耗。出于性能和用户体验方面的考虑我们经常会使用局部刷新代替全量刷新进行页面更新的操作。包括Provider、Va…

Vuex 笔记

文章目录1 Vuex 简介2 Vuex 用法2.1 安装 vuex2.2 修改 main.js,2.3 使用 mutation 改变 Store:2.4 带参数的 mutations:2.5 使用 getters 读取 store 数据2.6 使用 actions 执行异步代码2.7 总结2.8 使用 mapper 简化代码2.9 使用模块组织 store2.10 模块名字空间2…

如何将草料二维码收集到的表单信息同步至腾讯文档

在进行工业巡检场景如消防栓检查时,需要到达巡检地点后,扫描草料二维码,然后填写巡检的结果。事后,还需要有一个工作人员将草料二维码中的信息手动复制粘贴至腾讯文档中。那么能不能将我们信息填写后,自动就汇总至腾讯…

微客云升级会员制度

会员制度 会员制度是一种人与人或组织与组织之间进行沟通的媒介,它是由某个组织发起并在该组织的管理运作下,吸引客户自愿加入,目的是定期与会员联系,为他们提供具有较高感知价值的利益包。 Part 1 会员制度 建立长期稳定的客…

CameraMetadata 知识学习整理

一、涉及的相关代码路径 system/media/camera/src/camera_metadata.c // metadata的核心内容,包含metadata内存分配,扩容规则,update, find等 system/media/camera/src/camera_metadata_tag_info.c // 所有android原生tag的在内存里面sect…

GitHub 下载量过百万,阿里 P8 秘密分享的「亿级并发系统设计」

随着互联网的不断发展,CPU 硬件的核心数也在不断进步,并发编程越来越普及,但是并发编程并不像其他业务那样直接了当。在编写并发程序时,我们常常都会出现各种漏洞,这些问题往往都突然出现,然后又迅速消失&a…

龙格-库塔法(Runge-Kutta methods)

非线性的常微分方程通常是难以求出解析解的,只能通过多次迭代求近似的数值解。 龙格-库塔法(Runge-Kutta methods)是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。简写做RK法。 对于任意的Yf(X),假设某点(Xi,Yi)的斜…

阿里云安装软件:jdk11

命令下载 1. 安装准备 检查系统jdk版本 java -version检查jdk自带安装包 rpm -qa | grep java卸载jdk yum -y remove tzdata-java.noarch如果有就卸载,卸载的包名通过(rpm -qa | grep java)获取,包名要全部输入 rpm -e --nodeps …

计算机网络——TCP连接管理

本文将会介绍如何建立和拆除一条TCP连接,TCP的连接会显著的增加人们感受到的时延(尤其是在Web冲浪时)。同时一些常见的网络攻击SYN洪范攻击利用了TCP连接管理的弱点。 假定运行一台主机(客户)上的一个进程想和另一台主…

流程编排、如此简单-通用流程编排组件JDEasyFlow介绍

作者:李玉亮 JDEasyFlow是企业金融研发部自研的通用流程编排技术组件,适用于服务编排、工作流、审批流等场景,该组件已开源(https://github.com/JDEasyFlow/jd-easyflow),目前在部门的内部业务系统和科技输出系统中广泛应用&…

通过PreparedStatement预防SQL注入

通过PreparedStatement预防SQL注入 简介:本文只讲PreparedStatement预防SQL注入的写法,大家学会就好。 推荐学习路线:JDBC数据库的连接->Connection(数据库连接对象)->Statement->ResultSet->通过Prepare…

Spring Boot 简介及快速搭建

Spring Boot 简介及快速搭建 springboot的优点: –快速构建一个独立的 Spring 应用程序 ; –嵌入的 Tomcat 、 Jetty 或者 Undertow,无须部署 WAR 文件; –提供starter POMs来简化Maven配置和减少版本冲突所带来的问题&#xff1…

【云原生 | Kubernetes 系列】--Gitops持续交付 Argo Rollouts Analysis

1. Argo Rollouts 由一个控制器和一组CRD组成,可为K8s提供高级部署功能 - blue-green - canary - canary analysis 结合外部指标系统金丝雀 - experimentation 实验性的结果 - progressive delivery 渐进式交付,精准管控外部流量策略,不用关心后端部署机制支持Ingress Contro…

深度学习 Day 20——优化器对比实验

深度学习 Day 20——优化器对比实验 文章目录深度学习 Day 20——优化器对比实验一、前言二、我的环境三、前期工作1、设置GPU2、导入数据3、配置数据集4、数据可视化三、构建模型四、训练模型五、模型评估1、Accuracy与Loss图2、评估模型六、最后我想说一、前言 🍨…

2022 谷歌出海创业加速器展示日: 见证入营企业成长收获

经历三个月的沉淀,迎来了展示日的大放异彩。10 家入营企业的路演分享,带来诸多启发 ——企业出海有什么挑战和难点?加入谷歌出海创业加速器,团队有哪些收获?三个月的培训和交流,带来了怎样的感受&#xff1…