近排自己学习了一款软件finereport开发报表模块,自己总结了如何了解需求,分析需求,再进行实践应用开发,最后进行测试数据的准确性,部署报表到项目对应的模块中显示。

一、需求(根据需求文档分析)

  1.条件块:

    

  2.数据块(一部分):

    

  3.数据取值:

    数据源全部来自EAS。通过“物料收发事物汇总”查询,查询每一天的数据,填写到当天时间对应的行中。取数列为“基本数量”。

    等等的仓库数据。

二、使用finereport软件进行页面模板布局

  1.使用.frm的模板开发(本案例)

    

    模板的原则就是没有数据,只是一个简单页面显示,也是方便进行下次运用数据库的方便。(简单的说,就是建楼,先建立框架先)

   预览效果:

    

三、运用PL\SQL developer进行sql语句查询(以下截图仅仅是一部分)

  1.明确数据来源那一张表、需要关联那些表、怎么关联

    

   2.明确页面显示格式、显示的查询条件格式、数据显示格式、后台sql显示数据和页面显示数据的差别

    

   3.明确根据页面显示的名字进行重命名(case ---when  ---then----end)

    

   4.sql查询的字段数(字段条件(多个)+数据(一个)),出现多列

    

四、数据部署在finereport

  1.了解sql在oracle和finereport的区别

    将对应的相关的语法进行分析,改其不同即可。

  2.转换数据条件

    

    实现页面上的查询条件的时间空间显示

  3.效果finereport运行sql预览

    

  4.条件过滤设计

    

  下拉框条件显示

    

   头条件的设计

    

  5.导出设计和查询设计

    导出:

    查询:设计同上,代码如下:

var firstdate = this.options.form.getWidgetByName("firstdate").getValue();

var lastdate = this.options.form.getWidgetByName("lastdate").getValue();
if( firstdate == "" || firstdate==null){ //判断开始日期是否为空
alert("错误,开始时间不能为空"); //开始日期参数为空时提示
return false;
};
if(lastdate == "" || lastdate==null){ //判断结束日期是否为空
alert("错误,结束时间不能为空"); //结束日期参数为空时提示
return false;
};
if( firstdate > lastdate){ //判断开始日期是否大于结束日期
alert("错误,开始时间不能大于结束时间"); //开始日期大于结束日期时提示
return false;
}
//判断结束日期是否大于当前时间
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var currentdate = year + seperator1 + month + seperator1 + strDate;
if(lastdate>currentdate){
alert("结束日期不能超过当前日期!");
return false;
}

  6.页面显示

    

五、数据校对

  1.根据需求文档查询数据

    

  2.校对官方数据与本地数据(要求原则:显示的数据全部要验证)

六、部署项目

  1.创建jsp页面

   

  2.部署页面以及报表(同步到服务器即可“SVN同步”)

    

  3.预览效果

    

七、总结

  从开发需求到需求实现,逻辑总的而言不是非常复杂,但在校对数据的准确性上就是相当大的工作量。正确了固然是快,但是数据有误的时候,要分析数据的错误源工作量相对巨大,因素是

错误源很多(仓库编码、物料编码、组织编码、条件属性(启动、确定、激活等)等出错、别名改错、关联出错(inner join;left join ;right join)、sql条件控制出错、finereport的条件属性出错等等)。

如果最终实现了数据在项目报表上实现,并且数据准确无误,那么你就完成这个需求的开发。我在报表的开发模块上明白,你要完成一项工作,必须要自己思考如何实现,多问几个为什么,也许你的答案就出来了,

在开发的同时也要注重开发的规范性,养好良好开发习惯,为后期维护和同事学习修改提供方便,也为自己的修改bug提供更加方便,也更加迅捷。

  一句话:开发重规范,学习重思考,学习、工作、生活多总结!

运用 finereport 和 oracle 结合开发报表思路大总结的更多相关文章

  1. [转]TEC1401.Report开发技术总结 - 第三章 使用Oracle Reports开发报表-创建一个分组报表(2/4)

    本文转自:http://blog.csdn.net/deepsea_allen/article/details/53900284 第三章   创建一个分组报表 1.     建立数据模型 数据模型用于 ...

  2. SSRS连接ORACLE数据库制作报表

    SSRS报表基于ORACLE数据库做报表示例. 开发环境:VS2010 SQL SERVER 数据库:SQL SERVER 2012 PS:数据库连接部分可能有还有个问题就是ORACLE数据源这一部分 ...

  3. 使用Birt开发报表

    间隔一段时间未使用Birt开发报表后,本文章记录Birt开发报表的常遇到的开发问题及解决措施,方便自己和园内其他朋友学习. 一.Birt连接数据库配置 1.连接DB2数据库: 1.1.birt的数据连 ...

  4. c# FastReport开发报表

    本文介绍c#应用FastReport开发报表,因此首先附该工具下载地址:http://download.csdn.net/detail/hws1058648831a/6378499 下载解压后可以直接 ...

  5. Android——Cocosd2d-x手机游戏开发学习思路

    手机APP应用如雨后春笋般冒了出来,而在众多的APP应用中,游戏占据了半壁江山.它丰富着人们的业余生活,增进了人们之间的沟通交流.也有许多开发的朋友对游戏开发情有独钟,他们不止是享受着有很多的人们去下 ...

  6. 为 Oracle Database 开发 WCF Data Services 和 OData 应用程序

    为 Oracle Database 开发 WCF Data Services 和 OData 应用程序 本教程包含以下部分:   目的   所需时间   概述   先决条件   创建新的网站项目   ...

  7. 使用oracle数据库开发,异常总结

    最近两天使用的oracle数据库开发项目时遇到了2个异常,第一个是执行sql语句时报异常:“ORA-00911: 无效字符”,如下图: sql语句如下: 断点调试,把sql语句拷贝到pl/sql里执行 ...

  8. App 组件化/模块化之路——构建开发架构思路

    App 组件化/模块化开发架构思路 随着业务的发展 App 开发技术也越来越成熟,对开发者来说 App 代码量也迅速地增长到一个数量级.对于如何架构 App 已经每个开发者面临的实际问题.好的架构可以 ...

  9. Oracle ADF 开发必读

    MARK:http://www.oracle.com/technetwork/cn/articles/adf/index-086064-zhs.html 第 1 部分- 借助 Subversion 进 ...

随机推荐

  1. 团队作业8——第二次项目冲刺(Beta阶段)5.27

    1.当天站立式会议照片 会议内容: 本次会议为第七次会议 本次会议在陆大楼2楼召开,本次会议内容: ①:检查总结上次任务完成情况 ②:安排今天的分工 ③:对昨天的问题进行讨论 2. 每个人的工作 (有 ...

  2. 201521123083《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...

  3. 201521123122 《java程序设计》 第六周实验总结

    201521123122 <java程序设计>第六周实验总结 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想 ...

  4. 201521123007《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1. clone方法 1.1 Object ...

  5. 201521123042 Java第一周学习总结

    1. 201521123042 <Java程序设计>第一周学习总结 a.用notepad++和eclipse编写Java程序 b.安装Java Q1.为什么java程序可以跨平台运行?执行 ...

  6. Sublime使用Ctrl+`作为快捷键弹出Console没有反映的解决办法

    很多Sublime新人都遇到了这个问题,到网上搜,信息很片面,而且不少都是旧版本的.于是有了这篇文章.       默认Sublime使用Ctrl+`作为快捷键弹出Console,但不同的系统抑或安装 ...

  7. yum仓库管理

    yum在线管理 rpm包的管理分为 rpm命令管理和yum在线管理,rpm命令管理由于可能需要解决各种依赖问题,在安装软件的时候可能显得比较麻烦,然而,yum在线管理正好和它相反.Yum(全称为 Ye ...

  8. 泛型在Web中的作用

    当我们写网页的时候,常常会有多个DAO,我们要写每次都要写好几个DAO,这样会有点麻烦. 那么我们想要的效果是什么呢??只写一个抽象DAO,别的DAO只要继承该抽象DAO,就有对应的方法了. 要实现这 ...

  9. 如何使用fiddler抓取https请求(PC和移动端)

    最近做一个抓取移动端app接口,并执行评论,收藏的接口功能测试.怎么搞/(ㄒoㄒ)/~~ 按照老思路试一试,第一步还是要用fiddler来帮忙获取接口信息! 一.基本的抓取http请求设置: 1.cm ...

  10. Python: 列表注意细节与元组的基本用法

    列表注意细节: 1.list.clear():将列表中成员清空(与del list区别开) 2.list.copy():复制一份相同的列表(浅COPY,只复制列表第一层) 3.如果两个列表相等,如li ...