1. 概述
1.1 問題描述
填報報表中,有兩個日期控件,當第一個日期控件選擇完成後,希望第二個日期控件能自動匹配日期,例如:改變前一個控件日期後,後一個控件的日期 +90 天。該如何實現呢?
1.2 解決思路
方案一:在後一個日期控件所在單元格插入公式。
方案二:給前一個日期控件添加「編輯結束」事件,通過 JavaScript 實現。
2. 示例
2.1 報表設計
新建普通報表,A2、B2 單元格添加「日期控件」,設計表格樣式如下圖所示:
2.2 方案一:插入公式
選中 B2 單元格,單擊右鍵,選擇「單元格元素>插入公式」,公式爲format(DATEDELTA(A2,90),"yyyy-MM-dd")。如下圖所示:
2.3 方案二:編輯結束事件
選中 A2 單元格,在「控件設置>事件」中添加「編輯結束」事件,輸入 JavaScript 代碼如下:
var date=new Date(this.getValue());
date.setDate(date.getDate() + 90);
var newdate = FR.contentFormat(date, 'Dyyyy-MM-dd')
contentPane.setCellValue("B2",null,newdate);
步驟如下圖所示:
2.4 效果預覽
2.4.1 PC 端
保存報表,點擊「填報預覽」,效果同 1.1 節效果一緻。
2.4.2 移動端
注:方案二使用 JS 不支持移動端。
方案一 App 端和 HTML5 端均支持,效果如下圖所示:
3. 模板下載
已完成模板可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\JS實現填報日期控件自動匹配.cpt
點擊下載:JS實現填報日期控件自動匹配.cpt