反饋已提交
網絡繁忙
使用者有時需要實現資料備份留底且資料不能在業務介面展現的效果,該如何操作呢?
使用邏輯刪除來解決。即在資料庫表中增加一欄「狀態」,透過更改這個狀態列的值,控制資料的可見與不可見。
過濾展現資料。即使用「狀態」欄位的值約束資料是否顯示,例如,原始查詢語句為:select * from CUSTOMER ,狀態約束後的查詢語句為:select * from CUSTOMER where 狀態='1'。
以 FRDemo 中的 CUSTOMER 表為例,由於表中沒有「狀態」欄位,使用district欄位作為「標記」。
當 district 欄位中的值為 1 時,為正常資料;當 district 欄位中的值為 0 時,為刪除的資料。
建立普通報表,建立資料庫查詢 ds1,SQL 查詢語句為:select * from CUSTOMER。
將 ds1 中的資料列拖入到範本中,為表格設定邊框、正文置中對齊、F 列正文設定顏色為紅色,表格樣式如下圖所示:
為 G2、H2 儲存格新增「按鈕元件」,按鈕名稱分別為「刪除」和「取消刪除」。步驟如下圖所示:
1)選中 G2 儲存格,點選右側「元件設定>事件」,新增點選事件。點選事件中增加參數 row 和參數 col ,值用公式表示分別為:row() - 1 和col() - 2。輸入 JavaScript 程式碼如下:
FR.Msg.confirm("提示","確定要刪除資料嗎?",function(value){if(value){_g().setCellValue(col,row,"0");_g('${sessionID}').writeReport(); }else{_g().setCellValue(col,row,"1");_g().parameterCommit(); } })
步驟如下圖所示:
2)選中 H2 儲存格,點選右側「元件設定>事件」,新增點選事件。點選事件中增加參數 row 和參數 col ,值用公式表示分別為:row() - 1 和col() - 3。
JavaScript 程式碼如下:
var v1 = _g().getCellValue(0, col, row);FR.Msg.confirm("提示", "確定要取消刪除資料嗎?", function(value) { if (value) { _g().setCellValue(col, row, "1"); _g().verifyAndWriteReport(); } else { g().setCellValue(col, row, "0"); _g().verifyAndWriteReport(); _g().parameterCommit(); }});
如下圖所示:
點選菜單欄「範本>報表填報屬性」,新增一個「內建 SQL 提交」,選擇資料庫 FRDemo 中的「CUSTOMER」表,新增「CUSTOMERID」和「DISTRICT」兩個欄位及對應的儲存格。如下圖所示:
注:報表填報屬性設定步驟請參考報表填報屬性。
選中 F2 儲存格,點選「儲存格屬性>形態」,選擇「公式形態」,輸入公式:if($$$="1","正常","已經刪除"),表示如果當前儲存格值為 1,顯示為「正常」,否則顯示為「已經刪除」。
儲存範本,點選「填報預覽」,效果如下圖所示:
App 端和 HTML5 端均支援,效果如下圖所示:
已完成範本可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填報預覽JS實體\JS實現資料邏輯刪除.cpt
點選下載範本:JS实现数据逻辑删除.cpt
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉