Перейти к основному содержимому

Поля ввода

НА ЭТОЙ СТРАНИЦЕ

Поля ввода

QlikView поддерживает особый тип поля, которое можно изменить без выполнения скрипта — поле ввода.

Поле ввода является обычным полем QlikView, с той разницей, что его значения — в том виде, в каком они считываются в скрипте — можно изменить позже без повторного запуска скрипта. Поля ввода могут использоваться как обычные поля во всех типах объектов листа.

При использовании полей ввода скрипт создает метку-заполнитель для каждого значения поля, которое может впоследствии редактироваться для размещения в нем новых данных. Любое поле можно сделать полем ввода путем его внесения в оператор inputfield в скрипте до того, как он появится в операторе LOAD или SELECT.

Значения поля ввода можно изменить в ячейках списка, ячейках простой таблицы и в ячейках выражений табличной диаграммы. Редактировать можно только те списки и столбцы таблицы, которые содержат поля ввода. При наведении курсора на редактируемую ячейку можно увидеть значок ввода. Нажатием на значок можно установить ячейку в режим редактирования ввода. Для перемещения по ячейкам во время нахождения в режиме редактирования ввода можно использовать клавиши со стрелками вверх/вниз. Каждый раз при вводе новых значений весь документ QlikView будет пересчитан в автоматическом режиме.

Ячейка выражений диаграммы таблицы может содержать специальную функцию агрегирования поля ввода и, тем не менее, разрешать ввод данных. В таком случае изменение будет перераспределено назад в исходные значения поля на основе предопределенных алгоритмов, например «развернуть одинаково» или «развернуть пропорционально».

Можно указать относительное изменение.

Примечание: Относительное изменение применяется в случае использования режима распределения в качестве части выражения.

Применяется следующий синтаксис (n — число):

Синтаксис ввода
Синтаксис Описание
%+n увеличивает текущее значение на n% 
%-n уменьшает текущее значение на n% 
+=n увеличивает текущее значение на n 
-=n уменьшает текущее значение на n 
*=n умножает текущее значение на n 
/=n делит текущее значение на n 

Example:  

%+10 увеличивает текущее значение на 10%.

+=56 увеличивает текущее значение на 56.

*=2 умножает текущее значение на 2.

/=2 делит текущее значение на 2.

/=0 не приводит к изменениям.

Для извлечения и установки значений программным путем существуют также API автоматизации.

Ограничения

  • Вычисляемое поле и ключевые поля не могут использоваться в качестве полей ввода. Функции поля ввода будут автоматически отключены.
  • Поля ввода не предназначены для большого количества данных, т.к. данные в них хранятся значительно менее эффективно, чем в обычных полях.
  • Ключ между полем ввода и логическим полем должен быть уникальным: он не может содержать дублирующихся значений.

Пример поля ввода

В этом примере поле ввода добавляется к данным и показывает, как можно обновлять значения в интерактивном режиме.

  1. Загрузите следующие данные в скрипт загрузки.

    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

    ];

  2. После загрузки данных создайте простую таблицу и добавьте все три поля.
  3. Создайте диаграмму Прямая таблица и добавьте Key в качестве измерения. Добавьте следующие выражения:

    • Sum(Value)
    • InputSum(Value)

    Оба выражения будут показывать одно и то же значение, но в прямой таблице можно обновить только InputSum(Value), не Sum(Value).

Теперь можно изменить Value в простой таблице в интерактивном режиме. Агрегированные значения выражений в прямой таблице будут обновлены соответствующим образом.

Также можно обновить значения выражения InputSum(Value) в прямой таблице. Базовые значения будут обновлены в простой таблице. Изменение распределяется одинаково на все значения, но можно изменить режим распределения в функции InputSum().