Posted on 2012-09-03 17:50
思達商智 閱讀(1810)
評論(0) 編輯 收藏 所屬分類:
Java報表設計
報表軟件數據填報從廣義上講實際上涵蓋了數據從收集到進入數據庫這樣一個廣泛的范圍,涵蓋了填報模板制作、分發、收集、填報、導入、校驗、審核、發布、權限控制等一系列功能。狹義的數據填報只包含數據在線填報功能,指用戶在線填寫一定的數據,然后點擊提交將數據錄入數據庫。
鑒于目前數據填報軟件的功能范圍,本文將討論廣義的數據填報。
在填報人員進行數據填報之前,一般應由IT人員或者業務人員針對填報需求進行填報模板的制作,根據將來填報模式的不同,應該制作符合不同填報方式的模板。在填報模板的制作過程中,用戶將設計填報頁面(在線)或表格(離線)的樣式,數據項目的名稱、數據項目之間的邏輯關系、數據校驗的邏輯以及數據庫維護的代碼。這部分工作將在基于Java的圖形用戶界面中完成。
在Style Report中,填報模板的制作有worksheet制作完成,填報界面以及布局安排由viewsheet中完成,接下來,我們就簡單了解下Style Report的報表數據填報過程:
此報表數據填報的要實現目標:
1.打開填報頁面后,可以在本月數,本年累計,上年同期列填入相應的數據。如果本月已經填報并提交過,會自動彈出提示:該企業本月月報已完成填報!用戶無法更改已經填報過的數據。

2.當打開填報頁面,在當前選擇的月份下頁面已經有數據,再次填報或更改數據后,點擊保存會提示:數據修改完成。如果從未在當前月份下進行過填報,填入數據點擊保存會彈出提示:數據插入完成。不進行提交的動作,用戶可以更改數據。
備注:本例中所要填寫的單元格內容錄入同一數據庫中多張物理表,所以需要創建多個指標的query來實現。另外 Style Report的報表數據填報可以實現行式填報,亦可實現將填報內容錄入不同數據庫的多張物理表的自由填報,同時對填報數據根據實際需要進行計算并且顯示(此例中不涉及計算部分內容)
制作步驟:
Step 1: 新建worksheet 數據工作表,創建所需的變量。本例采用數據庫表EOO_DATA_INDEX,將其拖入worksheet后定義條件,綁定下圖中紅色表框中的變量。

Step 3: 在worksheet左側的資源列表處,調用時間數據表EOO_DATA_INDEX。根據客戶自身需要創建需要的指標Query, 例如本例中建立時間Query2、本年累計Query3、上年同期Query4

![]()
Step 4: 內聯query2,3,4 并設置內聯條件為include all values , 得出query5,并新建列—行次,得出表格基本框架。

Step 5:創建另一個query,實現通過下拉框所需要的時間數據。‘結合’最終query表 和 EOO_DATA_INDEX 表的 DATA_TIME列產生本例中的Query8. 創建自定義條件,小于等于當前系統日期。這樣選擇框的最新時間會隨著系統時間的更新而更新。

Step 6: 創建viewsheet, 引入在worksheet中最終完整的表(即 Query9),右鍵屬性編輯-- 表格樣式并啟用表編輯(編輯多行)根據表格實際情況,僅設置 后三列,啟用列編輯 –文本編輯器,即可填入數據。加入 兩個提交框,命名為 ‘保存’ 和‘提交’ 。實現保存和提交,才會實現填報的功能。
Step 7: 對“保存”和 “提交”進行JS編寫后,當選定月份后,若對應的數據庫表里的數據為空,則填入數據點擊保存, 數據會存入此例中的EOO_DATA_INDEX,并且會自動彈出提示框:如若對應的數據庫表里的數據為不為空,則填入數據點擊保存依舊會存入此例中的EOO_DATA_INDEX, 并且會自動彈出提示框:數據修改完成!

當選定月份后,對應的數據庫表里的數據不為空,且不可編輯,則是已經完成填報的狀態,點擊保存, 會自動彈出提示框:該企業本月月報已完成填報!當選定月份相應的數據填報已經完成,點擊提交,即可完成此次填報工作。
更多Style Report 的產品信息請登錄:http://www.inetsoft.com.cn/products_report/