2.2.1. Диаграмма Гантта

2.2.1.1. Общие положения

Класс фрейма TbtkLookUpGanttTreeFrame

Диаграмма Гантта, графически представляет календарный план проекта в виде набора параллельных и последовательных задач, выполняемых с привлечением различных ресурсов — исполнителей, материалов, инструментов.

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

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

Дерево должно быть полностью прогружаемым.

../../../_images/Gantt_example.png

Пример Диаграммы Гантта

2.2.1.2. Правила построения диаграммы Гантта

Существует два режима определения элементов диаграммы Гантта:

  • Данные, отображаемые в виде элементов, содержаться в отдельных атрибутах дерева. В этом случае, одному узлу (строчке в дереве) может соответствовать только один элемент диаграммы.
  • Данные об элементах узла содержатся в одном атрибуте в виде строки с разделителями. В этом случае, узлу могут соответствовать несколько элементов диаграммы.

Переключение между режимами определения элементов осуществляется свойством фрейма “Элементы узла хранятся в одном атрибуте” (Gantt.Style)

2.2.1.2.1. Общие правила построения диаграммы Гантта (вне зависимости от режима определения элементов)

  1. При отсутствии или неправильном указании обязательных атрибутов в свойствах фрейма будет выдана ошибка.

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

  3. После открытия фрейма с диаграммой, производится масштабирование временного интервала диаграммы, таким образом, что бы все элементы диаграммы были видны на экране.

  4. Если узел дерева не содержит элементов, но при этом узел имеет подчинённые узлы, у которых имеются элементы, такой узел будет содержать элементы всех подчинённых строк. При этом, цвета элементов будут совпадать с цветами элементов в подчинённых узлах, а стиль элемента будет взят из атрибута, указанного в свойстве “Атрибут типа элемента”.

  5. Цвет должен быть указан в формате RGB, в 16-тиричной системе.

    Пример
    FF0000 - синий
    FF00 - зелёный
    FF – красный
    
  6. Возможные значения стилей элементов:

gisPipe:Прямоугольный элемент с заливкой указанного цвета с небольшим градиентом.
gisLine:Линия.
gisLineWEnd:Линия, ограниченная с обоих концов вертикальными линиями.
gisSpan:Диапазон (линия со стрелками на концах, направленными вниз)
gisSquare:Прямоугольник с чёрными границами и заливкой указанного цвета
gisCircle:Круг, положение которого на диаграмме зависит только от StartDate
gisRectangle:Прямоугольник, положение которого на диаграмме зависит только от StartDate
gisDiamond:Ромб, положение которого на диаграмме зависит только от StartDate

2.2.1.3. Свойства фрейма TbtkLookUpGanttTreeFrame:

Gantt.ItemIDFieldName

Атрибут идентификатора элемента

Свойство указывает на атрибут, содержащий цвет элемента диаграммы

Gantt.BeginDateFieldName

Атрибут даты начала

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

Gantt.EndDateFieldName

Атрибут даты окончания

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

Gantt.ItemStyleFieldName

Атрибут типа элемента

Свойство указывает на атрибут, содержащий стиль элемента диаграммы. Возможные значения стилей элементов:

gisPipe:Прямоугольный элемент с заливкой указанного цвета с небольшим градиентом.
gisLine:Линия.
gisLineWEnd:Линия, ограниченная с обоих концов вертикальными линиями.
gisSpan:Диапазон (линия со стрелками на концах, направленными вниз)
gisSquare:Прямоугольник с чёрными границами и заливкой указанного цвета
gisCircle:Круг, положение которого на диаграмме зависит только от StartDate
gisRectangle:Прямоугольник, положение которого на диаграмме зависит только от StartDate
gisDiamond:Ромб, положение которого на диаграмме зависит только от StartDate
Gantt.ItemColorFieldName

Атрибут цвета элемента

Свойство указывает на атрибут, содержащий цвет элемента диаграммы Цвет должен быть указан в формате RGB, в 16-ричной системе.

Пример
FF0000 - синий
FF00 - зелёный
FF - красный

В запросе значение цвета из строки (в 16-тиричном представлении) в число можно преобразовать следующим образом:

select
  utl_raw.CAST_TO_BINARY_INTEGER('80') as nColor
from
  dual
Gantt.ProgressFieldName

Атрибут со значением прогресса

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

(Свойство не обязательное)

Note

Отображение прогресса в виде полосы было введено в Global 5.3.4. В предыдущих версиях прогресс отображается в виде небольшого ромбика на элементе диаграммы.

Gantt.ItemParamsFieldName

Атрибут с параметрами элемента

Свойство содержит системное имя атрибута, в котором хранятся дополнительные параметры элемента диаграммы Гантта. Дополнительными параметрами являются, выравнивания теста, шрифт текста элемента и др. Параметры элемента указываются в виде строки с разделителями. Строка должна иметь следующий формат:

{Параметр}={значение};{Параметр}={значение}

Значения параметров элемента разделены точкой с запятой ";"

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

Список допустимых параметров смотрите ниже, в описании свойства “Атрибут с параметрами элементов”.

Gantt.CopyNodesToParent

Отображать элементы подчинённых узлов

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

Gantt.LinkFieldName

Атрибут с параметрами связей между элементами

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

Строка свойства может иметь два формата, новый и старый.

  • Старый формат:

    SourceID;DestID;LinkType|SourceID;DestID;LinkType
    

    где:

    • SourceID - идентификатор элемента, из которого выходит стрелка
    • DestID - идентификатор элемента, к которому приходит стрелка
    • LinkType – тип стрелки. Возможные значения:
      • asEndBegin - конец-начало,
      • asBeginBegin - начало-начало,
      • asEndEnd - конец-конец,
      • asBeginEnd - начало-конец.

    Значения параметров разделены точкой с запятой ";"

    Элементы разделены вертикальной чертой "|"

    Пример
    1212322001;1212324001;asBeginBegin|1212323001;1212325001;asBeginEnd
    

    Тип связи указывать не обязательно, т.е. допустима строка:

    1212322001;1212324001\|1212323001;1212325001
    

    в этом случае, будет считаться, что связь имеет тип asEndBegin

  • Новый формат:

    {Параметр}={значение};{Параметр}={значение}|{Параметр}={значение};{Параметр}={значение}.
    

    Поддерживаются следующие параметры:

    • FromID (сокр. FROM) - идентификатор элемента, от которого начинается линия

    • ToID (сокр. TO) - идентификатор элемента, к которого приходит линия

    • Direction (сокр. D) - направление. Значения:

      • asEndBegin (по умолчанияю)
      • asBeginBegin
      • asEndEnd
      • asBeginEnd
    • Style (сокр. S) - стиль. Значения:

      • psSolid - сплошная линия
      • psDash - линия состоящая из серии коротких линий (черточек).
      • psDot - линия образуется из серии точек.
      • psDashDot - линия образуется чередованием черточек и точек.
      • psDashDotDot - линия состоит из чередования черточек и пар точек.
      • psClear - линия не рисуется.

      Все стили кроме psSolid и psClear работают только если толщина не превышает 1 пиксель.

    • Thickness (сокр. T)- толщина (по умолчанию 1px).

    • Color (сокр. С) - цвет линии (по умолчанимю черный(CLBlack)). Цвет можно задавать как в шестнадцатиричном виде $000000(черный), так и с использованием констант (ClBlack, ClWhite, ClRed, ClYellow, ClGreen, ClBlue и др.)

    Параметры на равне с полным именем, имеют равноправные сокращенные, которыми так же можно пользоваться при задание строки параметров.

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

Gantt.Style

Элементы узла хранятся в одном атрибуте

Флаг указывает, что информация об элементах диаграммы Гантта хранится в атрибуте, указанном в свойстве "Атрибут с параметрами элементов" (Gantt.ItemsDataFieldName), в виде строки с разделителями.

При указанном флаге, свойства: “Атрибут идентификатора элемента”, “Атрибут даты начала”, “Атрибут даты окончания” и “Атрибут цвета элемента” не имеют значения, поскольку вся информация об элементах хранится в атрибуте, указанном в свойстве “Атрибут с параметрами элементов”. Значения, содержащиеся в атрибуте, указанном в свойстве “Атрибут типа элемента”, используются узлами, содержащими элементы подчинённых узлов (см. Общие правила построения диаграмм Гантта, п. 4).

Gantt.ItemsDataFieldName

Атрибут с параметрами элементов

Свойство указывает на атрибут, содержащий все параметры элементов диаграммы, принадлежащих текущему узлу, в строке с разделителями. Указание свойства имеет смысл при выставленном флаге "Элементы узла хранятся в одном атрибуте".

Строка должна иметь следующий формат:

{Параметр}={значение};{Параметр}={значение}|{Параметр}={значение};{Параметр}={значение}

Значения параметров элемента разделены точкой с запятой ";"

Элементы разделены вертикальной чертой "|"

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

Gantt.DrawLines

Разлиновка

Свойство позволяет отключить раскрашивание диаграммы ганта чередующимися линиями разного цвета в соответствие записям дерева. По умолчанию свойство в значение true - разлиновка включена.

Gantt.EnableMoving

Возможность перемещения элементов с помощью мыши

Управление возможностью перемещения элементов использую мышь. По умолчанию значение false – запрещено.

Gantt.EnableResizing

Возможность изменения размеров элементов

Управление возможностью изменения размеров элементов использую мышь. По умолчанию значение false – запрещено.

Gantt.DrawingItemsConstraint

Свойство позволяет отключить отображние на диаграмме ограничения месторасположения элементов

Свойство позволяет отключить отображние на диаграмме ограничения месторасположения элементов.

Gantt.EnableMenuOnLinkCreate

Отображать меню выбора направления при создании связи

Свойство позволяет отключить всплывание меню перед вызовом OnlinkCreate при создании связи между элементами диаграммы Ганта используя мышь.

Полное имя Краткое имя Описание
ID ID Идентификатор элемента
StartDate (Обязательный) STD Дата начала процесса в формате dd.mm.yyyy или dd.mm.yyyy hh:mm:ss
StopDate (Обязательный) SPD Дата окончания процесса в формате dd.mm.yyyy или dd.mm.yyyy hh:mm:ss
Style ST

Стиль элемента. Определяет форму элемента на диаграмме:

gisPipe - Прямоугольный элемент с заливкой указанного цвета с небольшим градиентом.

gisLine - Линия.

gisLineWEnd - Линия, ограниченная с обоих концов вертикальными линиями.

gisSpan - Диапазон (линия со стрелками на концах, направленными вниз)

gisSquare - Прямоугольник с чёрными границами и заливкой указанного цвета

Color CO

Цвет элемента. Цвет должен быть указан в формате RGB, в 16-тиричной системе (не забывайте ставить значок $ перед значением).

$FF0000 - синий

$FF00 - зелёный

$FF - красный

Progress P Определяет степень выполнения задачи от 0 до 100. Если прогресс не задан или отрицателен, индикатор прогресса не отрисовывается. (по умолчанию: -1)
ProgressColor PC

Цвет, которым будет закрашен индикатор прогресса выполнения задачи (ромб или линия). Цвет должен быть указан в формате RGB, в 16-тиричной системе (не забывайте ставить значок $ перед значением).

$FF0000 - синий

$FF00 - зелёный

$FF – красный (по умолчанию)

ProgressWidth PW Ширина полоски прогресса выполнения задачи. Указывается в процентах от ширины элемента диаграммы. Не учитывается для элементов диаграммы типа gisLine, gisLineWEnd, gisSpan.
Hint H Текст всплывающей подсказки, отображаемой при наведении курсора мыши на элемент.
Caption C Текст элемента, отображаемый на диаграмме.
CaptionPos CP

Положение текста элемента, относительно элемента.

cpLeft – слева от элемента

cpInside – на элементе (по умолчанию)

cpRight – справа от элемента

CaptionCrop CC

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

True – обрезать текст

False – не обрезать текст (в этом случае текст может быть длиннее самого элемента) (по умолчанию)

CaptionAlignment CA

Выравнивание текста элемента. Флаг имеет смысл, только при расположении текста на элементе.

taLeftJustify – выравнивание по левому краю элемента

taCenter – выравнивание по центру (по умолчанию)

taRightJustify - выравнивание по правому краю элемента

CaptionVertAlignment CVA

Выравнивание текста элемента по вертикальной оси.

taTopJustify – по верхнему краю

taBottomJustify – по нижнему краю

taVCenter – по центру (по умолчанию)

FontName FN Системное имя, шрифта
FontStyle FS

Стиль шрифта:

fsBold - жирный

fsItalic - наклонный

fsUnderLine - подчёркнутый

fsStrikeOut - зачёркнутый

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

Пример: FontStyle=fsBold,fsItalic,fsUnderLine

FontSize FSZ Размер шрифта (по умолчанию: 10)
FontColor FC Цвет шрифта (по умолчанию: Чёрный)
Width W Ширина элемента. Ширина задается пропорционально высоте, и диапозон значния не ограничен. Т.е. значение ширины в 200% задает ширину равную 2*Height(pixel). Ширину следует задавать элементам, расположение которых зависит только от параметра StartDate(прямоугольни и ромб). Если высота равна 100%, то установка значения параметра в 200%, задаст ширину в два раза больше высоты строки, т.к. высота равная 100% соответствует высоте строки.
Height HT Высота элемента в процентах. Максимальная высота 100%, равная высоте строки, минимальная 10%..
Center CR Задает центр фигуры в процентах(0-100%), т.е. центру строки соответствует значение 50.%. Тем самым использование данного параметра с параметром Height позволяет расположить несколько элементов на одной линии без их взаимного перекрытия.
MovingEnable: boolean ME Позволяет запретить перемещать элемент используя манипулятор типа "мышь". Пример:ME=0;
ResizingEnable: boolean RE Позволяет запретить изменять размеры элемента используя манипулятор типа "мышь". Пример:RE=0;
StartDateLimit:TDateTime [1] STL Ограничение на минимальное значение положения левой границы элемента графика ганта( левая граница изменения размера или перемещения элемента). Пример: STL=4.04.2009 11:45:00
StopDateLimit:TDateTime [1] SPL Ограничение на максимальное значение положения правой границы элемента графика ганта(правая граница изменения размера или перемещения элемента). ). Пример: SPL=12.04.2009 11:45:00
Пример:
ID=1215170001; Std=13.11.2006; StopDate=14.11.2006; Style=gisPipe; Color=$008000; Progress=0; ProgressColor=$800000; ProgressWidth=50; Caption=Субпроцесс № 1-3-1; CaptionPos=cpInside; CaptionAlignment=taRightJustify; CVAt=taVCenter; CaptionCrop=True; FontName=Arial; FontStyle=; FontSize=8; FontColor=$0000FF; Hint=Всплывающая подсказка для элемента Субпроцесс № 1-3-1|ID=1212324001; Std=03.11.2006; StopDate=04.11.2006; Style=gisPipe; Color=$008000; Progress=0; ProgressColor=$800000; Caption=Субпроцесс № 1-3-1; CaptionPos=cpInside; CaptionAlignment=taRightJustify; CVAt=taVCenter; CaptionCrop=True; FontName=Arial; FontStyle=; FontSize=8; FontColor=$0000FF; Hint=Всплывающа подсказка для элемента Субпроцесс № 1-3-1|ID=1215170001; Std=10.11.2006; StopDate=14.11.2006; Style=gisCircle; Color=$0080EE; CaptionPos=cpInside; CaptionAlignment=taRightJustify; CVAt=taVCenter; CaptionCrop=True; FontName=Arial; FontStyle=; FontSize=8; FontColor=$0000FF; Hint=Всплывающая подсказка для элемента; CR=50; HT=70;
Пример параметров, которые задают два процесса в одной линии:
ID=1215170001; Std=10.11.2006; StopDate=14.11.2006; Style= gisPipe; Color=$008000; Progress=0; ProgressColor=$800000; Caption=Субпроцесс № 1-3-1; CaptionPos=cpInside; CaptionAlignment=taRightJustify; CVAt=taVCenter; CaptionCrop=True; FontName=Arial; FontStyle=; FontSize=8; FontColor=$0000FF; Hint=Всплывающа подсказка для элемента; Center=25; Height=50; |ID=1215170002; Std=12.11.2006; StopDate=16.11.2006; Style=gisPipe; Color=$FF8E00; Progress=0;ProgressColor=$80046D;Caption=Субпроцесс № 1-3-1; CaptionPos=cpInside; CaptionAlignment=taRightJustify; CVAt=taVCenter; CaptionCrop=True; FontName=Arial; FontStyle=;FontSize=8; FontColor=$0000FF; Hint=Всплывающа подсказка для элемента; Center=75;Height=50;

Так же, поддерживается устаревший формат строки для задания элементов. Не рекомендуется его использовать, поскольку формат оставлен для совместимости.

Строка должна иметь следующий формат:

ID;BeginDate;EndDate;Style;Color;Caption;FontColor|ID;BeginDate;EndDate;Style;Color;Caption;FontColor

где:

  • ID - идентификатор элемента
  • BeginDate - дата начала
  • EndDate - дата окончания
  • Style - тип элемента
  • Color - цвет элемента
  • Caption – текст элемента
  • FontColor – цвет текста элемента

Значения параметров элемента разделены точкой с запятой ";"

Элементы разделены вертикальной чертой "|"

Первые три параметра обязательны, цвет и тип могут быть не заданы.

Даты должны быть указаны в формате "dd.mm.yyyy hh:mm:ss"

Цвет должен быть указан в формате RGB, в 16-тиричной системе (не забывайте ставить значок $ перед значением):

$FF0000 - синий
$FF00 - зелёный
$FF - красный
Пример
1212319001; 01.11.2006 12:11:00;02.11.2006 12:11:00; gisLineWEnd; $8000; Текст;
 $FF |1212390001; 05.11.2006 12:11:00; 06.11.2006 12:11:00; gisLineWEnd; $8000; Текст2; $FF
Gantt.WeekdaysMode

Режим отображения дней недели

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

  • wdmShort - Всегда использовать сокращения. Это значение используется по умолчанию.
  • wdmAuto - Использовать полные наименования, сокращать если не достаточно доступного места.

2.2.1.4. Примеры запросов и методов:

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

Запрос для режима, когда в одном узле может быть только один элемент.
select
 t.*,
 Decode(bisRoot, 1, utl_raw.CAST_TO_BINARY_INTEGER('80'),
 Decode(bHasChild, 0, utl_raw.CAST_TO_BINARY_INTEGER('8000'),
 utl_raw.CAST_TO_BINARY_INTEGER('800000'))) as nItemColor,
 Decode(bisRoot, 1, 'gisPipe', Decode(bHasChild, 0, 'gisLineWEnd', 'gisSpan')) as sItemStyle
 from (
 select
 t.ID,
 t.idParent, GanttExtAPI.GetidParent_HL(t.idParent) as idParent_HL,
 t.sCAPTION,
 t.idClass,
 gc.id as idItem,
 gc.dDateBegin,
 gc.dDateEnd,
 GanttextcollectAPI.GetLinks(gc.id) sLinks,
 (Select nvl(max(1),0)
 from GanttExt
 where idParent = t.id) bHasChild,
 Decode(t.idParent, null, 1, 0) bisRoot,
 ‘Текст’ as sItemText
 from GanttExt t, Ganttextcollect gc
 where t.id = gc.IDGanttExt(+)
 ) t
Запрос для режима, когда в одном узле могут быть несколько элементов.
select
 t.*,
 Decode(bisRoot, 1, utl_raw.CAST_TO_BINARY_INTEGER('80'),
 Decode(bHasChild, 0, utl_raw.CAST_TO_BINARY_INTEGER('8000'),
 utl_raw.CAST_TO_BINARY_INTEGER('800000'))) as nItemColor,
 Decode(bisRoot, 1, 'gisPipe', Decode(bHasChild, 0, 'gisLineWEnd', 'gisSpan')) as sItemStyle,
 GanttextcollectAPI.GetItemsAsString(t.id, bisRoot, bHasChild) sItemsData
 from (
 select
 t.ID,
 t.idParent, GanttExtAPI.GetidParent_HL(t.idParent) as idParent_HL,
 t.sCAPTION,
 t.idClass,
 ''as sLinks'',
 (Select
 nvl(max(1),0)
 from GanttExt
 where idParent = t.id) bHasChild,
 Decode(t.idParent, null, 1, 0) bisRoot
 from GanttExt t
 ) t
Функции API типов, использованных в запросе.
static function GetItemsAsString(idpLine in number, bpHasChild in number, bpIsRoot in number) return varchar2 as
  res varchar2 (4000);
  tempRes varchar2 (4000);
 begin
   res :=;
   *for cr in
   (select gc.* from ganttextcollect gc
   where gc.IDGanttExt = idpLine)
   loop
     tempRes := to\_char(cr.id) || ';' || to_char(cr.ddatebegin, 'dd.mm.yyyy hh:mm:ss') || ';' || to_char(cr.ddateend, 'dd.mm.yyyy hh:mm:ss');
     if bpisRoot = 1 then
      tempRes := tempRes || '; gisPipe;$8000';
     else
       beginif bpHasChild = 0 then
        tempRes := tempRes || ';gisLineWEnd;$80*';
       else
        tempRes := tempRes || ';gisSpan;$800000';
       end if;
       end;
     end if;

     tempRes := tempRes || ';Текст';
     if res is null then
      res := tempRes;
     else res := res || ' | ' ||tempRes;
     end if;
    end loop;
   return res;
  end;

static function GetLinks(idpSelf in number) return varchar2 as
  res varchar2 (4000);
begin
  if idpSelf is not null then
    res := to_char(idpSelf)|| ';' || '1212324001'; /*для примера здесь прописан идентификатор объекта, в реальном случае здесь будет более сложная логика*/
  else
    res := ;
  end if;
end;

2.2.1.5. Контекстные операции и переменные

2.2.1.5.1. События диаграммы Гантта

При клике на элементе диаграммы Гантта, границы этого элемента обводятся синим, происходит фокусировка на соответствующий узел в дереве, после чего отрабатывает операция дерева OnFocusedItemChanged (если она существует). Перед фокусировкой на узел дерева переменной выборки IDFocusedItem# присваивается значение идентификатора выделенного элемента. Значение этого параметра доступно как в CWA дерева, выполняемого после фокусировки, так и в операции OnFocusedItemChanged.

При клике в пустое пространство или на элементе, который был скопирован из подчинённой линии, фокусировка в дереве не производится, в переменную IDFocusedItem# записывается значение Null, операция OnFocusedItemChanged отрабатывает.

Выделение возможно только для «первичных» элементов. Элементы, которые были скопированы в линию от подчинённых линий, выделить не возможно.

При двойном клике на элементе диаграммы выполняется первая операция контекстного (выпадающего) меню, или операция OnDoubleClick, если она существует.

2.2.1.5.2. Создание выпадающего меню

Для добавления операций в выпадающее меню диаграммы Гантта, необходимо создать в выборке дерева операцию GanttPopupMenu. Операции, находящиеся под этой операцией, будут добавлены в выпадающее меню диаграммы Гантта, отображаемое при клике правой кнопкой мыши на «первичном» элементе диаграммы.

2.2.1.5.3. Оформление Диаграммы Ганта в стилях темы интерфейса

Начиная с Global 1.5 в Диграмме Ганта реализована поддержка тем интерфейса.

../../../_images/GanttStyle.gif

Внешний вид Диаграммы Ганта с поддержкой тем интерфейса и без

[1](1, 2) Диапозон между StartDateLimit и StopDateLimit визуально отрисовывается пунктирной линией для каждого элемента. Видимостью диапозона управляет свойство фрейма "Gantt.DrawingItemsConstraint". Для запрета отрисоки необходимо свойство сбросить в значение false.