1. 程式人生 > >潤乾報表自定義下拉日曆

潤乾報表自定義下拉日曆

客戶在對資料庫中資料做查詢時,要根據一個時間段對時間過濾,資料庫中日期儲存的是時間格式,查詢是可能精確到時分秒,這樣就要求下拉日曆格式為年月日時分秒格式,但是客戶那邊大多數操作時,要求查詢時間是從00:0:00開始,結束時間預設為23:59:59,只有想選擇時再選擇自己想要的時間。

但是目前下拉日曆如果格式選擇年月日時分秒後,彈出的下拉日曆預設取的是當前系統時間,也就是時分秒是預設時間,並不會是客戶要求的使勁,客戶想要實現的話需要手動再改一次,太過費事,希望希望自己按照他們的規則生成日曆。

解決方法:報表中支援自定義控制元件,可以自己在網上找個下拉日曆的控制元件加到報表中來,這個報表中有說明文件,本次主要介紹下如何基於報表自帶的日曆控制元件實現客戶的需求。

報表自帶的日曆控制元件是寫在一個js檔案裡,可以手動更改js檔案內容,但是客戶要求中有起始時間和結束時間,如果更改js的話會導致兩個一樣,無法滿足需求。可以在外部通過js更改日曆的屬性,下邊看下製作方法。

引數表單下拉日曆單元格中,編輯風格改成自定義:

點選設定,在彈出視窗中寫入如下程式碼:_runqianCalendar().type='date';_runqianCalendar().emptyAsNow=false;qishi(event),如圖:

qishi(event),為點選該控制元件的彈出事件,在顯示報表的jsp中增加該js函式即可:

         function qishi(arg){

                   var obj = _runqianCalendar();

                   obj.thisHour="00";

                   obj.thisMinutes="00";

                   obj.thisSeconds="00";

                   _showCalendar(arg);

                   }

Obj物件為下拉日曆物件,可以通過更改其屬性值達到彈出下拉日曆預設值效果,更改相應時分秒為”00:00:00”

同樣的方法更改結束日期的下拉控制元件,呼叫jieshu()方法,如下程式碼:

                            functionjieshu(arg){

                   var obj = _runqianCalendar();

                   obj.thisHour="23";

                   obj.thisMinutes="59";

                   obj.thisSeconds="59";

                   _showCalendar(arg);

                   }

注意:潤乾的下拉日曆是寫到js檔案中,如果這麼這麼做的話,需要在顯示報表的jsp中引入相應js,有一種簡便辦法,如果報表中用到下拉日曆的話,系統會自動引用js,這樣的話只需要在引數表單中找個空白單元格,裡邊編輯風格設定成下拉日曆即可。這樣就能實現客戶的需求,如圖,起始日期:

結束日期: