FineReport——JS二次开发(分页预览)

BS访问某个cpt模板,报表servlet将会将cpt文件解析成对应的html,报表内容最终转换为一个table,位于id=content-container的div中。

在模板和html页面中,他们定义的方法可以相互调用,不过得先获取到对象:

由于分页预览只是展现,在这种查看方式下FR没有现成单元格获取方法,可以用jquery语法获取指定单元格,如:
$("tr[tridx=行号]","div.content-container").children().eq(列号)
在填报预览中可以有多种方法获取单元格的值。
获取单元格值:
$("tr[tridx=行号]","div.content-container").children().eq(列号).html();

修改单元格值:

$("tr[tridx=行号]","div.content-container").children().eq(列号).html(新值);

鼠标点击改变鼠标所在行颜色:

contentPane.makeHighlight('red'); //使点击的行变成红色

鼠标滑过改变鼠标所在行的颜色:

contentPane.makeHighlight('red','mouseover');

定时刷新报表模板:

setInterval("self.location.reload();",10000); //10000ms即每10s刷新一次页面。

禁用右键(防止通过查看源码而得到报表路径):

function nocontextmenu(event){
event = event || window.event;
if (event.which == 2 )
event.returnValue = false;
return false;
}
document.oncontextmenu = nocontextmenu;

改变鼠标所在行的行高:

$('tr').each(function(){
                var _height = $(this).height();
                $(this)
                .mouseover(function(){$(this).height('40');})
                .mouseout(function(){$(this).height(_height);});
             });

通过选择一个日期给另外一个日期控件赋值(在一个日期控件的编辑后事件中添加如下JS,控件名分别为:starttime,endtime):

var date1=new Date(this.getValue());
var date2= new Date();
date2.setTime(date1.getTime()+(7*24*60*60*1000));
this.options.form.getWidgetByName("endtime").setValue(date2);

 

 

 

posted @ 2015-10-10 14:55  贝尔格里尔斯  阅读(1358)  评论(0编辑  收藏  举报