FineReport智能报表工具- CSS修改控件样式

news2025/1/31 22:39:33

1. 概述

 1.1 使用场景

在实际项目中,为了让 FineReport 报表中的控件和页面风格一致, 可以通过 CSS 修改控件的显示样式。

如下图所示,希望参数面板上文本框控件的边框变为红色,字体颜色变为蓝色。

除更换控件字体、修改边框颜色外,还可以更换控件的图标、修改控件的背景等。如下可以调整的内容:

  1. 修改控件默认的蓝色背景

  1. 将控件的背景调整为半透明或者透明

  1. 修改控件的字体大小、字体样式、字体颜色

  1. 修改控件的长宽大小高度

  1. 修改控件边框的颜色

  1. 修改控件选项中字体大小选项间距

本文将会给出 FineReport 中有那些控件样式可以修改,并通过几个示例说明如何修改。如下列出一下使用较多的场景:

  1. 修改下拉框的字体颜色、字体大小、默认蓝色背景,背景透明度、选项列表的长宽大小等

  1. 修改按钮的字体颜色、字体大小、默认蓝色背景,背景透明度、按钮长宽大小等

  1. 修改标签控件的字体颜色、字体大小、边框背景等

  1. 修改日期控件的字体颜色、字体大小、字体型号、默认蓝色背景,背景透明度、选项日期格子的长宽大小等

  1. 修改文本控件的字体颜色、字体大小、边框背景等

  1. 修改下拉树、视图树的字体颜色、字体大小、默认蓝色背景,背景透明度、选项列表的长宽大小等

  1. 修改单选、复选按钮控件的字体颜色、字体大小、背景透明度、按钮选项的排列位置等

2. 获取控件 CSS 样式

用户在修改前需要先获取到控件的 class 选择器。

用户可以参考 2.1 节通过浏览器获得控件的 class 选择器,也可以参考 2.2 节直接查看 FR 的控件对应的 class 选择器。获取到 class 选择器之后就可以直接修改控件的样式,具体使用可参考 CSS 语法或者本文示例。

2.1 查看控件的 class 选择器

1)浏览器预览报表,这里以 Chrome 浏览器为例。

2)将鼠标放在需要查看 class 的控件上,右键选择「检查」,即可查看到该控件的 class 语句。如下图所示:

2.2 FR 控件对应的 class 选择器

注:新决策报表需要重新获取 class,以下 class 会有变化。

class选择器

对应的控件样式

适用控件

.fr-texteditor

文本区域边框,字样(大小,颜色,字体等)

文本、文本域、下拉框、下拉复选框、树、日期

.fr-texteditor-focus

获取焦点后的文本框的边框、字样

文本、文本域、下拉框、下拉复选框、树、日期

.fr-trigger-texteditor

下拉控件边框,字样(大小,颜色,字体等)

下拉框、下拉复选框、下拉树、日期

.fr-trigger-texteditor-focus

获取焦点后的下拉控件边框、字样

下拉框、下拉复选框、下拉树、日期

.fr-combo-list-item

下拉项的边框、字样、背景色、高度

下拉框、下拉复选框

.fr-combo-selected

获得焦点的下拉项的边框、字样、背景色

下拉框

.fr-combo-list-item-noselect

下拉项中“不选“边框、字样、背景色

下拉框

.fr-widget-click

下拉项中文本的字样、背景色

下拉复选框

.fr-checkbox-checkon

已选择的下拉项中文本边框、字样、背景色

下拉复选框

.fr-checkbox-checkoff

未选择的下拉项中文本边框、字样、背景色

下拉复选框 

.fr-list-bwrap

列表控件的背景色

列表

.fr-list-node-anchor

字样

列表

.fr-list-node-over

鼠标移动上去的列表项背景色,字体颜色

列表

.fr-list-node-selected

被选中的列表项的背景色,字体颜色

列表

.fr-tree-node

树列表的样式(背景色、字体等)

视图树

 .fr-tree-elbow-plus

加号图标样式

视图树

.fr-tree-node-collapsed 

未展开的文件夹图标样式

视图树

.fr-tree-elbow-minus

减号图标样式

视图树

.fr-tree-node-expanded 

已展开的文件夹图标样式

视图树

.fr-tree-node-icon

子节点图标样式

视图树

 .fr-btn-text

按钮中文本的字样(大小,颜色,字体等)

按钮

 .fr-btn-up

按钮宽度、高度、背景色、边框

按钮

.fr-datepicker

展开的文本区域,字样(大小,颜色,字体等)

日期

3. 示例

设置控件的 CSS 样式可以在「模板 Web 属性」中引用 CSS 实现,也可以在「模板 Web 属性」中添加事件实现,据此给出如下两个示例。

3.1 修改文本框边框颜色和字体

希望参数面板上文本框控件的边框变为红色,字体颜色变为蓝色。如下图所示:

3.1.1 准备模板

1)新建模板,添加一个模板参数 p1。

2)将参数添加到参数面板中,并设置为文本框控件,参数默认值是地区。

最终模板如下图所示:

3.1.2 准备 CSS 文件

新建一个 CSS 文件test.css,保存在%FR_HOME%webroot 目录下。

CSS 文件内容为:

.fr-texteditor{ border:1px solid red; color:blue; font-weight:bold;}

其中 .fr-texteditor 是文本框类选择器,代码修改文本框的边框为红色,字体为蓝色加粗。 

3.1.3 引用 CSS 文件

打开模板,点击「模板>模板 Web 属性」,选择 「引用 CSS」,点击选择按钮,添加刚刚新建的 CSS 文件。如下图所示:

3.1.4 预览效果

保存模板,点击「分页预览」,效果如 3.1 节开头所示。

注:不支持移动端。

3.2 设置控件不可用不置灰

参数面板中控件,设置为「不可用」时,希望显示效果不置灰,和设置为「可用」时效果一致。如下图所示:

注:控件选择不可用后,预览不透明度降低,显示灰色  。

3.2.1 准备模板

新建模板,在 A1 单元格中添加一个「下拉框」控件,控件设置为不可用。如下图所示:

3.2.2 添加 WEB 页面事件

点击「模板>模板 Web 属性>填报页面设置」,选择 「为该模板单独设置」,勾选「直接显示控件」,添加一个「加载结束」事件,如下图所示:

JavaScript 代码如下:

setTimeout(function() {$(".ui-state-disabled").css({'opacity':'1'});}, 100)

代码重置控件的不透明度为 1,其中opacity: value|inherit

描述

value

规定不透明度。从 0.0 (完全透明)到 1.0(完全不透明)。

inherit

应该从父元素继承 opacity 属性的值。

3.2.3 预览效果

保存模板,点击「填报预览」。效果如 3.2 节开头所示。

注:不支持移动端。

3.3 设置日期控件展开框字体样式

希望参数面板上日期控件的字体由默认字体变为华文楷体。如下图所示:

3.3.1 准备模板

1)新建模板,添加一个模版参数 p1。

2)将参数添加到参数面板中,并设置为日期控件。

最终模板如下图所示:

3.3.2 添加初始化后事件

点击「日期控件」,在「控件设置>事件」处,为其添加一个「初始化后」事件,如下图所示:

JavaScript 代码如下:

setInterval(function(){$(".fr-datepicker").css("font-family", "华文楷体");},500)

3.3.3 预览效果

保存模板,点击「分页预览」,效果如 3.3 节开头所示。

注:不支持移动端。

3.4  修改特定控件样式

CSS 修改样式的时候,如果不指定到特定的控件,则修改的是所有具有此 class 选择器的控件。如果要修改指定控件的样式,就必须获取到指定控件后再修改。

获取指定的控件的方法较多,如何使用,可以参考 CSS 选择器和 jQuery 选择器的用法。

如下示例:

参数面板中有两个文本框控件,如果只想修改「文本框控件」 TEXTEDITOR0 的样式,则先要获取到 TEXTEDITOR0 控件元素。

JavaScript 代码如下:

setTimeout(function() {

$("div[widgetname=TEXTEDITOR0]").find('.fr-texteditor').css('background-color', 'blue');

$("div[widgetname=TEXTEDITOR0]").find('.fr-texteditor').css('color', 'white');

}, 100);

总结

帆软FineReport通过修改控件的 CSS 样式来实现帆软报表制作。CSS 是一种用来表现 HTML 或 XML 等文件样式的计算机语言,简单来说,HTML 用于构建网页的结构、数据可视化分析大屏、CSS 用于构建 HTML 中元素的样式,所以修改控件的 CSS 即可修改控件的样式。不支持通过修改控件的 CSS 样式来实现修改控件样式。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从风控中那些被标准化定义的问题谈起

说到风控业务中被标准化的定义问题,作为风控人最应该来谈谈这个内容,尤其是在数字化的风控内容上。数字化风控的标准化程度较高,在互金经过了一番喷薄的发展后,对于SOP守则,业务问题的定义及留给后续从业者可借鉴的资料…

足球人生:青春不过几届世界杯

🎉花有重开日,人无再少年。将近一个月的卡塔尔世界杯正式落帷幕,见证了最伟大的世界杯决赛,新老两代球王的巅峰对决,节奏拉满。诸神黄昏,球王加冕,最完美的结局。究竟怎样的颠沛流离才配得上这一…

web--拉灯泡切换黑天与白夜的精美动画

功能: 进入界面会出现一个灯泡(下面有可以自由飘动也可以自由拉动的绳子),鼠标左键按住不松开可以拉动绳子,松开变化亮起,同时有拉响的清脆声响,把它放在web作业的设计里面绝对是非常非常不错的…

SQL注入总结复习

SQL注入总结复习 一、前提 1、web三层架构 学习SQL注入,前提必须要了解web程序的三层架构。 数据访问层(DAL):主要负责对数据库进行增删改查,将存储在数据库中的数据提交给业务层,同时将业务层处理的数据…

第七章 集合相关知识

什么是集合 为了存储不同类型的多个对象, Java提供了一系列特殊的类, 这些类可以存储任意类型的对象,并且存储的长度可变,被统称为集合。集合可以简单理解为一个长度可变可以存储不同数据类型的动态数组。集合都位于java.uti包中,使用集合时必须导入java.util包。 …

前端二面必会手写面试题汇总

实现Vue reactive响应式 // Dep module class Dep {static stack []static target nulldeps nullconstructor() {this.deps new Set()}depend() {if (Dep.target) {this.deps.add(Dep.target)}}notify() {this.deps.forEach(w > w.update())}static pushTarget(t) {if …

LeetCode刷题复盘笔记—一文搞懂动态规划之300. 最长递增子序列问题(动态规划系列第二十七篇)

今日主要总结一下动态规划的一道题目,300. 最长递增子序列 题目:300. 最长递增子序列 Leetcode题目地址 题目描述: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除…

想要月入过万?不防尝试一下Python这个职业!

自从20世纪90年代初发布以来,Python一直相当火爆,在这二十多年里,它的流行程度远远超过了C、C#、Java甚至Javascript。 Python为什么受欢迎? Python迅猛发展背后的一个主要驱动力是它学习起来相当容易,使用起来功能强…

程序员需要了解的硬核知识CPU

大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不了计算机最核心的 - CPU C…

【C语言进阶】通讯录不好用?进来,零基础带你写出自己的通讯录

目录 🤩前言🤩: 😎正文:编写通讯录😎: 1.文件建立: ①.头文件Contact.h: ②.函数定义文件Contact.c: ③.工程测试文件test.c: 2.通讯录整体执行…

A White Paper on Neural Network Quantization--阅读笔记1

A White Paper on Neural Network Quantization--阅读笔记1一、模型量化的意义二、量化主要做什么三、目前量化主要分类四、量化基本知识介绍0、基本知识1、误差来源2、量化范围的设定五、量化方法介绍1、均匀仿射量化(Uniform affine quantization)2、对称均匀量化(Symmetric …

热门技术中的应用:微服务相关协议-第35讲-二进制类RPC协议:还是叫NBA吧,总说全称多费劲

前面我们讲了两个常用文本类的RPC协议,对于陌生人之间的沟通,用NBA、CBA这样的缩略语,会使得协议约定非常不方便。 在讲CDN和DNS的时候,我们讲过接入层的设计,对于静态资源或者动态资源静态化的部分都可以做缓存。但是对于下单、支付等交易场景,还是需要调用API。 对于…

基于yolov5的智慧交通监测系统

本项目实现了智慧交通监测、红绿灯监测、行人监测、车辆识别、斑马线闯红灯监测等多种监测功能。 目录 背景 演示效果: 检测代码样例: 最后的检测效果如图所示 项目具体的工作流程为: 总结: 背景 针对城市交通拥堵问题&#x…

Effective C++条款33:避免遮掩继承而来的名称(Avoid hiding inherited names)

Effective C条款33:避免遮掩继承而来的名称(Avoid hiding inherited names)条款33:避免遮掩继承而来的名称1、同名全局变量在局部作用域中被隐藏2、继承中的隐藏3、进一步论证——继承中的函数的隐藏4、如何将隐藏的行为进行覆盖4…

vTESTstudio入门到精通 - 如何自动化控制Simulation节点_03

我们工作中经常会遇到需要仿真大量的CAN/CANFD报文的情况,通常我们只能通过人工去测试,因为很难实现仿真控制大量报文的发送和停止?那我们该如何去解决呢? 今天我们主要来解决这个问题,通过CAPL去控制simulation节点的仿真发送和停止,最大限度的在实验室仿真实车的报文数…

段错误产生原因

嵌入式C开发&#xff0c;或多或少都遇到段错误&#xff08;segmentation fault &#xff09;。 下面是一些典型的段错误产生的原因&#xff1a; 访问不存在的内存地址 访问只读的内存地址 栈溢出 内存越界 …… 实例 1. 访问不存在的内存地址 #include <stdio.h>in…

小学生C++编程基础 课程7(A)

897.a到b (课程7&#xff09; 难度&#xff1a;1 登录 898.2位偶数 &#xff08;课程7&#xff09; 难度&#xff1a;1 登录 899.从0开始&#xff08;课程7&#xff09; 登录 900.前面数 &#xff08;课程7&#xff09; 登录 901.奇数 (课程7) 登录 902.7的倍数 (课程7) …

第二证券|新冠药销售占比不到1.5%,三连板医药龙头跌停!

今天早盘&#xff0c;A股商场延续调整态势&#xff0c;沪指震动失守3100点整数关口&#xff0c;深证成指、创业板指跌幅在1%左右。 虽然指数体现不佳&#xff0c;但个股层面不乏亮点。从涨跌份额来看&#xff0c;早盘A股商场有2695只股票上涨&#xff0c;2017只股票跌落&#x…

计算机毕设Python+Vue学生在线请假管理系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

双向扩散模型

🍿*★,*:.☆欢迎您/$:*.★* 🍿 简单的描述是一个图先扩散为噪声而后 噪声扩散为另一个图 这样的思路类似如 当人类看到图之后 开始联想和脑补 不断的脑补 一步一步的 脑补出另一幅图 比如给定图的一部分 脑补出另一部分 与传统的扩散模型 不同的点在于 初始给定的是一个…