首页 > 其他分享 >Finereport11 类Excel筛选

Finereport11 类Excel筛选

时间:2024-03-28 21:55:21浏览次数:23  
标签:控件 单元格 Excel 下拉框 订单 Finereport11 参数 筛选 ID

微信公众号:次世代数据技术
关注可了解更多的教程。问题或建议,请公众号留言或联系本人;
微信号:weibw162
本教程视频讲解可以关注本人B站账号进行观看:weibw162

一、需求描述

在使用FIneReport软件开发时,我们希望前台报表展示时可以类似Excel表格筛选那样,在表头进行多选筛选过滤显示数据。其效果如下图所示:

针对以上需求,本文提出一种可行的方案,其大致步骤如下:

  1. 在原表需过滤字段后面增加一个单元格放置下拉框。
  2. 将下拉框的字典配置为该字段的去重列表。
  3. 下拉框编辑结束时将值传递给指定的参数控件,并提交查询。
  4. 使用填报预览,可以直接在单元格中使用控件。
  5. 在页面初始化时通过JS调整前台样式,隐藏参数栏等。

注1:不支持移动端填报。
注2:本文涉及到的技术及流程均仅在FineReport 11.0 版本进行实际验证,如果您在使用其他版本过程中出现问题可以联系本作者。

二、具体操作

第一步

示例所需数据集,如下:

-- ds1 数据集
select 订单ID,substr(订购日期,0,11) as 订购日期,客户ID,雇员ID,运货商,运货费,货主名称,货主地址

from S订单
where 1=1
${if(len(订单ID)==0,"","and 订单ID in ('"+订单ID+"')")}
${if(len(订购日期)==0,"","and substr(订购日期,0,11) in ('"+订购日期+"')")}
limit 50

-- 参数 订单ID数据集
select distinct 订单ID from S订单

-- 参数订购日期数据集
select distinct substr(订购日期,0,11) as 订购日期 from S订单

其参数控件也皆在参数栏方式好,配置好。

第二步

打开模板,在模板需要调整的字段右侧增加单元格用来存放下拉框控件,同时将下方数据表字段和右侧的空白单元格进行合并。

同时,需要调整单元格的对齐及边框,使其尽可能像是在同一个单元格中。
值得注意的是,下拉框的单元格要稍小一些,否则容易造成图标的错位,同时,下拉框所在的单元格要设置成不自动调整。

第三步

给控件配置其数据字典。并调整控件返回的数据类型为字符串,且分隔符同时调整为','

第四步

给控件增加一个编辑结束事件,并写入如下代码:

JavaScript 代码如下:

// 将控件的值传递给参数控件。
_g().getParameterContainer().getWidgetByName("订单ID").setValue(this.getValue());
// 提交参数查询
_g().parameterCommit();

第五步

点击左上角 模板->模板web属性->填报页面设置->事件设置 中增加加载结束事件,并写入如下JavaScript脚本。同时,需要将直接显示控件选项勾选,将使用工具栏取消勾选。

JavaScript 代码如下:

// 去除控件的边框
$(".fr-trigger-btn-up").css("border", "none");
// 去除input边框并将其宽度设置为0进行隐藏
$(".fr-trigger-text.fr-border-box").css({ "border": "none", "width": "0px" });

// 判断表格区域的高度加上参数栏高度是否大于浏览器高度
if ($(".content-container").height() + $(".parameter-container").height() <= window.innerHeight) {
  // 将表格区域提到页面顶部,并动态调整其高度
  $(".content-container").css({ "top": "0px", "height": $(".content-container").height() + $(".parameter-container").height() + "px" });
  $("#frozen-center").css({ "height": $("#frozen-center").height() + $(".parameter-container").height() + "px" });
}
// 将参数栏隐藏
$(".parameter-container").hide();

// 调整控件下拉按钮背景
$(".fr-trigger-btn-up").css("background", "none");
// 将对应参数控件的值赋值给下控件所在单元格
_g().setCellValue("C1", _g().getParameterContainer().getWidgetByName("订单ID").getValue());
_g().setCellValue("E1", _g().getParameterContainer().getWidgetByName("订购日期").getValue());
// 去除左上角红色角标
$(".dirty").removeClass("dirty");

第六步

通过拖拽将整个参数栏隐藏

第七步

将para组件下的点击查询前不显示报表内容取消勾选。

完成以上步骤后,我们直接点击左上角的选择填报预览按钮,即可在浏览器中查看到与文章开头效果图类似的报表。

三、模板文件下载

链接: https://pan.baidu.com/s/1MkSKGONyM9iSAeTAxoAD1w?pwd=x42e 提取码: x42e 复制这段内容后打开百度网盘手机App,操作更方便哦

如果您在阅读或实际操作过程中有问题,可以随时添加作者好友进行咨询。

标签:控件,单元格,Excel,下拉框,订单,Finereport11,参数,筛选,ID
From: https://www.cnblogs.com/weibw162/p/18102711

相关文章

  • 关于《完全手册Excel VBA典型实例大全——通过368个例子掌握》随书样例的下载
    按照早先下载的电子教程查看和编写vba,有些例子使用运行错误,想着看看原始文件。容易看到,网上有提供的doc或者pdf文档,都不完整,可能是{完全手册Excel_VBA典型实例大全:通过368个例子掌握}.{doc,pdf}这样命名的,139页或者134页的样子。搜索发现很多一些链接要么失效,要么是需要相应的积......
  • 前端base64转换成excel
    baseToExcel(baseStr,fileName){varraw=window.atob(baseStr);varuInt8Array=newUint8Array(raw.length);for(vari=0;i<raw.length;i++){uInt8Array[i]=raw.charCodeAt(i);}constlink=......
  • LibreOffice 将word,excel,PowerPoint文件转换PDF
    安装LibreOffice并将Word和Excel文件转换为PDF文件,并设置文件存放路径的步骤如下:1.安装LibreOffice如果尚未安装LibreOffice,可以通过以下命令在Ubuntu上安装:sudoaptupdatesudoaptinstalllibreoffice2.使用LibreOffice将Word和Excel文件转换为PDF要将Word和Excel......
  • elementUI表单表头增加筛选
    1、增加过滤条件 2、定义数据,必须包含text以及value 3、使筛选的id与行内元素id一直进行筛选 4、对下拉icon大小更改 ......
  • Excel生成随机密码
    针对生成一个8到12位包含大小写字母、数字、以及特殊字符的随机密码的需求,我们可以采用VBA来实现,以确保每种字符至少包含一次,同时随机生成密码长度。下面是一个更贴近需求的VBA函数示例:FunctionGenerateComplexPassword()AsStringDimpasswordLengthAsIntegerDim......
  • EasyExcel库来读取指定Excel文件中的数据
    FileexcelFile=newFile(path);if(!excelFile.exists()){thrownewException("Thespecifiedexcelfiledoesnotexistatpath:"+path);}//使用EasyExcel读取文件......
  • vue前端根据el-table导出excel
    1.导入xlsx、xlsx-style、file-savernpminstall--savexlsxnpminstall--savexlsx-stylenpminstall--savefile-saver2.防止xlsx-style报错vue.config.js添加chainWebpack(config){config.externals({"./cptable":"varcptable"});//xlsx......
  • vcf文件可以用excel打开吗?四种解决方案
    vcf文件可以用excel打开吗?当然可以。一、VCF文件简介VCF(vCard)文件是一种用于存储联系人信息的文件格式。它通常包含姓名、电话号码、电子邮件地址、地址等详细信息。VCF文件在多种设备和操作系统中广泛使用,特别是在电子邮件客户端和移动通讯应用中。二、VCF文件与Excel......
  • java笔记_16_EasyExcel表头设计
    导出对象:importcom.alibaba.excel.annotation.ExcelProperty;importcom.fasterxml.jackson.annotation.JsonFormat;importlombok.Data;@DatapublicclassProdEvaluatResultExcelVO{//ExcelProperty设置默认表头(无自定义表头时,直接生成)@ExcelProperty("表......
  • pageoffice6控制在线打开的Excel编辑区域(局部编辑)
    转发:控制Excel编辑区域(局部编辑)#控制Excel编辑区域(局部编辑)本示例关键代码的编写位置Vue+Springboot注意本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。在实际项目开发中,以下场景可能会用到Excel局部编辑......