反饋已提交
網絡繁忙
在 填報未修改不更新 文檔中介紹了未修改不更新的作用以及限制,其中一個限制是:未修改不更新僅適用於所有填入的值為儲存格的情況,若填入值為固定字串,公式,參數等其他形式,則該功能將灰化無法使用。那麼如何繞開這個限制呢?
可以利用「提交條件」來實現同樣需求。在修改/插入/刪除的行中做一個標記,然後利用提交條件,只提交帶有標記的資料行,這樣就間接實現了「未修改不更新」的功能。
API說明可以參考:APIAPI匯總
注:不支援行動端和 Excel 匯入場景。
在 FineReport 設計器中開啟範本%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\LineForm1.cpt
選中 L3 儲存格,在右側屬性面板中點選元件設定,選擇正文元件。設定完成後可以隱藏該列。
點選範本>報表填報屬性,將「中止」欄位的值改為字串false,此時右側的「未修改不更新」功能灰化不可使用,如下圖所示:
點選設定提交條件,選擇公式,公式為 L3=1,點選確定。如下圖所示:
在可能涉及到修改內容的儲存格元件中新增「編輯後」事件,例如本例中的 B3~K3 儲存格。
JavaScript 程式碼如下:
var row = FR.cellStr2ColumnRow(this.options.location).row + 1;//獲取當前行號_g().setCellValue('L' + row, null, 1);//給當前行的L列儲存格指派
可不設定,因為新增行後編輯儲存格,同樣會呼叫 2.5 章節中的程式碼。
開啟範本>報表 Web 屬性>填報頁面設定,新增一個刪除行前事件,這裏與上面程式碼不同的是獲取行號,如下圖所示:
var row = parseInt($(_g().curLGP.currentTDCell).attr('row')) + 1;//獲取當前刪除行的行號_g().setCellValue('L' + row, null, 1);//給當前刪除行的L列儲存格指派
1)修改、新增行新增標記效果
點選「填報預覽」,任意修改值後,L 列會自動填寫標記,如下圖所示:
2)刪除行時新增標記效果
點選「填報預覽」,點選「刪除行列」後,L 列會自動填寫標記。點選「提交」,即可成功刪除資料,如下圖所示:
已完成模板可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填報預覽JS實體\JS實現只提交修改過的資料.cpt
點選下載範本:JS实现只提交修改过的数据.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙