帆软工作记录_FR设计器篇
1.决策系统中Js打开新页面
var url=serverurl+servleturl+"?viewlet=/new/县级用户查看单个.cpt&op=write&id="+id;
window.parent.FS.tabPane.addItem({title:"查看已送审",src:FR.cjkEncode(url)})
2.刷新当前报表
location.reload();
3.决策报表中,尽量少使用报表块,报表快多了保存时页面会很卡,可以使用lab给组件设置背景
setTimeout( function () { $("div[widgetname='LABEL0'").css(
"background", "url(${serverURL}/webroot/pictures/NumberOfPatients.png;) center center / contain no-repeat " ); }, 200);
4.给某个控件设样式
var el = this.element.children(); // 获取当前控件
el.css('background', 'black');
el.find('button').css("color","yellow");
5.month 的控件值
当数据库存的是1,2,3...时,如果前端控件是yyyy-MM时,
要做FORMAT(month(today()),"00")的处理,否则页面显示的月份不是01,02,03之类的,会查询不到数据
6.利用switch函数,在设计器中可以根据不同条件执行不同的SQL语句
例如lcfc.IMG项目
select
${switch( num , 1 , " pu,week_id," , 2 , " pu," )}
case
when sum(staff_num )>0 then sum( total_hours) / sum( staff_num )
else 0 end as avgworkhourr
from dwa_a_hr_avgworkhour_d
where 1=1 ${switch( num , 1 , " and week_id = '"+week_id+"'" , 2 , " and week_id = '"+ week_id +"'" )}
-- and day_id = ( select max(day_id ) from dwa_a_hr_avgworkhour_d )
group by ${switch( num , 1 , " pu,week_id" , 2 , " pu" )}
联宝NEC workstation 其他 不同条件下钻到第三个页面的数据集取值
select sum(mcr_count),sum(all_count),sum(m31_count),sum(m32),sum(mcr_count)/sum(all_count) as mcr ,sum(m31_count)/sum(all_count) as m31 , sum(m32)/sum(all_count) as m32 from (SELECT date_id,
mcr_count,
all_count,
m31_count,
CASE
WHEN workstation_flag =1 THEN
m32_48_count
ELSE m32_count
END as m32
FROM
dwa_i_mfg_mcr_d
WHERE
date_id = DATE_ADD( CURDATE( ), INTERVAL - 3 DAY )
${switch(nec , 1,"and nec_flag=1)t1",2,switch( workstation , 1 , "and nec_flag=0 and workstation_flag = 1 )t1" , 2 , "and nec_flag=0 " +if(len(custseg)=0,"and passwd ='"+passwd+"'","and custseg = '"+custseg+"'") +")t1 group by t1.date_id" ))}
/*
NEC 下钻 只取nec_flag=1 WORKSTATION下钻 nec_flag=0 and workstation=1
*/
7.JS实现改变决策报表中鼠标点击/悬停所在行的样式
帆软文档/问答上的回答
setTimeout(function() { //鼠标经过
$(".x-table tr").mousemove(function() {
//所在行背景色:红色
$(this).css("background-color", "red");
//所在行单元格字体:30px
$(this).find("td").css("font-size", "30px");
});
//鼠标点击
$(".x-table tr").mousedown(function() {
//所在行背景色:黄色
$(this).css("background-color", "yellow");
//所在行单元格字体:20px
$(this).find("td").css("font-size", "20px");
});
//鼠标离开
$(".x-table tr").mouseout(function() {
//所在行背景色:白色
$(this).css("background-color", "white");
//所在行单元格字体:12px
$(this).find("td").css("font-size", "12px");
})
}, 1000);
最后实际满足我的需求的语句
var stra = '';
var strb = '';
setTimeout(function() { //鼠标经过
var str1 = 'ASSY' ; //'id="B';
var str2 = 'R/I' ;
var str3 = 'PACK' ;
var str4 = 'REP' ;
var str5 = 'OBE' ;
$(".x-table td").mousemove(function() {
//所在行背景色:红色
stra=$(this).prop("outerHTML");
if( stra.indexOf(str1) != -1 || stra.indexOf(str2) != -1 || stra.indexOf(str3) != -1 || stra.indexOf(str4) != -1 ||stra.indexOf(str5) != -1){
$(this).css("background-color", "red");
}
});
//鼠标离开
$(".x-table td").mouseout(function() {
//所在行背景色:白色
strb=$(this).prop("outerHTML");
if( strb.indexOf(str1) != -1 || strb.indexOf(str2) != -1 || strb.indexOf(str3) != -1 || strb.indexOf(str4) != -1 ||strb.indexOf(str5) != -1){
$(this).css("background-color", "#1F4E78");
}
})
}, 1000);
8.决策报表导出 js
安装了决策报表导出插件,可以使用这种方式
// aaa = sessionID 先定义变量aa 通过公式获取sessionID
var REPORT_URL = '${servletURL}?viewlet=doc/frm/example.frm&op=export&format=excel&sessionID=' + aaa;
window.location = encodeURI(REPORT_URL);
9.样式美观的demo
setTimeout(function(){
$(".fr-trigger-btn-up").css({"border-radius":"0 4px 4px 0","border-color": "#282941"}); //三角框圆角
$(".fr-trigger-text").css({"border-radius": "0 0 0 0","border-right": "1px","border-color": "#282941"}); //文本框圆角
$('.fr-trigger-btn-up').css('background','#0095FF');//三角箭头背景色
$(".fr-trigger-texteditor").css({"background-color":"#282941","color":"white"});
$('.fr-radio-radioon').css('color','WHITE'); //按钮字体为白
$('.fr-radio-radiooff').css('color','WHITE'); //按钮字体为白
//编辑框背景色和字体色
$('<link rel="stylesheet" type="text/css" href="/css/up_down_mojing2.css"/>').appendTo('head');
},10);
如果获取到的类名很长,且中间有空格,前端写JS时,把空格换成.就可以获取到这个类的属性