2016-03-30 9 views
2

QlikViewアプリケーション全体で一貫して計算やビジネスルールを適用することが重要です。変数、接続などを外部ファイルに格納し、さまざまなQVWに適用することができます。再利用性QlikView:時間/カレンダーテーブル

新しいQVWを開発する際に時間を費やすことなく、異なるQVW全体で使用できる実質的にすべての時間/カレンダー次元の標準化されたスクリプトがありますか? 私は頑丈で、必要なものがすべてあり、すべてのQVWに含めることができます。

答えて

0

つのオプション:

  1. あなたはCalendarDateを言うと呼ばれる日付フィールド(たとえばDayOfMonthDayOfWeekMonthなど)だけでなく、Dateフィールドのすべてが含まれているカレンダー.qvdを生成し.qvwを作成することができます。次に、.qvwのすべてで.qvdからCalendarDateフィールドまでロードされたデータに対して、ファクトテーブルLeft Joinを入力することができます。パフォーマンス上の理由から、私はカレンダーを別のテーブルとして残しておきたいと思います。
  2. それ以外の場合は、マクロとして使用できる変数に列定義を含むテキストファイルを作成できます。

    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)); 
    
1

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; 
関連する問題