# Использование встроенных загрузок для загрузки данных

Введите данные вручную в скрипт, чтобы определить встроенную таблицу, которую можно загрузить в приложение. Для работы со встроенными загрузками можно использовать Редактор загрузки данных и Скрипт.

Можно создавать встроенные таблицы, вводя данные в скрипт вручную, а не подключаясь к файлам и базам данных. Используйте необходимый синтаксис для указания того, что текст скрипта должен интерпретироваться как встроенные данные. Данные, добавленные с помощью встроенных загрузок, остаются в приложении в случае его экспорта. Встроенные таблицы можно читать и редактировать в скрипте загрузки.

Простейшая встроенная загрузка создает таблицу и вставляет поля данных и записи.

Встроенная загрузка в редакторе загрузки данных

Встроенная загрузка в редакторе загрузки данных

Встроенная загрузка в редакторе загрузки данных ![Встроенная загрузка в редакторе загрузки данных.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_inline_load-qcs-rev.png)

## Пример базового синтаксиса

Следующий скрипт содержит простую встроенную загрузку.

```
MyTable:
Load * Inline [
Country, Year, Sales
Argentina, 2014, 66295.03
Argentina, 2015, 140037.89
Austria, 2014, 54166.09
Austria, 2015, 182739.87
];
```

Для приведенной выше встроенной загрузки используется следующий синтаксис:

* Load \* Inline отправляет Qlik Sense инструкцию загрузить все поля из приведенной ниже встроенной таблицы.

* MyTable: определяет имя таблицы. Список таблиц в приложении можно открыть в Просмотр модели данных и в других областях.

* Данные заключены в квадратные скобки.

* Поля данных определяются в первой строке оператора load.

* Запятые разделяют поля данных и записи.

* Точка с запятой закрывает оператор load.

## Загрузка встроенной таблицы

Выполните следующие действия.

1. В приложении откройте Редактор загрузки данных.

2. В новой строке определите таблицу, используя необходимый синтаксис.

   [Пример базового синтаксиса](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#BasicSyntax)

3. По завершении нажмите кнопку Загрузить данные.

## Зачем использовать встроенные загрузки?

Встроенные загрузки полезно использовать в ряде сценариев:

* Администрирование и редактирование данных без подключения к внешним источникам.

* Дополнение существующих данных в модели данных. Например, можно добавить дополнительную таблицу в модель данных, которая, главным образом, создана на основе источников баз данных.

* Добавление данных, которые нежелательно постоянно загружать из внешних источников. Это позволяет экономить время, если известно, что источник данных может измениться в будущем, но значения данных останутся прежними.

* Простота копирования и вставки содержимого в скрипт из других источников. Например, файлы или таблицы .csv из документов, созданных в текстовом редакторе.

* Создание тестовых скриптов, которые можно быстро копировать и вставлять.

## Обзор синтаксиса

### Именование таблицы

Имя для встроенной таблицы присваивается так же, как и для других загруженных таблиц. Определение имени таблицы не является обязательным.

После имени таблицы вставьте двоеточие.

### Операторы LOAD и inline

Встроенная таблица загружается с помощью предложения inline, когда используется оператор скрипта LOAD. Предложение inline указывает, что последующий текст в таблице будет содержать данные, введенные в редактор вручную. Если пользователь не укажет иное, встроенная таблица использует формат txt, который имеет структуру текстового файла с разделителями.

Для получения дополнительной информации об операторе LOAD см. раздел [Load](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm).

### Заключающие символы и ввод данных

Данные, введенные с использованием предложения inline, должны быть заключены в парные специальные символы. Для заключения данных используются следующие принятые комбинации символов:

* Квадратные скобки: `[` и `]`

* Двойные кавычки: `"` и `"`

* Одиночные кавычки: `'` и `'`

* Обратные кавычки: `` ` `` и `` ` ``

Символ, выбранный в качестве заключения, позволяет загружать встроенные данные, содержащие конфликтующие символы. Например, если данные содержат записи с квадратными скобками, их можно заключить в прямые кавычки или обратные кавычки.

Для ознакомления с примерами альтернативных заключающих символов см. раздел [Пример: альтернативные символы для заключения данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#ExDataEnc).

Если не указан альтернативный формат таблицы (по умолчанию используется txt), заключенный в парные символы текст интерпретируется так же, как содержимое файла. Поэтому при вставке новой строки в текстовый файл ее также необходимо вставить в текст предложения inline, нажав клавишу «Ввод» при вводе скрипта.

### Окончание встроенной загрузки

Конец оператора встроенной загрузки обозначается точкой с запятой.

### Преобразования данных

В простой встроенной загрузке без преобразований количество столбцов определяется по первой строке. Таблица, загруженная в следующем примере, содержит три столбца: `Product_ID`, `Supplier_Name` и `Product_Category`.

```
Products:

Load * Inline [
Product_ID, Supplier_Name, Product_Category
1, Paracel, Home Decor
2, PageWave, Electronics
3, Talarian, Software
4, Userland, Appliances
];
```

Также можно выполнять преобразования и создавать новые столбцы в той же встроенной таблице. Можно использовать предшествующие загрузки. Кроме того, можно использовать несколько операторов LOAD для загрузки одной и то же таблицы.

Для получения конкретных примеров см. раздел [Примеры: встроенные загрузки с преобразованиями](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#ExTransform).

### Настройка спецификации формата для встроенной загрузки

Как и при работе с другими загруженными таблицами, можно изменять спецификацию формата встроенной таблицы, используя элементы спецификации формата. Спецификация формата добавляется в квадратных скобках. Ее можно добавлять после заключенных данных, но перед точкой с запятой в конце оператора LOAD. Ниже перечислены некоторые возможные пользовательские изменения:

* Выбор другого разделителя вместо запятой. Для ознакомления с примерами см. раздел [Примеры: альтернативные разделители](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#ExDelimiter).

  См.: [Delimiter is](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptSpecifiers/delimiter.htm)

* Опускание заголовков столбцов таблицы. Пример см. в разделе [Пример: опускание заголовков столбцов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#ExOmitLabels).

  См.: [Labels](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptSpecifiers/labels.htm)

* Использование другого формата данных (например, формат фиксированной записи). Для ознакомления с примером см. раздел [Пример: загрузка другого типа данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#ExChangeFormat).

  См.: [Формат таблицы](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptSpecifiers/table-format.htm)

  Примечание к информацииНе все параметры Table format поддерживаются для встроенных загрузок.

* Разрешение многострочного содержимого. Пример см. в разделе [Пример: многострочное содержимое](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#ExMultLine).

  См.: [Quotes](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptSpecifiers/quotes.htm)

Чтобы использовать несколько элементов спецификации формата в одной таблице, разделяйте их запятыми. Пример.`  (Delimiter is '|', no labels) `

Для получения полных сведений о спецификации формата см. раздел [Элементы спецификации формата](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptSpecifiers/format-specification-items.htm).

### Операторы и другие предложения

В дополнение, поскольку встроенная загрузка является оператором LOAD, можно объединить другие аргументы для оператора LOAD во встроенную загрузку. Например, используйте предложение where или while, чтобы определить, требуется загрузить конкретную строку или нет, на основе содержащегося в ней текста.

Подобным образом, можно также использовать операторы за пределами самого текстового содержимого. Операторы позволяют настроить способ преобразования встроенных данных, а также определить, когда определенные данные следует загружать, а когда нет.

Для ознакомления с конкретным примером см. раздел [Пример: операторы для преобразований и предложений](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#ExOpsAndClauses).

## Пример: альтернативные символы для заключения данных

Можно использовать квадратные скобки, кавычки или обратные кавычки для заключения встроенной загрузки. В данном разделе приводится пример для иллюстрации этого. Для получения дополнительной информации см. раздел [Заключающие символы и ввод данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#Enclosure).

#### Скрипт загрузки и результаты

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

Обзор

Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки в новый раздел.

Скрипт загрузки

```
DataTable:

Load * inline 
`
custom_property, date, amount
[11402], 1/1/2024, 92.99
[11403], 1/2/2024, 102.34
[11404], 1/3/2024, 50.26
[11405], 1/4/2024, 153.69
[11406], 1/5/2024, 75.62
`;
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `custom_property`

* `date`

* `amount`

Результирующая таблица

| custom\_property | date | amount |
| --- | --- | --- |
| [11402] | 1/1/2024 | 92.99 |
| [11403] | 1/2/2024 | 102.34 |
| [11404] | 1/3/2024 | 50.26 |
| [11405] | 1/4/2024 | 153.69 |
| [11406] | 1/5/2024 | 75.62 |

## Примеры: альтернативные разделители

Для разделения значений столбца в таблице можно использовать не только запятую. Для получения дополнительной информации см. раздел [Настройка спецификации формата для встроенной загрузки](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#FormatSpec).

#### Скрипт загрузки и результаты

Обзор

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

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Необходимо загрузить четыре таблицы, а именно:

  * Table1: разделитель ― вертикальная линия (|). Данные в столбце Phrase содержат запятые.

  * Table2: разделитель ― двоеточие (:).

  * Table3: разделитель ― обратная косая черта (\).

  * Table4: содержимое таблицы разделяется путем нажатия клавиши «Tab» на клавиатуре. Этот вариант полезен, когда таблица копируется из текстового редактора и вставляется в скрипт.

  Таблица Table1 демонстрирует пример практического применения альтернативного разделителя. В остальных таблицах показаны другие варианты разделителей.

Скрипт загрузки

```
Table1:
LOAD * INLINE [
ID|Phrase
1 | 'The transaction was complete, but the order has not yet shipped.'
2 | 'We need to confirm the following details: sales rep number, order status, and shipping priority.'
] (Delimiter is '|');

Table2:
LOAD * INLINE [
Num1:Chr1
1:A
2:B ] (Delimiter is ':');

Table3:
LOAD * INLINE [
Num2\Chr2
1\A
2\B ] (Delimiter is \\);

Table4:
LOAD * INLINE [
Num3	Chr3
1	A
2	B ] (Delimiter is '\t');
```

Результаты

Загрузите данные и откройте лист. Создайте четыре таблицы и добавьте в них измерения следующим образом:

* Table1: ID, Phrase

* Table2: Num1, Chr1

* Table3: Num2, Chr2

* Table4: Num3, Chr3

Результирующая таблица: Table1Table1

| ID | Phrase |
| --- | --- |
| 1 | The transaction was complete, but the order has not yet shipped. |
| 2 | We need to confirm the following details: sales rep number, order status, and shipping priority. |

Результирующая таблица: Table2Table2

| Num1 | Chr1 |
| --- | --- |
| 1 | A |
| 2 | B |

Результирующая таблица: Table3Table3

| Num2 | Chr2 |
| --- | --- |
| 1 | A |
| 2 | B |

Результирующая таблица: Table4Table4

| Num3 | Chr3 |
| --- | --- |
| 1 | A |
| 2 | B |

## Пример: комбинирование встроенных загрузок и загрузок из других источников данных

#### Скрипт загрузки и результаты

Обзор

Следующий скрипт сначала загружает последовательность полей из коннектора, после чего загружает встроенную таблицу с общим полем и дополнительным полем. Это новое поле передает другое свойство элемента строки, которое не было загружено через подключение к данным. Обратите внимание, что это бесперебойно работает, только когда в двух таблицах имеется одно общее имя поля. Если имеется несколько общих имен полей, создается синтетический ключ.

В данном усеченном примере загружается таблица сведений о заказах из подключения к данным. Затем с помощью встроенной таблицы добавляется дополнительное поле Supplemental Info. К примеру, оно может содержать подробные сведения об особых комментариях к заказам с конкретными идентификаторами.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY';

Orders:

LIB CONNECT TO 'My_Generic_Connection';

LOAD PRODUCT_DIVISION_A_ORDER_ID as Order ID, 
PRODUCT_DIVISION_A_ORDER_DATE as ISSUE_KEY as Order Date, 
PRODUCT_DIVISION_A_TYPE as Product Type, 
PRODUCT_DIVISION_A_SALES_MANAGER as Manager,
PRODUCT_DIVISION_A_SHIPPED_STATUS as Shipped Status;

SELECT PRODUCT_DIVISION_A_ORDER_ID,
PRODUCT_DIVISION_A_ORDER_DATE,
PRODUCT_DIVISION_A_TYPE,
PRODUCT_DIVISION_A_SALES_MANAGER,
PRODUCT_DIVISION_A_SHIPPED_STATUS

FROM SourceTable
WITH PROPERTIES (

[...]

);

Orders_Inline_Info:
load * inline [
Order ID,Supplemental Info
PSF-001014,'Bulk order, pending deal with Paracel.'
PSF-001625,'NOTE: Product damaged. Investigation required.'
];
```

Результаты

Допустим, после загрузки данных в таблицу добавляются следующие измерения:

* Order ID

* Order Date

* Product Type

* Manager

* Shipped Status

* Supplemental Info

Результирующая таблица может выглядеть следующим образом.

Результирующая таблица: OrdersOrders

| Order ID | Order Date | Product Type | Manager | Shipped Status | Supplemental Info |
| --- | --- | --- | --- | --- | --- |
| PSF-000998 | 1/13/2024 | Electronics | Amanda Honda | Shipped | - |
| PSF-000999 | 1/15/2024 | Automotive | Molly McKenzie | Not Shipped | - |
| PSF-001014 | 1/17/2024 | Home Appliances | Amalia Craig | Undefined | Bulk order, pending deal with Paracel. |
| PSF-001625 | 1/21/2024 | Electronics | Amanda Honda | Undefined | Product damaged. Investigation required. |

Обратите внимание, что все поля в обеих таблицах можно добавить в одну визуализацию. Таблицы связаны друг с другом в модели данных.

## Пример: опускание заголовков столбцов

Измените спецификацию формата, чтобы загрузить встроенную таблицу без определения заголовков столбцов. Для этого используется спецификация labels (ей задается значение no labels). Для получения дополнительной информации см. раздел [Настройка спецификации формата для встроенной загрузки](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#FormatSpec).

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

#### Скрипт загрузки и результаты

Обзор

Данный пример демонстрирует, как можно загрузить встроенную таблицу без определения имен столбцов.

Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки в новый раздел.

Скрипт загрузки

```
Expenses:

Load * inline
[
1,Category1,40566.49
2,Category2,3504.54
3,Category3,593206.30
] (no labels);
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* @1

* @2

* @3

Результирующая таблица

| @1 | @2 | @3 |
| --- | --- | --- |
| 1 | Category1 | 40566.49 |
| 2 | Category2 | 3504.54 |
| 3 | Category3 | 593206.30 |

## Пример: загрузка другого типа данных

Данный пример демонстрирует, как можно загрузить встроенную таблицу в формате с фиксированными записями. См. [Настройка спецификации формата для встроенной загрузки](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#FormatSpec).

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Оператор встроенной загрузки, определяющий таблицу DataTable.
* Использование fix (в составе спецификации Table format) для указания того, что загружаемые данные имеют формат фиксированных записей.

Скрипт загрузки

```
DataTable:
LOAD
"@1:4",
"@5:8",
"@9:12",
"@13:16"
INLINE [
a   b   c   d
1   2   3   4
x   y   z   w
] (fix, utf8, embedded labels);
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* a

* b

* c

* d

Результирующая таблица

| a | b | c | d |
| --- | --- | --- | --- |
| 1 | 2 | 3 | 4 |
| x | y | z | w |

## Пример: многострочное содержимое

Этот пример демонстрирует, как можно ввести многосторочное содержимое поля во встроенную таблицу. См. [Настройка спецификации формата для встроенной загрузки](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#FormatSpec).

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Простая встроенная загрузка для определения таблицы T1.

* Использование спецификатора Quotes (со значением msq) для поддержки многострочного содержимого.

* Значения длины, указанные в футах и дюймах.

* Символ двойных кавычек (") обозначает конец многострочной записи. В данном примере тот же символ используется для обозначения значений в дюймах. Так сделано, чтобы продемонстрировать синтаксис и результирующее поведение, если требуется использовать и то, и другое в одном операторе LOAD. По сути, ввод символа " для двух последовательных знаков ("") указывает на то, что код должен интерпретироваться как один текстовый экземпляр символа.

Скрипт загрузки

```
T1:
Load *, recno() as ID inline [
Length
"1' 2""
22' 10"""
14' 8"  ] (msq);
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* ID

* Length

Для правильного отображения многострочного содержимого необходимо включить параметр Переносить текст ячеек на панели свойств. Кроме того, тема приложения (или параметры визуализации) должна обеспечивать достаточно большое значение для параметра Высота строки (в линиях).

Результирующая таблица

| ID | Length |
| --- | --- |
| 1 | 1' 2"<br><br>22' 10" |
| 2 | 14' 8" |

В приведенной выше таблице запись со значением ID = 1 имеет многострочное содержимое.

## Примеры: встроенные загрузки с преобразованиями

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

Для получения дополнительной информации см. раздел [Преобразования данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#Transform).

#### Пример: простое переименование поля

Обзор

Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки в новый раздел.

Скрипт загрузки

```
ORDERS:

Load Original as Updated,
* Inline
[
Original
ProductA
ProductB
ProductC
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* Original

* Updated

Результирующая таблица

| Original | Updated |
| --- | --- |
| ProductA | ProductA |
| ProductB | ProductB |
| ProductC | ProductC |

#### Пример: простая вставка поля идентификатора

Обзор

Этот пример демонстрирует, как можно определить вычисляемое поле, чтобы указать идентификатор каждой строки данных, не вводя каждое значение идентификатора вручную.

Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки в новый раздел.

Скрипт загрузки

```
ORDERS:

Load RowNo() as ID,
* Inline
[
ProductName
A
B
C
D
E
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* ID

* ProductName

Результирующая таблица

| ID | ProductName |
| --- | --- |
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
| 5 | E |

#### Пример: настройка операторов LOAD для обработки преобразований

Обзор

Этот пример показывает несколько способов применения простого преобразования к встроенным данным. Можно использовать один или несколько операторов LOAD и по-разному настроить синтаксис, чтобы определить, заменяет ли преобразование исходное поле или загружаются оба поля: исходное и новое.

В частности, обратите внимание на следующие вариации и как они влияют на результат:

* Количество операторов LOAD в таблице.

* Присутствие или отсутствие символа \* (загружает все последующие поля).

* Присутствие или отсутствие запятых (символ ,).

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Четыре таблицы, каждая из которых ссылается на одни и те же данные. Имена полей отличаются.

  * DerivedYears1: использует два оператора LOAD для загрузки встроенного столбца и столбца, содержащего преобразование встроенного столбца.

  * DerivedYears2: использует два оператора LOAD. Скрипт загружает встроенный столбец, затем загружает вычисляемое поле, преобразованное из исходного столбца. Благодаря использованию второго оператора LOAD исходный столбец не загружается в таблицу, что обеспечивает эффективную замену исходного поля новым полем.

  * DerivedYears3: использует один оператор LOAD для загрузки исходного встроенного столбца и преобразованного столбца вместе.

  * DerivedYears4: использует один оператор LOAD для определения встроенного поля и преобразования этого исходного поля. Только преобразованное поле загружается в таблицу.

Скрипт загрузки

```
DerivedYears1:

Load *,
Year(initial_date1) as derived_year1
;
    
Load
* inline [
initial_date1
'1/1/2022'
'1/1/2023'
'1/1/2024'
];

DerivedYears2:

Load
Year(initial_date2) as derived_year2
;
    
Load
* inline [
initial_date2
'1/1/2022'
'1/1/2023'
'1/1/2024'
];

DerivedYears3:

Load Year(initial_date3) as derived_year3,
* inline [
initial_date3
'1/1/2022'
'1/1/2023'
'1/1/2024'
];

DerivedYears4:

Load Year(initial_date4) as derived_year4
inline [
initial_date4
'1/1/2022'
'1/1/2023'
'1/1/2024'
];
```

Результаты

Загрузите данные и откройте лист. Создайте три таблицы и добавьте в них измерения следующим образом:

* DerivedYears1: initial\_date1, derived\_year1

* DerivedYears2: initial\_date2

* DerivedYears3: initial\_date3, derived\_year3

Результирующая таблица: DerivedYears1DerivedYears1

| initial\_date1 | derived\_year1 |
| --- | --- |
| 1/1/2022 | 2022 |
| 1/1/2023 | 2023 |
| 1/1/2024 | 2024 |

Результирующая таблица: DerivedYears2DerivedYears2

| derived\_year2 |
| --- |
| 2022 |
| 2023 |
| 2024 |

Результирующая таблица: DerivedYears3DerivedYears3

| initial\_date3 | derived\_year3 |
| --- | --- |
| 1/1/2022 | 2022 |
| 1/1/2023 | 2023 |
| 1/1/2024 | 2024 |

Результирующая таблица: DerivedYears4DerivedYears4

| derived\_year4 |
| --- |
| 2022 |
| 2023 |
| 2024 |

#### Пример: изменение содержимого поля

Обзор

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

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Встроенная таблица Transformations, в которой определено преобразование для изменения текстового содержимого поля. Преобразуемый текст добавляется после этого.

* Два оператора LOAD. При использовании приведенной в примере конфигурации в таблицу загружается только производное поле ProductName\_Trimmed.

Скрипт загрузки

```
Transformations:

Load 
Capitalize(TextBetween(OrigColumn, '{','}')) as ProductName_Trimmed;

Load * inline [
OrigColumn
Product: {soft drinks and other beverages}
Product:  {snack food}
Product: {electronics and video games}
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: ProductName\_Trimmed.

Результирующая таблица

| ProductName\_Trimmed |
| --- |
| Soft Drinks And Other Beverages |
| Snack Food |
| Electronics And Video Games |

## Пример: операторы для преобразований и предложений

Можно использовать операторы для определения преобразований и конкретных предложений в операторе LOAD. Для получения дополнительной информации см. раздел [Операторы и другие предложения](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm#OpsAndClauses).

[Операторы](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/Operators/operators.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Простая встроенная загрузка для определения таблицы Purchases.

* Вставка вычисляемого поля OrderSize. Это поле является преобразованием поля amount из встроенного набора данных. Она классифицирует покупки как мелкие или крупные в зависимости от того, превосходит ли их сумма $2000.00.

* Предложение where, которое препятствует загрузке записей, когда значение amount меньше $0.05.

Скрипт загрузки

```
Purchases:

Load
If(amount<2000,'Small Purchase','Large Purchase') as OrderSize,

* inline
[
ID, amount
1,2660.39
2,100.01
3,500.42
4,5023.99
5,0.04
6,2002.39
7,31034.53
8,1643.58
9,3993.65
10,614.34
11,675.93
]
WHERE
amount>0.05
;
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* ID

* amount

* OrderSize

Результирующая таблица

| ID | amount | OrderSize |
| --- | --- | --- |
| 1 | 2660.39 | Large Purchase |
| 2 | 100.01 | Small Purchase |
| 3 | 500.42 | Small Purchase |
| 4 | 5023.99 | Large Purchase |
| 6 | 2002.39 | Large Purchase |
| 7 | 31034.53 | Large Purchase |
| 8 | 1643.58 | Small Purchase |
| 9 | 3993.65 | Large Purchase |
| 10 | 614.34 | Small Purchase |
| 11 | 675.93 | Small Purchase |

В таблице выше транзакция с ID = 5 не была загружена в таблицу. Это объясняется тем, что значение amount меньше $0.05.

## Пример: создание нулевых значений во встроенной таблице

Этот пример демонстрирует, как можно использовать переменную NullInterpret для создания нулевых значений во встроенных данных.

[NullInterpret](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ValueHandlingVariables/NullInterpret.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Простая встроенная загрузка для определения таблицы T2.

* Переменная NullInterpret определена как две одиночных кавычки. Когда загружается скрипт, записи, содержащие это значение, обрабатываются как нулевые значения.

Скрипт загрузки

```
set nullinterpret = '';
T2:
Load * inline [
Test
''
x ];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: Test.

Результирующая таблица

| Test |
| --- |
| x |

В приведенной выше таблице первая запись содержит нулевое значение. По этой причине оно не включается в визуализацию. Нулевые значения в таблицах с дополнительными измерениями будут обозначаться символом -.

## Дополнительные примеры

Для получения дополнительных примеров см. раздел [Load](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm).

Связанные учебные материалы:

* [Введение в редактор загрузки данных](https://help.qlik.com/lnk/Intro_Data_Load_Editor_QS)

## Подробнее

* [Load](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)

* [Элементы спецификации формата](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptSpecifiers/format-specification-items.htm)

* [Введение в редактор загрузки данных](https://help.qlik.com/lnk/Intro_Data_Load_Editor_QS)