入力フィールド
QlikView は、スクリプトを実行しなくても変更できる特別な項目の型 (入力フィールド) をサポートしています。
入力フィールドは、QlikView のその他の項目と似ていますが、スクリプトで読み取られた項目の値については、その他の項目とは異なり、スクリプトを再度実行しなくても後で変更することができます。入力フィールドは、あらゆるタイプのシート オブジェクトの他の項目と同じように使用できます。
入力フィールドを使用する場合、ロード スクリプトは、各項目値のプレースホルダを作成します。これを後で編集して、新しいデータを設定できます。項目を LOAD または SELECT ステートメントに含める前に、ロード スクリプトに inputfield ステートメントでリストすることで、すべての項目を入力フィールドに変えることができます。
入力フィールドの値は、リスト ボックスのセル、テーブル ボックスのセル、およびテーブル チャートの数式セルで変更できます。入力フィールドが含まれるリスト ボックスおよびテーブル列のみを編集できます。編集可能なセル上にポインタを置くと、入力アイコンが表示されます。アイコンをクリックすると、そのセルは入力編集モードに設定されます。上/下矢印キーを使用して、入力編集モードのままでセル間を移動できます。QlikView ドキュメント全体は、新しい値が入力されるたびに自動的に再計算されます。
テーブル チャートの数式セルには、特別の入力フィールドに集計関数を設定でき、さらに値を入力することができます。変更は、「均等配布」または「比例配布」などの事前定義されたアルゴリズムに基づいて基底の項目値に配布し直されます。
関連する変更を指定することもできます。
次の構文が適用されます (n は番号です)。
構文 | 説明 |
---|---|
%+n | 現在の値を n% 増加します |
%-n | 現在の値を n% 減少します |
+=n | 現在の値を n 増加します |
-=n | 現在の値を n 減少します |
*=n | 現在の値を n 倍します |
/=n | 現在の値を n 分割します |
%+10 現在の値を 10% 増加します。
+=56 現在の値を 56 増加します。
*=2 現在の値を 2 倍します。
/=2 現在の値を 2 分割します。
/=0 何も変更しません。
プログラムで値を抽出および設定するためのオートメーション API も用意されています。
制限
- 計算項目およびキー項目を入力フィールドとして使用することはできません。入力フィールドの機能が自動的に無効となります。
- 入力フィールドにおけるデータの保存効率は、通常の項目と比較すると非常に落ちるため、大量データには向いていません。
- 入力フィールドと理論項目の間のキーは一意でなければならず、複製値を含めることはできません。
入力フィールドの例
この例では、データに入力フィールドを追加して、インタラクディブに値を更新する方法を示します。
-
次のデータをロード スクリプトにロードします。
Inputfield Value;
Table1:
LOAD * INLINE
[
Key, Attribute, Value
Bob, Jan, 100
Bob, Feb, 200
Bob, Mar, 300
Kate, Jan, 400
Kate, Feb, 500
Kate, Mar, 600
];
- データをロードしたら、[テーブル ボックス] を作成し、3 つの項目すべてを追加します。
-
[ストレート テーブル] チャートを作成し、Key を軸として追加します。以下の数式を追加します。
- Sum(Value)
- InputSum(Value)
両方の数式とも同じ値を表示しますが、Sum(Value) ではなく、ストレート テーブルにある InputSum(Value) だけを更新できます。
これで、テーブル ボックスにある Value をインタラクディブに変更できるようになります。ストレート テーブルにある数式の集計した値は、適宜更新されます。
ストレート テーブルにある InputSum(Value) 数式の値も更新できます。基底の値は、テーブル ボックスで更新されます。変更はすべての値で均等に配分されますが、InputSum() 関数で配分モードを変更できます。