1. 程式人生 > >潤乾內建函式獲取指定日期所在時間區間 官方提供方法

潤乾內建函式獲取指定日期所在時間區間 官方提供方法

Web報表設計中,會出現查詢一個時間區間內的資料的需求,即獲取一個時間段內的所有資料。比如查詢某個日期所在周的所有資訊詳情,一般的報表工具若使用普通引數來解決這個問題時,需要使用者手動設定這一週的起始時間和結束時間,這樣做操作繁瑣,且容易出錯。潤乾報表設計器可以通過使用動態引數和特有的內建函式來簡化這個問題,使用者只需要選擇某個日期,系統就會自動計算出該日期所在周的起始時間和結束時間,簡化了客戶的操作,並且提高了準確度。

下面以一個例子來說明如何實現這個需求。

一、需求描述

對於下圖這個訂貨單資訊報表,如何得到某個日期所在那一個星期的所有訂單資訊。

訂單統計表.png

二、實現過程

1、首先對上述報表模板設定引數,如下圖

圖2.png

為報表新增一個日期型普通引數和兩個日期型動態引數,這個普通引數是用來輸入指定日期的,兩個動態引數表示式設定為:

動態引數arg2的值表示式:weekbegin(arg1);

動態引數arg3的值表示式:weekend(arg1);

其中weekbegin()和weekend()這兩個函式是潤乾報表設計器的內建函式,他們的作用分別是計算某個日期所在周的起始時間和結束時間。

在本例中,通過普通引數得到時間,然後動態引數通過函式計算起始時間和結束時間,並將得到的時間賦給arg2和arg3,系統將arg2和arg3作為檢索條件進行查詢。

2 、對報表模板的設定做相應修改

對原報表模板的資料集進行編輯,如下圖

圖3.png

開啟資料集編輯對話頁面,選擇引數選項卡,將兩個動態引數新增進來。使用者可以雙擊引數表示式對話方塊,彈出表示式編輯對話方塊,如下圖所示,雙擊引數名來進行新增或者手動輸入引數名。

圖5.png

然後選擇檢索條件選項卡,對資料集檢索條件進行編輯。對話方塊編輯內容如下:訂單.訂購日期 >? AND 訂單.訂購日期 <?。即查詢所定義的兩個引數設定的區間段內的訂單資訊。(這裡要注意,這句表示式中問號的順序與引數選項卡中定義的引數的順序是一一對應的,使用者在定義引數時要注意順序問題。)如下圖所示。

檢索條件.png

這時開啟語法選項卡會看到資料集中已經加入查詢過濾條件WHERE 訂單.訂購日期 >? AND 訂單.訂購日期 <?。查詢語言熟練的使用者也可以直接在語法選項卡中手動輸入,如下圖

圖4.png

對報表模板進行設定,將A2單元格表示式改為為:=str(arg2)+”到”+str(arg3)+”訂貨單”,即將檢索的起始時間和結束時間顯示出來,如下圖

圖6.png

報表模板修改完成。預覽報表時會彈出設定引數arg1的對話方塊,使用者輸入一個日期,即可查詢到該日期所在一週的所有訂單資訊,如下圖

輸入引數.png

上圖中輸入的指定日期是1996-07-08,得到查詢結果如下圖

預覽結果.png

若在web輸出預覽,可通過設計一個引數模板來實現,如下圖

引數模板.png

B1單元格變數名的值寫入引數arg1,模板儲存時名字儲存為主報表名+_arg.raq。儲存後點擊web預覽,並選擇日期,如下圖

web預覽1.png

選擇好日期後,點查詢按鈕,得到查詢結果如下圖

web預覽.png

這樣,就通過使用潤乾報表的內建函式和靈活的使用動態引數實現了獲取指定日期所在的區間的功能。

潤乾報表設計器提供了豐富的內建函式和靈活的引數使用功能,除了weekbegin()和weekend()這兩個取指定日期所在周的首尾時間的函式外,還有monthbegin()和monthend()兩個取指定日期所在月的首尾時間的函式,以及quaterbegin()和quaterend()兩個取指定日期所在季度的首尾時間的函式。報表設計者可通過靈活使用動態引數和潤乾報表內建函式來控制報表查詢條件,從而靈活而簡便的實現一表多查的功能。