QlikViewアプリケーション全体で一貫して計算やビジネスルールを適用することが重要です。変数、接続などを外部ファイルに格納し、さまざまなQVWに適用することができます。再利用性QlikView:時間/カレンダーテーブル
新しいQVWを開発する際に時間を費やすことなく、異なるQVW全体で使用できる実質的にすべての時間/カレンダー次元の標準化されたスクリプトがありますか? 私は頑丈で、必要なものがすべてあり、すべてのQVWに含めることができます。
QlikViewアプリケーション全体で一貫して計算やビジネスルールを適用することが重要です。変数、接続などを外部ファイルに格納し、さまざまなQVWに適用することができます。再利用性QlikView:時間/カレンダーテーブル
新しいQVWを開発する際に時間を費やすことなく、異なるQVW全体で使用できる実質的にすべての時間/カレンダー次元の標準化されたスクリプトがありますか? 私は頑丈で、必要なものがすべてあり、すべてのQVWに含めることができます。
つのオプション:
CalendarDate
を言うと呼ばれる日付フィールド(たとえばDayOfMonth
、DayOfWeek
、Month
など)だけでなく、Date
フィールドのすべてが含まれているカレンダー.qvd
を生成し.qvw
を作成することができます。次に、.qvw
のすべてで.qvd
からCalendarDate
フィールドまでロードされたデータに対して、ファクトテーブルLeft Join
を入力することができます。パフォーマンス上の理由から、私はカレンダーを別のテーブルとして残しておきたいと思います。それ以外の場合は、マクロとして使用できる変数に列定義を含むテキストファイルを作成できます。
LET CalendarFields = '
Year($1) as DateYear,
Month($1) as DateMonthOfYear,
Week($1) as DateWeekOfYear,
Day($1) as DateDayOfMonth,
WeekDay($1) as DateDayOfWeek,
Date(MonthStart($1), ''YYYY MMM'') as DateMonthInYear,
Year(WeekStart($1)) & ''w'' & Num(Week($1), ''00'') as DateWeekInYear ';
のようなものは、このファイルを読み込むことができ、$(Must_Include=common.txt);
または$(Include=common.txt);
とcommon.txt
は、その後、あなたのファクトテーブルのためのロード・ステートメントでは、あなたのようなのように、このマクロを使用することができると言う:
Facts:
LOAD
*,
$(CalendarFields(FactDateField));
Rob Wunderlich's Qlikview Componentsを確認することができます、あなたが呼び出すことができる標準のカレンダー機能があります。
彼のウェブサイトには、私が報告するたびに使用するvery good scriptがあることを確認することもできます。スクリプトの結果をQVDに入れて、すべてのレポートにロードすることができます。
だから、それはこのようなものになります。
MasterCalendar:
Load
TempDate AS OrderDate,
week(TempDate) As Week,
Year(TempDate) As Year,
Month(TempDate) As Month,
Day(TempDate) As Day,
'Q' & ceil(month(TempDate)/3) AS Quarter,
Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as WeekYear,
WeekDay(TempDate) as WeekDay
;
//=== Generate a temp table of dates ===
LOAD
date(mindate + IterNo()) AS TempDate
,maxdate // Used in InYearToDate() above, but not kept
WHILE mindate + IterNo() <= maxdate;
//=== Get min/max dates from Field ===/
LOAD
AddYears(today(), -6) as mindate, // The first date you want
Today() as maxdate
AUTOGENERATE 1;
STORE MasterCalendar INTO 'Calendar.qvd' (qvd);
DROP TABLE MasterCalendar;