# GetObjectField — функция диаграммы

GetObjectField() возвращает выражение в поле измерения.Index ― это необязательный целочисленный параметр, обозначающий измерение, значение которого должно быть возвращено.

Примечание к информации

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

Примечание к информации

Создание ссылок на имя измерения или меры в другом объекте при помощи Object ID не поддерживается.

Синтаксис:

GetObjectField ([index])

Возвращаемые типы данных: строка

Пример: выражения диаграммы

| Пример | Результат |
| --- | --- |
| `GetObjectField ()`<br><br>`GetObjectField (0)` | Возвращает выражение в поле для первого измерения в диаграмме. |
| `GetObjectField (1)` | Возвращает выражение в поле для второго измерения в диаграмме. |

Для возврата имени меры используйте функцию GetObjectMeasure.

## Пример. Основы использования функции GetObjectField

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetObjectField.htm)

#### Выражение диаграммы

Обзор

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

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

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

* Следующие поля в таблице данных:

  * `TransactionDate`

  * `CustomerID`

  * `TransactionQuantity`

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

```
Example:
LOAD * INLINE [
TransactionDate, CustomerID, TransactionQuantity
2018/08/30, 049681, 13
2018/08/30, 203521, 6
2018/08/30, 203521, 21
];
```

Результаты

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

* `TransactionDate`

* `CustomerID`

* `TransactionQuantity`

Создайте следующие меры:

* `=GetObjectField()`, чтобы найти первое измерение в таблице.
* `=GetObjectField(0)`, чтобы найти первое измерение в таблице.
* `=GetObjectField(1)`, чтобы найти второе измерение в таблице.

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

| TransactionDate | CustomerID | TransactionQuantity | GetObjectField () | GetObjectField (0) | GetObjectField (1) |
| --- | --- | --- | --- | --- | --- |
| 2018/08/30 | 049681 | 13 | TransactionDate | TransactionDate | CustomerID |
| 2018/08/30 | 203521 | 6 | TransactionDate | TransactionDate | CustomerID |
| 2018/08/30 | 203521 | 21 | TransactionDate | TransactionDate | CustomerID |

Результаты показывают, как функция `GetObjectField` возвращает имя поля, указанного в параметрах функции.

## Пример. Расширенный сценарий использования GetObjectField

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemFunctions/GetObjectField.htm)

#### Выражение диаграммы

Обзор

В этом примере используется функция `GetObjectField` и несколько фильтров. Расчеты измерений и мер, которые появляются в объекте диаграммы, меняются в зависимости от выбранного Вами фильтра.

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

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

* Набор данных, загруженный в две встроенные таблицы: `Sales` и `Filter`. Первая таблица, `Sales`, содержит данные о продажах. Вторая таблица, `Filter`, содержит список имен полей, которые будут использоваться для переключения измерений. Переключаясь, можно переходить между измерениями в диаграмме, чтобы настроить расчет меры, отображаемой в зависимости от выбранного измерения.

* Таблица `Sales` содержит следующие поля:

  * `Country`

  * `Salesperson`

  * `SalesValue`

* Следующее поле в таблице `Filter`: `FilterField`

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

```
Sales:
LOAD * INLINE [
Country, SalesPerson, SalesValue
USA, John, 500
USA, Alice, 700
Canada, Bob, 300
Canada, Carol, 400
Mexico, Dave, 200
];

Filter:
LOAD * INLINE [
FilterField
Country
SalesPerson
];
```

Результаты

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

   * `FilterField`

2. На панели ресурсов, в разделе Поля, щелкните правой кнопкой мыши по FilterField и выберите Параметры поля. Отметьте Всегда одно выбранное значение, затем нажмите Сохранить.

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

   * `=$(= FilterField)`

   * В разделе Меткаопределите имя столбца для измерения с помощью следующего выражения: `='$(= FilterField)'`.

4. Создайте следующую меру:

   * `=If(GetObjectField() = 'Country', Sum(SalesValue), Avg(SalesValue))`, чтобы суммировать значения продаж, если выбрано измерение `Country`, или получить среднее значение продаж, если выбрано измерение `SalesPerson`.

   * В `Label` введите это выражение, чтобы определить имя столбца, которое будет отображаться для меры в соответствии с выбранным фильтром: `=If(GetObjectField() = 'Country', 'Sum(SalesValue)', 'Avg(SalesValue)')` Например, если в фильтре выбрано `Country`, имя меры вернет значение `Sum(SalesValue)`.

В режиме анализа при переключении между `SalesPerson` и `Country` в фильтре `FieldFilter` меняется таблица, в том числе выбранное измерение и соответствующий расчет меры для этого измерения. Например, если выбрать `Country` в фильтре, в таблице в качестве измерения в первом столбце появится `Country`. Затем мера использует функцию `GetObjectField`, приравнивает ее к `Country`, и возвращает `Sum(SalesValue)`.

Фильтр и таблица результатов для Country

Фильтр и таблица результатов для Country

Фильтр и таблица результатов для CountryCountry ![Лист с фильтром для переключения между страной (country) и продавцом (saleperson) и просмотра результатов по каждому запросу в соответствующей таблице.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-GetObjDim-example.png)

В следующей таблице показаны результаты, если в фильтре `FilterField` выбрано `Country`.

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

| Country | Sum(SalesValue) |
| --- | --- |
| Canada | 700 |
| Mexico | 200 |
| USA | 1200 |

В следующей таблице показаны результаты, если в фильтре `FilterField` выбрано `SalesPerson`.

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

| SalesPerson | Avg(SalesValue) |
| --- | --- |
| Alice | 700 |
| Bob | 300 |
| Carol | 400 |
| Dave | 200 |
| John | 500 |