需求:给公司的核心Boss系统做各种报表
困难:fineRePort软件熟悉的还凑合,难点在于java做的boss系统web界面和业务逻辑不熟悉,数据库的表和字段一概不知
熟悉数据库的思路:这次没有想几百张表怎么熟悉,或划模块熟悉。
而是直接参考同事以前做的报表,看他写的sql,并结合数据库文档,不断的改不断的试
看sql的难点在于,我们这报表一般的都要连十几张表,里面还各种if、case when、函数、关键字...等,一条sql写100多行,看着真心晕,真心懵逼啊。
1、先打开他那报表,试着跑起来,发现查不出来数据
2、选择查询条件,还是查不出来。这时候就只能看他那sql是咋写的了
看sql的思路(如下图,顺序无所谓,总共就3步):
1、先摒弃case等 多余的东西,只找出要查的字段
2、然后找出所有连表,并 分出来哪一张是主表,其他都是从表。
找外键关系,看他表的关系(通过sql的连表 + on的条件,对应真实表看)
3、根据查询条件分析使用,看他最后一个连表,后面跟的where条件
结果发现是没有授权,但是这思路我觉得对我还是有帮助的
解决:同事提点,给出了要操作哪5张表
我想出来了一个 在上千张表的库中,快速筛选有用数据表的方法
思路:只要数据不是今天或本月(不是热门表)就筛掉,换下一张表看
sql:select 添加时间 from 每个表 order by 添加时间 desc limit 100
:
- $$$是当前行
- 父子格的默认过滤关系,相当于拿父格进行分组 查询
- 在公式中&B10 给b10列自动生成编号
- x轴是分类,Y轴是系列
- 单元格图表和悬浮图表的不同处:单元格图表是要先合并出一个图表大小的位置,悬浮的不用合并(悬浮,不基于单元格大小而显示)
- 在局域网中,如何让同事看见你的报表:给url上的localhost换成本机ip就可以了
4、鼠标跟随效果怎么做:模板-》模板web属性-》分页预览设置-》加载结束-》点铅笔(编辑)
var background_color = "rgb(255,0,0)"; //新背景色
var frozen_back_color = new Array();
var back_color = new Array();
var $last_tr;
var i = 1;
// 首行除外
$('.x-table tr:gt(1)').bind("mouseenter", function () {
//$(".x-table tr")
if (typeof($last_tr) != "undefined") {
if (typeof($(this).attr("id")) != "undefined") {
if (typeof($("#content-container #frozen-west").attr("id")) != "undefined") {
$("#content-container #" + $last_tr.attr("id")).each(function () {
$(this).children("td").each(function () {
$(this).css("background-color", frozen_back_color[$(this).index()]);
});
i = i + 1;
});
i = 1;
} else {
$last_tr.children("td").each(function () {
$(this).css("background-color", back_color[$(this).index()]);
});
}
frozen_back_color = [];
back_color = [];
}
}
if (typeof($(this).attr("id")) != "undefined") {
if (typeof($("#content-container #frozen-west").attr("id")) != "u