• 运用 finereport 和 oracle 结合开发报表思路大总结


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

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

      1.条件块:

        

      2.数据块(一部分):

        

      3.数据取值:

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

        等等的仓库数据。

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

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

        

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

       预览效果:

        

    三、运用PLSQL 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提供更加方便,也更加迅捷。

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

  • 相关阅读:
    js常用代码整理
    java 序列化时排除指定属性
    FastJson bean序列化属性顺序问题
    用logger在控制台打印信息
    UNITY 内存问题资料收集
    数组指针和指针数组的区别
    inl文件介绍
    C++防止文件重复包含
    VS2017 Intelligense C++ 设置的几个重点
    GPU架构图
  • 原文地址:https://www.cnblogs.com/lgs-19/p/7677575.html
Copyright © 2020-2023  润新知