举个例子给题主吧,这样比较好理解一点。
添加一个模板参数p1,将模板参数添加到参数面板中,并设置为文本框控件,参数默认值是地区;再在报表里添加一个文本框控件,文本控件内容也是地区。希望获取参数面板上文本框和报表里的文本框边框变为红色,字体颜色变为蓝色,直接使用FineReport设计器是无法实现这个效果的,那么使用css样式该如何实现呢?
1、css样式编写
新建一个css文件,获取文本框的类选择器为.fr-texteditor,在css文件中输入该类的样式:
.fr-texteditor{ border:1px solid redcolor:bluefont-weight:bold}
保存该css文件为css.css,保存在%FR_HOME%/下面。
2、引用css
打开模板,点击模板>模板web属性,选择引用css,点击选择按钮,选中刚刚新建的css文件,点击增加按钮,将该css增加到下方列表中,如下图所示:
3、效果查看
点击填报预览,如下图所示效果:
修改css样式除了可引用外部css文件外,还可以通过web页面事件来覆盖其样式。比如说,加载完成之后,希望文本框边框显示为绿色,字体显示为加粗蓝色,即可打开模板,点击模板>模板web属性>填报预览设置,选择为该模板单独设置,添加一个加载结束事件,并且勾选上直接显示控件。
$('.fr-texteditor').css('color','blue')
$('.fr-texteditor').css('font-weight','bold')
$('.fr-texteditor').css('border','1px solid red')
帆软制作的文件本地保存方法为,新建一个css文件,名字自定义,保存到本地安装帆软的目录里的webapps---->webroot里,自己新建两个文件夹,一个用于存放css,一个存放图片;由于项目及业务需要,有时候一个页面会有n张报表,那么这个时候就需要一键导出功能(方便省事)首先项目肯定要集成帆软报表工具,帆软的各种jar包以及静态资源(js,css)等也会集成到项目里。
直接上代码,(主要有两个方法)
function printReport(name, sex, age ){
var params=""
if(""!=name){
params+=",NAME:"+name
}
if(""!=sex){
params+=",SEX:"+sex
}
if(""!=age){
params+=",AGE:"+age
}
var items="{reportlet:zxt/test/test1.cpt"+params+"}"
+",{reportlet:zxt/test/test2.cpt"+params+"}"
doExport(items)
}
function doExport(items){
var form =$("<form>")
form.attr('style','display:none')
form.attr('target', '')
form.attr('method', 'post')
form.attr('action',"${bmw}/ReportServer")
var input1 = $('<input>')
input1.attr('type', 'hidden')
input1.attr('name', 'reportlets')
input1.attr('value',FR.cjkEncode("("+items+")"))
var input2 = $('<input>')
input2.attr('type', 'hidden')
input2.attr('name', 'extype')
input2.attr('value', 'simple')
var input3 = $('<input>')
input3.attr('type', 'hidden')
input3.attr('name', 'format')
input3.attr('value', 'excel')
var input4 = $('<input>')
input4.attr('type', 'hidden')
input4.attr('name','__filename__')
input4.attr('value', '报表批量导出')
$('body').append(form)
form.append(input1)
form.append(input2)
form.append(input3)
form.append(input4)
form.submit()
}
${bmw} 指的是项目的访问路径,另外FR.cjkEncode()用的是帆软报表自带的方法,需要导入帆软提供的两个js文件
${bmw}/ReportServer?op=emb&resource=finereport.js&inter=zh_CN&__fr_locale__=&__v__=2017.01.20.14.49.47.271
${bmw}/ReportServer?op=emb&resource=finereport.chart.js&__v__=2017.01.20.14.49.47.271
然后调用printReport()方法就可以实现将多张报表导出到一个Excel文件里的多个sheet。