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列隱藏?
本文轉自 雄霸天下啦 51CTO博客,原文鏈接:http://blog.51cto.com/10549520/1919563,如需轉載請自行聯系原作者