# Поля ввода

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

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

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

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

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

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

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

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

Синтаксис ввода

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

Пример:

%+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()`.

## Подробнее

* [Inputfield](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptPrefixes/Inputfield.htm)
* [inputsum](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/SpecialInputFieldAggregationFunctions/Inputsum.htm)
* [inputavg](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/SpecialInputFieldAggregationFunctions/Inputavg.htm)