FineReport單行與數據庫交互的方法

1.   問題描述

       我們在做一張報表填報的時候經常會遇到需要在一行進行添加動作,將該行數據直接與數據庫交互,執行存儲過程過程。我們可以通過每一行增加帆軟“插入”按鈕實現插入動作,並且在控件事件中增加和數據庫的交互,但當事件過多時帆軟無法穩定地實現交互,會出現數據丟失或者數據庫連接出錯等問題。因此,這篇文檔介紹一種單行數據和數據庫交互的方法

2.   實現思路

     在帆軟報表的設計思路中,通過模板-->報表填報屬性實現和數據庫的交互纔是常規手段,且過程穩定不容易出錯。因此,採用在按鈕事件中寫入JS事件,調用填報屬性,並且用填報條件來限制入庫數據來實現單行填報。

3.   示例

      我們假設產品庫存量爲現有量,然後申請訂購後就從庫存量裏減去訂購的數量,在每一行的數據進入數據庫後,可以看到庫存量的變化

3.1打開報表

3.2編輯Js語句記錄訂購產品名

右鍵產品名稱-->控件設置-->事件編輯-->新建事件-->編輯結束。寫js語句,contentPane.setCellValue("G1",null,this.getValue());。將新增記錄在G1單元格。

3.3調用填報功能,設置填報條件

模板-->報表填報屬性-->內置SQL-->提交類型選擇智能提交,在提交內容中分別將要提交的字段和單元格一一對應。

通過驗證添加的數據是否是最新的數據來進行篩選。注意,G1單元格一定要設置成文本控件

 

 

 

3.4編輯添加按鈕,調用填報事件

在倒數第二個單元格添加按鈕控件,並對該控件的圖標、類型進行設置。注意,所有的單元格都要設置成向下的擴展方向,帶有sql語句的單元格插入行策略都是原值,按鈕對應的擴展單元格是B3。

 

 

對按鈕進行事件編輯,點擊-->編寫Js語句:_g().writeReport();調用填報功能。

3.5保存並預覽

保存模板,點擊填報預覽,效果如下


可以看到庫存量發生了變化(此處爲demo數據庫,無法增加新的字段,讀者在實際使用的時候可以在數據庫中增加一個字段,專門用來存放原始的庫存量,爲了頁面美觀,可以將H列隱藏 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章