BI報表FineReport中如何設定表示式設定?

定時任務,顧名思義,就是在某個固定的時間點出發某一個事件(任務),顯然,在定義定時任務的過程中,必須要設定任務執行的時間點,但是該任務可能是每天重複執行,隔日重複執行或者是單次執行等等各種不同組合的觸發時間點,在FineReport7.0.3以及之前的版本中的自定義重複執行已不能滿足複雜的時間點組合,為了使使用者能夠更加簡潔便利的設定觸發時間點,在7.0.4版本中新增了一個表示式設定,下面就通過BI報表FineReport來進行簡單介紹。

工具/原料

BI報表FineReport7.1.1

大小:148.2M 適用平臺:windows/linux

方法/步驟

定時表示式設定為新引入的通過cronExpression來設定的機制,定時表示式設定的文字框可自己手動填寫cronExpression,也可通過點選旁邊的“預置表示式”按鈕來直接選擇相應的表示式——點選“預置表示式”按鈕時,展開預置表示式視窗,點選其中的文字說明,則其上的文字框顯示並儲存相應的cronExpression,再次點選“預置表示式”按鈕時收起預置表示式視窗。預置表示式有以下幾個:

a. 每月最後一天19點50分:0 50 19 L * ?

b. 每月最後一個工作日19點50分:0 50 19 LW * ?

c. 每月第4個週五19點50分:0 50 19 ? * 6#4

d. 2013年第4季度每天19點50分:0 50 19 * 10-12 ? 2013

e. 每個工作日早上9點和晚上6點:0 0 9,18 ? * MON-FRI

BI報表FineReport中如何設定表示式設定

cronExpression

一個Cron-表示式是一個六至七個欄位(欄位包括固定的值和具有特殊意義的字元)組成,由空格分隔的字串,其中秒、分、小時、日、月、周幾這6個欄位是必須(順序不可變更,從左至右),年是可選的,如下:

BI報表FineReport中如何設定表示式設定

'*' 字元可以用於所有欄位。含義為:"每一",如:在“分”欄位中"*"表示"每一分鐘"。

'?' 字元可以用在“日”和“周幾”欄位。含義為:"不明確的值",如:需要指定“週三”這個值,那麼在“日”欄位裡面就需要使用“?”,因為不確定週三那天會是幾號。

'-' 字元可以用於所有欄位。含義為:"值的範圍",如:在“小時”欄位中設為"10-12"表示"10點到12點"。

'>' 字元可以用於所有欄位。含義為:"指定多個值",如:在“周幾”欄位中設為"MON,WED,FRI"表示"週一,週三和週五"。

'/' 。 含義為:"值的的增加幅度",如:在“秒”欄位中設定為"0/15"表示"第0, 15, 30, 和 45秒",成等差數列遞增,增值為15,最大值不能超過允許的最大值60; 在'/'前加"*"字元相當於指定從0秒開始;每個欄位都有一系列可以開始或結束的數值,開始的值不能大於允許的最大值,結束的值也不能大於允許的最大值。

'L'字元可用在“日”和“周幾”這兩個欄位。含義為:"是"last"的縮寫,表示最後",如:“日”欄位中的"L"表示"一個月中的最後一天" ;而在“周幾”欄位中, 它簡單的表示"7" or "SAT",但是如果在“周幾”欄位中使用時跟在某個數字之後, 它表示"該月最後一個星期×" —— 比如"6L"表示"該月最後一個週五"。

'W' 可用於“日”欄位。含義為:"離給定日期最近的工作日(週一到週五) ",如:將“日”欄位設為"15W",意為: "離該月15號最近的工作日"。因此如果15號為週六,觸發器會在14號即週五觸發,如果15號為週日, 觸發器會在16號也就是週一觸發,如果15號為週二,那麼當天就會觸發。然而如果你將“日”欄位設為"1W", 而一號又是週六, 觸發器會於下週一也就是當月的3號觸發,因為它不會越過當月的值的範圍邊界。'W'字元只能用於“日”欄位的值為單獨的一天而不是一系列值的時候。

'L'和'W'可以組合用於“日”欄位表示為'LW'。含義為:"該月最後一個工作日"。

'#' 字元可用於“周幾”欄位。含義為:"該月第幾個周×",如:"6#3"表示該月第三個週五( 6表示週五而"#3"該月第三個)。注意如果你指定"#5"該月沒有第五個“周×”,該月是不會觸發的。

注:對於“月份”欄位和“周幾”欄位來說合法的字元都不是大小寫敏感的。

下面列舉一些完整的例子:

BI報表FineReport中如何設定表示式設定

BI報表FineReport中如何設定表示式設定

相關問題答案