1. 描述
帆軟商城中的日曆組件只能顯示當前月的日期,但在實際應用中可能會需要有一個翻頁的效果,來實現自由選擇日期。
2. 思路
設置一個模板參數和相應的日期控件,通過超鏈點擊事件改變控件值并直接查詢來實現翻頁效果。
3. 示例
3.1 組件安裝
點擊下載深色系日曆組件:深色系日曆組件
組件安裝方法請參考:決策報表組件共享複用
日曆組件樣式如下圖所示:
3.2 參數界面設計
新建決策報表,拖入一個參數界面,并在參數面板添加一個查詢控件,一個日期控件,控件名修改爲 date,格式設置爲 yyyy-MM,勾選返回日期,如下圖所示:
3.3 日曆樣式設計
将下載的日曆組件拖入到決策報表中。
B2 單元格修改公式爲$date,B3 單元格修改公式爲weekday(todate(date(year($date), month($date), 1))),C3 單元格修改公式爲daysofmonth($date)。
選中日曆主體所有的日期,右擊增加條件屬性,選擇背景爲藍色,公式增加$$$=day(now())和month(B2)==month(B1),表示爲當日的日期時背景色變爲藍色。
在 B15、C15、F15、G15 單元格中分别寫入上年、上月、下月、下年。
選中 B15 單元格,右擊選擇超級鏈接,彈出 JavaScript 腳本對話框,添加參數 a,更改參數的值類型爲公式:format(YEARDELTA(B2,-1),"yyyy-MM"),如下圖所示:
JS 代碼如下:
_g().parameterEl.getWidgetByName("date").setValue(a); _g().parameterCommit();
另外 3 個單元格中 JS 代碼相同,參數 a 的設置分别爲:
上年:format(YEARDELTA(B2,-1),"yyyy-MM")
上月:format(MONTHDELTA(B2,-1),"yyyy-MM")
下月:format(MONTHDELTA(B2,1),"yyyy-MM")
下年:format(YEARDELTA(B2,1),"yyyy-MM")
注:移動端暫不支持parameterEl方法,所以移動端該方法無效。
4. 效果預覽
保存後,點擊預覽,效果如下圖所示:
5. 已完成模板
已完成模板可參考:%FR_HOME%\webroot\WEB-INF\reportlets\doc\frm\calendar.frm
點擊下載模板:calendar.frm