BI开发记录
发表于更新于
阅读量: 成都
技术BI帆软BI开发记录
QibaoOracle SQL
join using(name) 等于 join on a.name = b.name
当模式设计对联接表的列采用了相同的命名样式时,就可以使用 USING 语法来简化 ON 语法,格式为:USING(column_name)。
1 2 3
| select employee_id,last_name,department_name from employees join departments using (department_id)
|
等价于
1 2 3
| select employee_id,last_name,department_name from employees join departments on employees.department_id = departments.department_id
|
Alternative quote operator 代替引用运算符
‘employee is ‘ || last_name => q’[employee is ]’ || last_name 使用q’[]’ 这样的组合来代替 ‘’ 。
具体的使用场景,为了避免在拼接的自定义字符串中再次出现 ‘ 符号导致无法查询语句无法被解释。
例如:
1 2
| select department_name || ' Department's Manager Id: ' || manager_id from departments
|
显然由于 Department’s Manager 中含有一个 ‘ 符号,导致这个语句会出错。
这是我们就可以使用代替引用运算符
1 2
| select department_name || q'[ Department's Manager Id: ]' || manager_id from departments
|
SQLite
介绍:SQLite是一种轻量级的关系型数据库管理系统(DBMS),它是一个开源的、零配置的、自包含的、事务性的SQL数据库引擎。
DDL操作
创建一个Employee表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE TABLE [F_Employee] ( [EmployeeId] INTEGER NOT NULL, [EmployeeName] NVARCHAR(20) NOT NULL, [Phone] NVARCHAR(24), [Email] NVARCHAR(60), [HireDate] DATETIME, [JobId] INTEGER, [Salary] REAL, [CommissionPCT] INTEGER, [ManagerId] INTEGER, [DepartmentId] INTEGER, [CreateUser] NVARCHAR(24), [CreateTime] NVARCHAR(24), [UpdateUser] NVARCHAR(24), [UpdateTime] NVARCHAR(24), CONSTRAINT [PK_Employee] PRIMARY KEY ([EmployeeId]) );
|
FineBI
获取[年/月]时间区间的天数
获取开始时间到结束时间之间的天数,开始时间和结束时间之间为[年/月]
DAYVALUE(MONTHDELTA(${结束时间},1)) - DAYVALUE(${开始时间})
DATEIF(${结束时间},${开始时间},'d')
持续更新
FineReport
动态SQL参数
1 2
| where 1=1 ${if(len(NY)==0,"","and NY like '"+NY+"'")}
|
导出模板按钮
1 2 3 4 5 6 7 8
| var url="${servletURL}?viewlet=./test.cpt" var config = { ny:this.options.form.getWidgetByName("ny").getValue(), format:"excel", extype:"simple" } FR.doHyperlinkByPost(url,config)
|
校验并提交按钮
1 2
| _g().verifyAndWriteReport();
|
Excel自定义导入按钮
1
| _g().importExcel("customize");
|
删除按钮保留最后一行
删除按钮控件名称为 ‘del’ , 可见设置为 true,可用设置为 false
1 2 3 4 5 6 7 8 9 10 11 12 13
| var arr = ['del']; for (i = 0; i < arr.length; i++) { var kj = $('[widgetname="' + arr[i].toUpperCase() + '"]:visible'); var del = _g().getWidgetsByName(arr[i].toUpperCase()); for (j = 0; j < del.length; j++) { kj.length <= 1 ? del[j].setEnable(false) : del[j].setEnable(true); } }
|
修改默认按钮的背景色
1 2
| $('.fr-btn-up').css('background','#fff0')
|
部分美化(一)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $('.parameter-container-collapseimg-up').removeClass('parameter-container-collapseimg-up');
$('.fDright').removeClass('fDright'); $('.fDbottom').removeClass('fDbottom'); $('.fDtop').removeClass('fDtop'); $('.fDleft').removeClass('fDleft');
$('.x-editor').css('border','2px solid #36d12a'); $('.fr-texteditor').css('border','2px solid #36d12a'); $('.editor-transparent').css('border','2px solid #36d12a');
|
配置单行编辑结束后的更新时间和更新人
通过控件“编辑结束”事件,配置setCellValue()函数来更改指定单元格的值
user_name = $fine_username
update_time = FORMAT(NOW(),”yyyy-MM-dd HH:mm:ss”)
user_cell = “更新人所在的单元格列号” + ROW()
update_time = “更新时间所在的单元格列号” + ROW()
1 2
| _g().setCellValue(user_cell, user_name); _g().setCellValue(time_cell, update_time);
|