1. 概述
1.1 問題描述
有時候希望點擊删除行按鈕後,可以自動執行提交動作,無需點擊工具欄提交按鈕入庫,效果如下圖所示:
1.2 實現思路
給删除行按鈕添加點擊事件,實現點擊删除行按鈕後,可以延時一段時間再執行提交動作。
注:自定義按鈕實現提交入庫事件,在 cpt 中不會觸發及時校驗,只能通過單獨的 JS 來進行校驗;而 frm 可以觸發及時校驗。
2. 示例
2.1 設計報表
1)新建數據庫查詢數據集 ds1,SQL 語句爲:SELECT * FROM Sales
2)設計填報表格,A3 至 F3 單元格添加文本控件,将數據集字段拖入對應單元格,如下圖所示:
3)在 G3 單元格增加 按鈕控件,G3 按鈕類型選擇插入行,指定單元格選擇 A3,并且設置插入行的行數爲 1 行,如下圖所示:
注:設置插入行的行數爲 1 行,即點擊增加行時只增加一行。
4)在 H3 單元格增加 按鈕控件 ,H3 按鈕類型選擇删除行,指定單元格選擇 A3,如下圖所示:
2.2 添加事件
1)選中 H3 單元格,在右側選擇 控件設置>事件,添加點擊事件,如下圖所示:
JavaScript 代碼如下:
setTimeout(function(){
_g('${sessionID}').writeReport();
},2000);
注:代碼中設置了延時 2 秒才執行提交動作,用戶可根據需要自行修改延時時間。
2)如果點擊删除行後,需要确認是否删除入庫,則需要替換成如下代碼:
if(confirm('是否删除?'))
{
setTimeout(function(){
_g('${sessionID}').writeReport();
},2000);
}
else
{
}
2.3 效果預覽
1)PC端
保存模板,點擊填報預覽,PC 端效果如下所示:
2)移動端
同時支持 App 端和 H5 端預覽,效果如下圖所示:
3. 模板下載
已完成模板可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\點擊按鈕直接提交入庫(自定義提交).cpt
點擊下載模板:點擊按鈕直接提交入庫(自定義提交).cpt