運用 finereport 和 oracle 結合開發報表思路大總結

来源:http://www.cnblogs.com/lgs-19/archive/2017/10/16/7677575.html
-Advertisement-
Play Games

近排自己學習了一款軟體finereport開發報表模塊,自己總結瞭如何瞭解需求,分析需求,再進行實踐應用開發,最後進行測試數據的準確性,部署報表到項目對應的模塊中顯示。 一、需求(根據需求文檔分析) 1.條件塊: 2.數據塊(一部分): 3.數據取值: 數據源全部來自EAS。通過“物料收發事物彙總” ...


 

  近排自己學習了一款軟體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提供更加方便,也更加迅捷。

  一句話:開發重規範,學習重思考,學習、工作、生活多總結!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本篇博客的內容也不算太複雜,算是AutoLayout的一些高級的用法。本篇博客我們主要通過一些示例來看一下AutoLayout中的Content Hugging Priority以及Content Compression Resistance Priority這兩個優先順序。下方我們先來簡單的看一下這 ...
  • 線性佈局(LinearLayout) 備註 match_parent 填充佈局單元內儘可能多的空間 wrap_content 完整顯示控制項內容 orientation 有兩個值, horizontal 水平顯示, vertical 垂直顯示 百分比 使用百分比需要將 width 屬性設置為0或0px ...
  • Oracle資料庫 內置系統函數主要分為以下類別:數學函數、字元串函數、日期函數、轉換函數、聚合函數、分析聚合函數 一、數學函數 返回數字 abs(n):返回數字n的絕對值 ceil(n):返回>=數字n的最小整數 floor(n):返回<=數字n的最大整數 round(n,[m]):做四捨五入運算 ...
  • 每次看到馬路對面摩托羅拉的大牌子,都想起谷歌125億美元收購摩托羅拉移動,後來又以29億美元賣給聯想的事情。谷歌所做的決策都比較考慮長遠利益,在這串交易中,谷歌獲得了摩托羅拉最有價值的幾千項專利,穩健了Android的生態。谷歌曾經在美國一個地區占用巨大的面積建立了太陽能發電站,人稱“烤鳥”項目。因 ...
  • 今天遇到一個案例,在使用命令修改一個測試伺服器(SQL Server 2014標準版)的伺服器排序規則時,遇到了下麵錯誤信息 (具體賬號信息脫敏處理,隨機生成一個賬號密碼) The Windows account sa does not exist and cannot be provisioned... ...
  • 一查詢數值型數據: SELECT * FROM tb_name WHERE sum > 100; 查詢謂詞:>,=,<,<>,!=,!>,!<,=>,=< 二查詢字元串 SELECT * FROM tb_stu WHERE sname = '小劉' SELECT * FROM tb_stu WHER ...
  • 約束的概念:確保在列中輸入有效的值並維護表之間的關係。 Primary key約束 功能:primary key(主鍵約束),一個表中只能有一個,不能有空值,不能有重覆值. 創建表時定義約束:欄位名 數據類型[長度] primary key Unique約束功能:unique(唯一約束), 指定在同 ...
  • 經常有用戶遇到安裝近乎的時候,會卡在資料庫嚮導頁面。安裝環境也做了比對,沒有問題,Windows伺服器、Mysql5.0+版本的資料庫、.net framework也安裝正確了。環境沒問題,那是不是資料庫不對啊。然後又用可視化工具本地、異地遠程都能正常訪問資料庫,可仍然是卡在數據安裝的嚮導頁面,這究 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...