Skip to content

Ограничения ​

English · Русский

Настройки компонента @mes/aps@1.23.0. В MES имена записей Settings начинаются с schedule.; см. как заполнить запись.

Панели вторичных ограничений и движения материалов под основным полем: когда они показаны, как подписаны, что выводится в их строках и подсказках. Описание строки (label, order, hidden, template) такое же, как на странице подсказок и подписей. Высоту строк панелей задаёт вертикальный масштаб (precisionYConstraints, см. шкалу времени и масштаб), высоту заголовка панели — appSettings.UISettings.secondHeaderHeight (см. размеры и раскладку), цвета слоёв превышения и максимума и их приглушение — lateItemColor и inactiveElementsColor (см. внешний вид; панель движения материалов эти цвета не использует). В строках списков и подсказках обеих панелей гарантируются только перечисленные поля.

Видимость панелей ​

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

showConstraints ​

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

  • Тип: логическое значение
  • По умолчанию: false
  • Взаимодействие: имеет приоритет над showMaterialConstraints: если оба true, панель движения материалов не показывается. Приложение может переключать панели на работающем графике.

showMaterialConstraints ​

Показывает панель движения материалов при открытии графика.

  • Тип: логическое значение
  • По умолчанию: false

Заголовки и меню ​

constraintsDisplaySettings.title, materialConstraintsDisplaySettings.title ​

Заголовок соответствующей панели.

  • Тип: строка
  • По умолчанию: Вторичные ограничения, Движение материалов

constraintsDisplaySettings.menuShowConstraintsLabel, materialConstraintsDisplaySettings.menuShowConstraintsLabel ​

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

  • Тип: строка
  • По умолчанию: Показать/Скрыть использующие операции

Ключи minValLabel и maxValLabel в обеих секциях объявлены (по умолчанию Мин, Макс), но не используются: подписи минимума и максимума задаются в строках списка через constraintsListInfoConfig и materialConstraintsListInfoConfig.

График ограничения ​

appSettings.constraints.paddingTop ​

Отступ в пикселях сверху графика вторичного ограничения, чтобы пик кривой не касался верхнего края. Уменьшает область построения: масштаб значения считается по высоте строки за вычетом отступа. На график движения материалов не действует: там сверху и снизу оставляется по 5% высоты строки.

  • Тип: число, пиксели
  • По умолчанию: 20
  • Ограничение: отступ, сравнимый с высотой строки, делает график нечитаемым; высота строки меняется ползунком вертикального масштаба, см. шкалу времени и масштаб.

appSettings.constraints.paddingBottom ​

Объявлен с типом «число» и значением по умолчанию 20, но не читается при отрисовке. Изменение этого ключа не меняет нижний отступ.

Строки и подсказки: вторичные ограничения ​

По умолчанию обе секции пустые: строка списка без настройки не показывает текста, подсказка — ничего.

constraintsListInfoConfig ​

Текст строки в списке вторичных ограничений. Поля: constraintName, constraintItemID, constraintType, constraintTypeName, quantityMaxPoolValue (максимум), minQuantity (всегда 0), constraintGuid.

constraintsTooltipConfig ​

Подсказка при наведении на график ограничения. Поля: startDate, finishDate, quantity. Даты здесь — объекты даты; без преобразования они выводятся в системном представлении браузера, а не в ISO.

Строки и подсказки: движение материалов ​

materialConstraintsListInfoConfig ​

Текст строки в списке движения материалов. Поля: constraintName, constraintItemID, constraintType, constraintTypeName, constraintUOM, maxQuantity, minQuantity, quantityMinPoolValue, quantityMaxPoolValue, constraintGuid. Пакет вычисляет quantityMinPoolValue и quantityMaxPoolValue как минимум и максимум значений событий ограничения. При подготовке текста строки он добавляет их копии под именами minQuantity и maxQuantity. Минимум не обязан быть нулём. Оба вычисленных поля — числа, а не вложенный объект quantityMaxPoolValue.min/max.

materialConstraintsTooltipConfig ​

Подсказка при наведении на график движения материала. Простые поля: startDate, finishDate, quantity. Поля supply, producers, consumers — списки; для них задаётся группа с собственным набором полей:

json
{
  "materialConstraintsTooltipConfig": {
    "startDate": { "label": "Начало", "order": 1 },
    "quantity": { "label": "Остаток", "order": 2 },
    "supply": {
      "label": "Поставка",
      "order": 3,
      "enabled": true,
      "fields": {
        "name": { "label": "Наименование" },
        "quantity": { "label": "Кол-во" }
      }
    },
    "producers": {
      "label": "Производство",
      "order": 4,
      "fields": {
        "orderNumber": { "label": "Заказ" },
        "operationName": { "label": "Операция" },
        "quantity": { "label": "Кол-во" }
      }
    }
  }
}

Для записи с остатком 15 и одной поставкой материала «Сталь» в количестве 20 первая настройка покажет строку Остаток: 15, затем группу Поставка 1 со строками Наименование: Сталь и Кол-во: 20. Строка «Начало» покажет дату записи; группа «Производство» появится только при непустом списке producers.

Правила группы:

  • enabled: false скрывает группу; отсутствие ключа и true равнозначны. hidden не входит в описание группы; для её видимости используйте enabled.
  • Каждый элемент списка выводится с заголовком подпись N и строками подпись: значение. Внутри fields из описанных выше JSON-параметров действует только label; order, hidden и template там не применяются. Из кода приложение также может задать функцию transform.
  • Поля элемента: name, quantity, orderNumber, operationName, guid. Что из них заполнено, зависит от типа элемента: материал даёт name и quantity, операция — operationName и orderNumber, нераспознанный элемент — guid и quantity.
  • Пустой список не показывается вовсе.

Пример полного набора ​

json
{
  "constraintsListInfoConfig": {
    "constraintName": { "label": "", "order": 1 },
    "minQuantity": { "label": "Мин", "order": 2 },
    "quantityMaxPoolValue": { "label": "Макс", "order": 3 }
  },
  "constraintsTooltipConfig": {
    "quantity": { "label": "Использовано" }
  },
  "materialConstraintsListInfoConfig": {
    "constraintName": { "label": "", "order": 1 },
    "minQuantity": { "label": "Мин", "order": 2 },
    "maxQuantity": { "label": "Макс", "order": 3 },
    "constraintUOM": { "label": "", "order": 4 }
  },
  "materialConstraintsTooltipConfig": {
    "quantity": { "label": "Остаток", "order": 2 },
    "supply": { "label": "Поставка", "order": 3, "fields": { "name": { "label": "Наименование" }, "quantity": { "label": "Кол-во" } } },
    "producers": { "label": "Производство", "order": 4, "fields": { "orderNumber": { "label": "Заказ" }, "operationName": { "label": "Операция" }, "quantity": { "label": "Кол-во" } } },
    "consumers": { "label": "Потребление", "order": 5, "fields": { "orderNumber": { "label": "Заказ" }, "operationName": { "label": "Операция" }, "quantity": { "label": "Кол-во" } } }
  }
}

Даты начала и окончания в подсказках ограничений в этот набор не включены: без преобразования они выводятся через стандартное строковое представление Date, без выбора формата в JSON.