公司的食堂每個月需要統計當月的就餐情況,但是,他們不是按照自然月來計算,而是根據上個月的21號到本月的20號。因此要求我提供的兩個參數,開始日期和結束日期的默認值就是這兩個日期。
VBscript函數可以應用於reportingService的計算公式,因此,我先從參數的全局參數中的ExcutionTime中獲取當前時間,然後,通過dateadd()函數來獲取上個月的日期,最後,要將日期定位到上個月21日,我曾經使用日期函數進行計算,基本算法是獲取當前取得的日期是當月的第幾天,然後,計算出這一天和21日之間差幾天,然後,用dateadd()函數將參數定位到21日。這樣做比較麻煩,或來我想到了format()函數,我就利用這個函數計算出我所要的日期:
開始日期=cdate(format(dateadd(dateinterval.month,-1, Globals!ExecutionTime ),"yyyy-MM-21"))
結束日期==cdate( format(Globals!ExecutionTime,"yyyy-MM-20"))