Это старая версия документа!


Статья в разработке!!

Пункт «Диаграмма Ганта» представляет собой новую отдельную страницу «Настройка диаграммы Ганта» с двумя разделами настроек диаграммы Ганта:

  • Настройка полей из LINQ-запроса.
  • Визуальные настройки.

Раздел «Настройка полей из LINQ-запроса» страницы «Настройка диаграммы Ганта»:

  • Содержит выпадающий список с названиями всех LINQ-запросов, созданных в Системе, в которых одновременно:
    • включена опция «Может использоваться в диаграмме Ганта».
    • возвращается колонка ObjectId (в поле ObjectId должны содержаться ID объектов Системы).
  • Cодержит кнопку «Настроить» по нажатию на которую в одной и той же вкладке браузера открывается отдельная страница «Настройка полей из LINQ-запроса «Название_запроса»».
  • Если в системе нет ни одного подходящего LINQ-запроса, то раздел содержит только текст «Нет ни одного источника данных с колонкой «ObjectId»» (без кавычек).

Страница «Настройка полей из LINQ-запроса «Название_запроса»» содержит таблицу с колонками:

  • (Отображать в диаграмме Ганта). Содержит чекбокс, отвечающий за отображение соответствующего поля LINQ-запроса в диаграмме Ганта. Чекбокс по умолчанию выключен.
  • «Название поля». Содержит список названий полей, который возвращает LINQ-запрос. Поле ObjectId без возможности настройки (чекбокс «Отображать в диаграмме Ганта» неактивен).
  • «Псевдоним». Содержит строковое поле ввода для указания названия соответствующего поля LINQ-запроса, которое будет отображаться в диаграмме Ганта. По умолчанию название не указано.
  • «Тип». Содержит выпадающий список с типами данных полей. По умолчанию указан тип «Строка».
  • Поддерживаемые типы данных:
  • Число.
    При указании данного типа правее отображается выпадающий список с указанием формата данных.
    Три значения с сортировкой сверху-вниз: «Число», «Денежный» и «Процент».
    По умолчанию указывается формат «Число».
    Используются региональные настройки операционной системы.
  • Дата. При указании данного типа правее отображается выпадающий список с указанием формата данных. Два значения с сортировкой сверху-вниз: «Дата» и «Дата и время». По умолчанию указывается формат «Дата». Использовать региональные настройки операционной системы.
  • Индикатор:
    • При указании данного типа правее добавляется подсказка и кнопка «Добавить» для добавления нового индикатора.
    • При нажатии на кнопку «Добавить» добавляется индикатор соответствующего цвета.
      • Цвет индикатора определяется на основе уже добавленных индикаторов по следующему алгоритму сверху вниз:
        • Добавить индикатор с зеленым цветом (63D16F) по умолчанию, если его нет.
        • Добавить индикатор с оранжевым цветом (F6B40E) по умолчанию, если его нет.
        • Добавить индикатор с красным цветом (EE1927) по умолчанию, если его нет.
        • Если индикаторы со всеми тремя цветами выше присутствуют, то добавить индикатор с синим цветом (00C2FF) по умолчанию.
      • У каждого индикатора есть поле ввода для указания логического выражения. Поддерживаются числа и операторы сравнения (=, !=, >=, ⇐, >, <).
        • Проверка на корректность составленного логического выражения не производится.
        • Логика сопоставления значения конкретному индикатору осуществляется по принципу их расположения сверху вниз до первого выполнения условия. К примеру, логическое выражение составлено так,
          • если А > 10, то зеленый индикатор,
          • если А > 20, то красный индикатор,
            • то значению А = 25 будет присвоен зеленый индикатор, т.к. по порядку расположения индикаторов сверху вниз условие зеленого индикатора выполнилось первым и остальные не проверяются.
        • У каждого индикатора есть кнопка для его удаления.
        • У каждого индикатора есть возможность смены его цвета путем выбора цвета из имеющейся палитры, либо указанием в соответствующем поле ввода шестнадцатеричного кода цвета.
  • Строка. Без указания формата данных. Значение по умолчанию.

По нажатию на кнопку «Сохранить» страница «Настройка полей из LINQ-запроса «Название_запроса» закрывается. Открывается страница «Настройка диаграммы Ганта»:

Настроить дополнительные поля для отображения в диаграмме Ганта можно только на основании какого-то одного LINQ-запроса.

Если такая настройка произведена, и поля для отображения выбраны, они должны выводиться на странице «Настройка диаграммы Ганта» в виде краткой таблицы, содержащая название включенного поля и его тип, соответственно.

  • Если у поля указан псевдоним, то отображается он.
  • Если нет, то название поля из LINQ-запроса.

Над таблицей отображается название настроенного LINQ-запроса.

Созданную настройку можно отвязать и создать новую – кнопка «Отвязать настройки».

Если в колонке (Отображать в диаграмме Ганта) страницы «Настройка полей из LINQ-запроса «Название_запроса» не активен ни один чекбокс, то в разделе «Настройка полей из LINQ-запроса» страницы «Настройка диаграммы Ганта» отображается выпадающий список с LINQ-запросами и кнопкой «Настроить»:

При этом настройки для раннее настраиваемого LINQ-запроса сохраняются, если снова выбрать его и нажать «Настроить».

Изменения одинаковы для диаграммы Ганта, открытой с уровня любого объекта Системы.

В выпадающем списке (у любой из колонок диаграммы Ганта) добавить новый пункт «Пользовательские столбцы». Расположить под пунктом «Столбцы». Пункт виден, когда настроен и привязан LINQ-запрос в портлете «Настройка полей из LINQ-запроса» страницы администрирования «Настойка диаграммы Ганта».

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

Названия полей LINQ-запроса берутся из колонки «Псевдоним» (п.п. 4.1.5.3), если оно заполнено. Если не заполнено, то из колонки «Название» (п.п. 4.1.5.2).

Каждое поле имеет чекбокс. По умолчанию не отмечен.

При активации чекбокса:

  • В таблицу диаграммы Ганта добавляется соответствующее поле LINQ-запроса с данными.
  • Запрос данных по полю LINQ-запроса происходит следующим образом:
    • LINQ-запросу передается идентификатор объекта, с карточки которого открыта диаграмма Ганта.
    • LINQ-запросом возвращается таблица с данными, включающая поля:
    • ObjectId – идентификаторы объекта (который был передан LINQ-запросу) и всех его дочерних объектов.

Происходит сопоставление идентификаторов объектов, подгруженных в диаграмму Ганта, с идентификаторами объектов поля ObjectId и заполнение поля соответствующими данными.

Запрос данных по полю происходит разово. Данные сохраняются до обновления страницы с диаграммой Ганта.

Поля LINQ-запроса доступны только для просмотра.

Поля с типом «Индикатор»:

  • Содержат индикатор в форме круга, выровненный по центру ячейки поля.
  • Цвет индикатора согласно настроенному логическому выражению.
  • Размер индикатора вписан в высоту ячейки поля.

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

При сохранении настроек отображения диаграммы Ганта (Опция «Сохранить настройки»), сохраняется видимость и порядок полей LINQ-запроса согласно выбранным настройкам.

При изменении настроек видимости полей на странице «Настройка полей из LINQ-запроса «Название_запроса»» изменяются и сохраненные настройки отображения диаграммы Ганта. К примеру, если у поля LINQ-запроса был деактивирован чекбокс в колонке (Отображать в диаграмме Ганта), то из таблицы диаграммы Ганта данное поле пропадает, не смотря на то, что оно было отображено при сохранении настроек отображения диаграммы Ганта (Опция «Сохранить настройки»).

Диаграмма Ганта поддерживает те типы полей LINQ-запроса, которые содержатся в списке колонки «Тип» (п.п. 4.1.5.4) на странице «Настройка полей из LINQ-запроса «Название_запроса»».

Если у соответствующего объекта, загруженного в диаграмму Ганта, LINQ-запрос по соответствующему полю вернул пустое значение, то и в соответствующей строке этого поля отображать пустое значение.

  • Экспорт диаграммы Ганта в pdf и png поддерживает поля LINQ-запроса.
  • Экспорт диаграммы Ганта в xls не поддерживает поля LINQ-запроса.

Если тип у поля LINQ-запроса, у которого активен чекбокс в колонке (Отображать в Диаграмме Ганта), не может быть сконвертирован в тип, указанный в колонке «Тип», то в диаграмме Ганта данное поле отображает пустые данные. Никакой ошибки в диаграмме Ганта не выводится.

Если поле LINQ-запроса отображено в диаграмме Ганта, то при изменении типа поля в самом LINQ-запросе (когда возникает ситуация невозможности конвертации в тип, указанный в колонке «Тип»), поле отображает пустые данные. Никакой ошибки в диаграмме Ганта не выводится.

Переименованное поле в LINQ-запросе расценивать, как новое поле.

Проверка на корректность составленного логического выражения у типа «Индикатор» не производится. В диаграмме Ганта у соответствующего поля с некорректно составленным логическим выражением отображать пустое значение.

С целью фильтрации возвращаемых данных LINQ-запрос должен учитывать передаваемый диаграммой Ганта идентификатор объекта (RootProjectId) с карточки которого она открыта. Требование не обязательное и необходимо для оптимизации запроса. Для оптимизации запроса добавьте в него следующую строку:

var objectID = parameters.GetValueOrDefault<Guid>("RootProjectId", new Guid("daba2cbb-a4a9-4708-9366-5dd3ead1f172"));

где

  • RootProjectId – передаваемый диаграммой Ганта идентификатор объекта,
  • new Guid(«daba2cbb-a4a9-4708-9366-5dd3ead1f172») – идентификатор любого объекта системы, необходимый для отладки запроса.

LINQ-запрос должен обязательно возвращать поле ObjectId – идентификаторы объекта (который был передан LINQ-запросу диаграммой Ганта) и всех его дочерних объектов.
В противном случае данный запрос не будет виден в списке для привязки к диаграмме Ганта.

На странице создания LINQ-запроса добавить опцию «Может использоваться в диаграмме Ганта».

При активации чекбокса кнопка «Сохранить» заменяется на «Сделать запрос и сохранить». При нажатии кнопки «Сделать запрос и сохранить» запрос выполняется и сохраняется.

При деактивации чекбокса кнопка «Сделать запрос и сохранить» заменяется на «Сохранить». При нажатии кнопки «Сохранить» запрос сохраняется без выполнения.

На странице со списком всех созданных в Системе запросов добавить новую колонку «Используется в диаграмме Ганта». Поле содержит значения «Да» и «Нет» в зависимости включена или нет опция «Может использоваться в диаграмме Ганта» у соответствующих запросов.