2020年7月第三周知识分享汇总
本周开始的知识分享会议已经进行了一轮,在这一轮知识分享会议中,各位都通过自身的实践总结了一大批的经验,在这里总结以下自己的收获。
涉及具体姓名均以代号表示,涉及具体项目不予展示。
DQ的项目经验分享
通过项目完整实施过程中遇到的真实案例讲解了如何进行项目管理。
项目过程的介绍
主要内容有
启动:项目开始
计划:项目的各个节点任务
执行:项目的执行过程
控制:对执行过程进行监督
收尾:交付成果解散项目组
项目中遇到的问题
为了使项目更好的控制,那么需要注意以下方面
1.项目启动会是为了让项目组成员了解自己在项目中的职责,如果未进行的话会导致项目进度很难推进。
2.对于之前的项目中的可以提前判断的内容可以写到工作规范里面去。对于可能会导致后期大量的重复工作的内容,例如:字体样式未统一出现的页面阅读不美观导致的重复劳动;对于可能会影响二期工程的事情,例如:文档的不规范,开发过程不规范;
3.为了增加项目组成员的责任意识,对于会产生工作量新增的事情都需要正式通过邮件告知;
4.对于核心的边界文档需要由用户进行签字确认;
5.对于需要交付的成果需要进行验证测试。
项目中的知识分享
1.服务器数据集,将通用、常用的形态或数据字典,放到服务器数据集,减少重复使用模板数据集,如需调整,修改服务器数据集即可
2.通用熟悉规范,字体样式
3.备份管理
4.多级上报案例分享
项目中的工具分享
1.资料共享使用了腾讯文档,客户提供的网盘
2.会议记录使用了windows 的OneNote
HXD的数据仓库知识分享
主要讲解了数据仓库的基本概念与ETL的概念,最后分享了一个kettle 的使用案例
数据仓库
- 数据仓库的基本概念
- 数据仓库的特点
- 数据仓库的分层结构
- 数据仓库有哪些优势
ETL的概念
- 什么是ETL
- ETL的作用
- 关于数据抽取
- 数据转换和加工
- 常见的数据质量问题
- 主流ETL工具
- ETL工具如何选择
kettle的案例
通过httpClient 调用外部百度地图API实现将文本地址转换未经纬度信息,从而实现数据满足地图报表展示。
课程质量测试
根据课程内容编制相关测试题目,用以检测大家的学习程度。
CPD的Kettle 案例分享
什么是ETL
Extract-Transform-Load,将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
ETL中花费时间最长的是Transform,也就是转化、清洗的过程。
ETL的目的
使用ETL的目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
ETL实现方式
- 借助ETL工具实现
- 使用SQL实现
- 工具与SQL相结合
Kettle案例
- 使用Kettle对数据进行抽取转换
- kettle实现增量更新(较为复杂)
GMR的FR知识分享
主要讲解了FR设计器的一些使用技巧,服务器(决策平台)的使用技巧。
帆软设计器
- 跨Sheet页取数
- 跑马灯实现自动轮播报表展示数据
- 点击弹出iframe窗口展示报表
- 更改控件底色
- 内置数据集复制,通过打开报表文件复制
- 通过超级链接跳转访问Sheet页内报表
服务器(决策平台)
通过图片名称更改标签页logo
其他JavaScript案例
不点击查询,JS实现自动查询
给下拉框控件和日期控件等,添加编辑后事件:_g().parameterCommit();
参数面板JS:
JS清空(重置)条件:https://help.finereport.com/doc-view-1196.html
多参数不能同时为空:http://bbs.fanruan.com/wenda/question1/75269.html
填报相关JS:
使用填报页面控件查询:https://help.finereport.com/doc-view-1828
删除行按钮只有一行时不能删除: https://help.finereport.com/doc-view-2150.html
删除行前提示确认删除:https://help.finereport.com/doc-view-627
填报成功后关闭窗口:https://help.finereport.com/doc-view-618.html
参数界面JS:
单选按钮必须选一个:https://help.finereport.com/doc-view-2027
外置图片插件
外置图片插件主要解决设计过程中资源过大导致的设计器崩溃问题,衍生知识点:在进行预览前如果不进行保存的话也容易导致FR设计器崩溃。
GZZ的FR知识分享
FR设计器
介绍了FR设计器的模块功能
项目案例分享
-
使用多个统计图实现复杂功能
-
使用图片来最为折现标记点
-
通过颜色来实现瀑布图
-
通过js遍历加
实现文字竖向排列 -
通过折线图对每个柱状图增加汇总数字
WDD的技术分享–单点登陆
通过FR内置接口实现单点登陆。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="java.util.Map" %>
<%@ page import="java.net.*" %>
<%@ page import="java.io.*" %>
<%@ page
import="com.fr.data.NetworkHelper, com.fr.decision.authority.data.User,com.fr.decision.mobile.terminal.TerminalHandler,com.fr.decision.webservice.exception.user.UserNotExistException,
com.fr.decision.webservice.utils.DecisionServiceConstants,com.fr.decision.webservice.v10.login.LoginService,com.fr.decision.webservice.v10.login.TokenResource,com.fr.decision.webservice.v10.user.UserService,
com.fr.general.ComparatorUtils,com.fr.log.FineLoggerFactory,com.fr.security.JwtUtils,javax.servlet.ServletException,javax.servlet.ServletRequest,javax.servlet.ServletResponse,javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse,java.io.IOException"%>
<%
String login = request.getParameter("login");//登陆账号
if(!"".equals(login)){
//适用于FR 10.0
try {
String token = LoginService.getInstance().login(request, response, login);
if (token == null) {
//改成自己的登录界面
response.sendRedirect("http://localhost:8080/webroot/decision/url/mobile");
return;
}
session.setAttribute(DecisionServiceConstants.FINE_AUTH_TOKEN_NAME, token);
response.sendRedirect("http://localhost:8080/webroot/decision/url/mobile");
return;
} catch (Exception e) {
e.printStackTrace();
}
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body >
</body>
</html>
LL的FR知识分享
FR功能讲解
- EXCEL导入清空
- 批量删除
- 删除的时候弹窗提示
- 邮箱配置定时调度
- 定时刷新网页框架
- 单元格横向滚动
项目经验分享
- 填报完成刷新页面或者刷新数据不刷新参数面板
- sql书写规范
- 不要直接使用隐藏单元格功能,尽量用条件属性进行隐藏单元格
ZT的项目经验分享
讲述了从需求分析到设计完成组织结构树状报表的过程
需求场景描述
在实际项目过程中,有一个项目需求场景如下:
客户有一系列大屏展示需求,但是数据是通过填报形式录入,需要使用excel批量导入功能,但是线下收集的excel数据,是由不同业务部门填写,其中,组织信息的填写各不相同,且信息处多次强调后,下次提交的数据依然存在命名规则不一致情况,所以希望通过系统来控制标准,来统一数据录入时,关键的组织数据的规范性;而且组织数据在年度末时,可能会有架构调整,希望历史数据汇总显示可以根据新架构显示,还需要一个可以所见即所得的组织编辑维护界面;
异常数据如下,不同部门对同一公司的数据命名各不相同,如不能统一维度,会给后续分析带来很大困扰
分析设计过程
需求盘点和主要解决方案规划
通过分析客户需求痛点,主要总结以下几点待解决问题:
1、填报导入时,如果通过系统手段,规范不同业务部门填报数据?
2、组织更新时,历史数据如何实现动态切换?
3、组织更新时,需要所见即所得的编辑页面?
系统中创建标准的组织数据,以此为基准,在填报导入时,判定导入组织数据是否符合规范,对不符合规范的部门,限制导入提交,并提醒异常数据位置!
业务部门excel导入数据,维护的组织信息肯定是中文名称,所以在维护组织信息时,需要考虑增加主键信息,填报时,将每条组织数据对应的组织主外键录入数据库,数据汇总过滤时,按组织表外键分类汇总;
参考常规业务系统的组织维护界面,设计树形组织报表,展示组织数据,并开发新建组织表和维护组织表,与树形表关联,实现组织数据的维护操作。
设计解决方案
作为组织数据的验证的基准和填报时需要转换的外键,第一步需要考虑设计的就是组织数据的设计;
创建数据库表(可以跟客户确认或者包含核心需要内容即可)
包含主键、外键、部门名称、组织类型、上级部门、主要负责人、组织级别、排序号等信息即可;
设计树形展示报表和组织新增表、组织编辑表
树形表主要展示组织信息,添加超链,链接新增表和编辑表;
填报导入添加状态判定和提交校验
判断状态用来判定导入数据是否符合标准,且将符合标准的组织数据,转换出组织外键,提交校验用来限制数据存在异常的用户提交;
落地设计
树形报表设计
1、增加树节点按钮;
2、增加单元格数据过滤并去除父格自动过滤;
3、手动设置左父格;
4、确认集团层级显示位置;
5、添加超链按钮
组织新增表
报表为常规填报报表开发,注意交互和用户体验即可:
不过添加了三个功能点;
当前填报层级说明
自定义字母+自动递增组织序号+自动递增层级
父窗口刷新
组织编辑表
组织编辑表主要实现数据更新操作,需要与新增表做
以下区分
编辑组织为树形表中的,当前组织,参数为组织编号
编号和id支持更新;
更新上级部门会导致组织架构的变化,为防止失误操作
批量导入控制
根据导入数据组织名称,查询组织表code,名称符合
规范,返回code,否则为空;
添加判定条件,实现定点提示功能
结束语
客户需求中,提取关键问题,并思考解决方案
树形报表开发流程和配置项;
常规填报报表开发流程及悬浮提示功能配置;
灵活使用SQL函数,实现自定义编号功能
数据校验定点提示方法;
常用的子填报父刷新功能使用;
本周培训会议总结
本周知识分享会议需要重点学习的内容:项目管理过程中的细节,多级上报的实现,Kettle增量更新的实现,树形报表的实现。