1.8.5. Gantt¶
Описание классов для работы с диаграммой Гантта.
1.8.5.1. TbtkGanttItem¶
-
class
TbtkGanttItem
¶ Визуальный Элемент диаграммы Гантта.
-
ID
: Integer¶ Идентификатор. Должен быть уникальным.
Return type: Integer
-
Style
: TbtkGanttItemStyle¶ Стиль.
Return type: TbtkGanttItemStyle
-
FillStyle
: TBrushStyle¶ Шаблон заливки.
Return type: TBrushStyle
-
Caption
: String¶ Отображаемое наименование.
Return type: String
-
CanMove
: Boolean¶ Возможность перемещения.
Return type: Boolean
-
CanResize
: Boolean¶ Возможность изменения размера.
Return type: Boolean
-
StartDateLimit
: TDateTime¶ Положение левой границы пунктирного контура.
Return type: TDateTime
-
StopDateLimit
: TDateTime¶ Положение правой границы пунктирного контура.
Return type: TDateTime
-
StartDateConstraint
: TDateTime¶ Минимальное положение левой границы (при изменении размера или перемещении).
Return type: TDateTime
-
StopDateConstraint
: TDateTime¶ Максимальное положение правой границы (при изменении размера или перемещении).
Return type: TDateTime
-
Selected
: Boolean¶ Выделенность.
Return type: Boolean
-
Focused
: Boolean¶ Сфокусированность.
Return type: Boolean
-
1.8.5.2. TbtkGanttItemStyle¶
-
class
TbtkGanttItemStyle
¶ Перечисление. Стиль отображения элемента диаграммы Гантта.
-
gisSquare
¶ Прямоугольник с границами и заливкой заданного цвета.
-
gisPipe
¶ Прямоугольник с заливкой заданного цвета с градиентом.
-
gisLine
¶ Линия.
-
gisLineWEnd
¶ Линия, ограниченная с обоих концов вертикальными линиями.
-
gisSpan
¶ Диапазон (линия со стрелками на концах, направленными вниз).
-
gisCircle
¶ Круг. Отображается на
StartDate
.
-
gisRectangle
¶ Квадрат. Отображается на
StartDate
.
-
gisDiamond
¶ Ромб. Отображается на
StartDate
.
-
1.8.5.3. TbtkGanttLink¶
-
class
TbtkGanttLink
¶ Связь между элементами диаграммы Гантта.
-
Direction
: TbtkGanttLinkDirection¶ Направление. Определяет, из каких частей связуемых элементов исходит стрелка (из начала или конца).
Return type: TbtkGanttLinkDirection
-
SourceItemID
: Variant¶ Идентификатор элемента-источника.
Return type: Variant
-
DestItemID
: Variant¶ Идентификатор элемента-приемника.
Return type: Variant
-
1.8.5.4. TbtkGanttLinkDirection¶
-
class
TbtkGanttLinkDirection
¶ Перечисление. Способ задания связи между элементами.
Первая часть константы указывает, от какой части первого элемента исходит стрелка (из начала или из конца).
Вторая часть константы указывает то же самое для второго элемента.
-
asBeginBegin
¶ Соединение начала первого элемента с началом второго.
-
asBeginEnd
¶ Соединение начала первого элемента с концом второго.
-
asEndBegin
¶ Соединение конца первого элемента с началом второго.
-
asEndEnd
¶ Соединение конца первого элемента с концом второго.
-
1.8.5.5. TbtkVertLineDateDef¶
1.8.5.6. TbtkGanttRegionDef¶
-
class
TbtkGanttRegionDef
¶ -
-
FromDate
: String¶ Дата начала.
Return type: String
-
ToDate
: String¶ Дата конца.
Return type: String
-
Style
: TBrushStyle¶ Шаблон заливки.
Return type: TBrushStyle
-
1.8.5.7. TbtkGantt¶
-
class
TbtkGantt
¶ Скриптовый класс для работы с фреймом диаграммы Гантта
TbtkLookUpGanttTreeTabFrame
.-
DrawOnlyFocusedItemLinks
: Boolean¶
Настройка отображения связей между элементами.
Return type: Boolean Returns: - True
- Отображаются только те связи, которые относятся к выделенным записям.
- False
- Отображаются все связи между элементами
-
1.8.5.7.1. Интервалы¶
-
UpdateScale
()¶ Обновить диаграмму с учетом установленных
StartDate
иStopDate
.Метод необходимо использовать после изменения значений данных свойств, чтобы они стали заметны визуально.
<pascal> Selection.Gantt.StartDate := StrToDate('5.7.2006'); Selection.Gantt.StopDate := StrToDate('7.7.2006'); Selection.Gantt.UpdateScale; </pascal>
-
StartDate
: TDateTime¶ Дата начала отображаемого интервала диаграммы.
При установке даты меньше, чем
MinStartDate
,MinStartDate
также уменьшается.Return type: TDateTime See also
-
StopDate
: TDateTime¶ Дата окончания отображаемого интервала диаграммы.
При установке даты больше, чем
MaxStopDate
,MaxStopDate
также увеличивается.Return type: TDateTime See also
-
MinStartDate
: TDateTime¶ Дата начала фактического интервала диаграммы.
При установке даты больше, чем
StartDate
,StartDate
также увеличивается.Return type: TDateTime See also
New in version Global: 5.3.3.3750
-
MaxStopDate
: TDateTime¶ Дата окончания фактического интервала диаграммы.
При установке даты меньше, чем
StopDate
,StopDate
также уменьшается.Return type: TDateTime See also
New in version Global: 5.3.3.3750
-
CalcDateInterval
()¶ Подобрать отображаемый интервал таким образом, чтобы все элементы отображались на экране.
-
CalcDateIntervalByActiveScale
()¶ Подобрать отображаемый интервал (масштаб) по активной шкале.
- Алгоритм применения масштаба к шкале:
- Задать
StopDate
(StartDate
не трогаем) - Если
StopDate
упёрся вMaxStopDate
, двигаемStartDate
- Задать
-
1.8.5.7.2. Вертикальные линии¶
-
VLines
: TbtkVertLineDateDef¶ Коллекция вертикальных линий.
Return type: TbtkVertLineDateDef
-
VLinesCount
: Integer¶ Число вертикальных линий.
Return type: Integer
-
AddVLine
(Date: TDateTime; Color: Integer; Style: TPenStyle; Width: Integer): Integer¶ Добавить вертикальную линию.
Возвращает индекс добавленной линии в коллекции.
Parameters: Return type: Integer
<pascal> Selection.ExecOpScript('#AfterOpen'); i := Selection.Gantt.AddVLine('11.04.2009', $0000FF, psDot, 1); </pascal>
-
FindVLineByDate
(Date: TDateTime): integer¶ Найти вертикальную линию по дате. Если линия найдена, возвращается её индекс в коллекции. Если не найдена, возвращается -1.
Parameters: Date (TDateTime) – дата для поиска. Return type: Integer
-
DeleteVLine
(Index: Integer)¶ Удалить вертикальную линию по индексу.
Parameters: Index (Integer) – индекс. <pascal> Index := Gantt.FindVLineByDate(StrToDateTime('11.04.2009')); Gantt.DeleteVLine(Index); </pascal>
-
ClearVLines
()¶ Очистить коллекцию вертикальных линий.
-
1.8.5.7.3. Регионы¶
<pascal> i := Gantt.AddRegion('11.04.2009 00:30', '13.04.2009 12:38', $8C1EB2, bsBDiagonal); Gantt.DeleteRegion(i); i := Gantt.AddRegion('11.04.2009 00:30', '13.04.2009 19:38', $8CAE02, bsBDiagonal); Gantt.ClearRegions; i := Gantt.AddRegion('11.04.2009 00:30', '13.04.2009 19:38', $0000FF, bsBDiagonal); Gantt.Region[Gantt.RegionCount - 1].FromDate := '13.04.2009 00:30'; Gantt.Region[Gantt.RegionCount - 1].ToDate := '17.04.2009 09:30'; </pascal>
-
Region
: TbtkGanttRegionDef¶ Коллекция временных регионов.
Return type: TbtkGanttRegionDef
-
AddRegion
(FromDate, ToDate: String; Color: Integer; Style: TBrushStyle): Integer¶ Добавить регион на график Гантта.
Возвращает индекс региона в коллекции.
Parameters: - FromDate (String) – дата начала;
- ToDate (String) – дата конца;
- Color (TColor) – цвет;
- Style (TBrushStyle) – шаблон заливки.
Return type: Integer
-
1.8.5.7.4. Выделенная дата¶
Выделение даты осуществляется двойным щелчком.
ShowSelectedDate
: Boolean¶Отображение линии для выделенной даты.
Значение по умолчанию: False.
- True — отображать;
- False — не отображать.
Return type: Boolean
SelectedDatePenStyle
: TPenStyle¶Стиль пера линии выделенной даты.
Значение по умолчанию: psDashDot.
Return type: TPenStyle
SelectedDateColor
: TColor¶Цвет линии выделенной даты.
Значение по умолчанию: clLime (зелёный).
Return type: TColor
SelectedDateTime
: TDateTime¶Выделенная дата.
Только для чтения.
Return type: TDateTime
1.8.5.7.5. Текущая дата¶
Текущая дата соответствует значению системного времени.
ShowCurrentDate
: Boolean¶Отображение линии для текущей даты.
Значение по умолчанию: False.
- True — отображать;
- False — не отображать.
Return type: Boolean
1.8.5.7.6. Раскраска дней¶
1.8.5.7.6.1. Выходные¶
-
RestDays
: Set of integer¶ Множество порядковых номеров дней недели от 1 до 7, которые являются выходными.
Значение по умолчанию: [].
Return type: Set_of_integer <pascal> Selection.Gantt.RestDays := [6, 7]; // Выходные дни — суббота и воскресенье </pascal>
-
HighLightRestdays
: Boolean¶ Выделять выходные дни цветом.
Значение по умолчанию: True.
- True — выделять;
- False — не выделять.
Return type: Boolean
-
1.8.5.7.6.2. Рабочие¶
Рабочие дни перекрывают выходные дни.
-
WorkDays
: Array¶ Массив рабочих дней в виде конкретных дат.
Return type: Array <pascal> Selection.Gantt.WorkDays := [StrToDate('22.04.2009'), StrToDate('21.04.2009')]; </pascal>
-
1.8.5.7.6.3. Праздничные¶
Праздничные дни перекрывают выходные и рабочие дни.
1.8.5.7.7. Выделенные элементы¶
-
SelectedItems
: TbtkGanttItem¶ Коллекция выделенных элементов диаграммы. Выделение нескольких элементов проиcходит с помощью левой кнопки мыши при зажатой клавише Ctrl.
Return type: TbtkGanttItem
-
Count
: Integer¶ Количество выделенных элементов в коллекции
SelectedItems
.Return type: Integer
-
FocusedItem
: TbtkGanttItem¶ Ссылка на последний сфокусированный элемент. Если элемента нет, возвращает nil.
Return type: TbtkGanttItem
-
1.8.5.7.8. Временная шкала¶
-
ScalesSchema
: string¶ Схема шкал, используемая таймлайном.
Присвоение подразумевает, что из схемы будет также взято количество уровней и локаль.
Attention
На данный момент чтение и запись свойства не биективны.
- Запись: можно присвоить YAML-документ, состоящий из двух схем: схемы шкал и схемы форматов.
- Чтение: возвращается результирующая схема - схема шкал, размноженная с использованием схемы форматов.
New in version Global: 5.7
-
Timeline
: TbtkTimeline¶ Объект для доступа к настройкам таймлайна.
Return type: TbtkTimeline New in version Global: 5.7
-
ScaleInfoToYaml
(Info: TbtkScaleScriptObject): string¶ Преобразовать схему шкал в текст в формате Yaml.
Parameters: Info (TbtkScaleScriptObject) – схема шкал. New in version Global: 5.7
-
YamlToScaleInfo
(Yaml: string): TbtkScaleScriptObject¶ Преобразовать текст в формате Yaml в схему шкал.
Parameters: Yaml (String) – текст в формате Yaml, содержащий схему. New in version Global: 5.7
See also
-
1.8.5.7.9. Вызов диалогов¶
-
SelectScaleSchema
(out ScaleSchema: TbtkScaleScriptObject): boolean¶ Вывести диалог настройки шкалы, позволяющий настроить количество уровней шкалы, единицы измерения времени, интервалы и форматы каждого уровня из схемы форматов таймлайна.
Parameters: ScaleSchema (TbtkScaleScriptObject) – out параметр, в который возвращается шкала Return type: Boolean Returns: - True
- Если диалог завершился успешно (была нажата кнопка OK)
- False
- В случае отмены диалога
<PASCAL> var scale: TbtkScaleScriptObject; begin res := Selection.Gantt.SelectScaleSchema(scale); if Res then Selection.Gantt.TimeLine.ActiveScale := scale; end; </PASCAL>
-
SelectScaleSchema
(out ScaleSchema: string): boolean Вывести диалог настройки шкалы, позволяющий настроить количество уровней шкалы, единицы измерения времени, интервалы и форматы каждого уровня из схемы форматов таймлайна.
Parameters: ScaleSchema (string) – out параметр, в который возвращается шкала в формате YAML. Return type: Boolean Returns: - True
- Если диалог завершился успешно (была нажата кнопка OK)
- False
- В случае отмены диалога
<PASCAL> begin scale := ''; res := Selection.Gantt.SelectScaleSchema(scale); if Res then Selection.Gantt.TimeLine.ActiveScaleAsYaml := scale; end; </PASCAL>
-
SelectScaleSchema
(out ScaleSchema: string; ScalesSchema: string): boolean Вывести диалог настройки шкалы, позволяющий настроить количество уровней шкалы, единицы измерения времени, интервалы и форматы каждого уровня из схемы форматов, переданной на вход в качестве параметра ScalesSchema.
Parameters: - ScaleSchema (string) – out параметр, в который возвращается шкала в формате YAML.
- ScalesSchema (string) – Схема шкал диаграммы Гантта в формате YAML
Return type: Boolean
Returns: - True
Если диалог завершился успешно (была нажата кнопка OK)
- False
В случае отмены диалога
<PASCAL> uses Classes var schema: TStringList; begin scale := ''; schema := TStringList.Create; try schema.LoadFromFile({имя файла со схемой}); res := Selection.Gantt.SelectScaleSchema(scale, schema.Text); if Res then Selection.Gantt.TimeLine.ActiveScaleAsYAML := ; finally schema.free; end; end; </PASCAL>
-
SelectScaleSchema
(out ScaleSchema: TbtkScaleScriptObject; ScalesSchema: string): boolean Вывести диалог настройки шкалы, позволяющий настроить количество уровней шкалы, единицы измерения времени, интервалы и форматы каждого уровня из схемы форматов, переданной на вход в качестве параметра ScalesSchema.
Parameters: - ScaleSchema (TbtkScaleScriptObject) – out параметр, в который возвращается шкала
- ScalesSchema (string) – Схема шкал диаграммы Гантта в формате YAML
Return type: Boolean
Returns: - True
Если диалог завершился успешно (была нажата кнопка OK)
- False
В случае отмены диалога
<PASCAL> uses Classes var schema: TStringList; scale: TbtkScaleScriptObject; begin schema := TStringList.Create; try schema.LoadFromFile({имя файла со схемой}); res := Selection.Gantt.SelectScaleSchema(scale, schema.Text); if Res then Selection.Gantt.TimeLine.ActiveScale := scale; finally schema.free; end; end; </PASCAL>
-
SelectScaleZoom
(out Zoom: TbtkTimeUnitInfoScriptObject): boolean¶ Вывести диалог задания визуального интервала.
Parameters: Zoom (TbtkTimeUnitInfoScriptObject) – out параметр, в который возвращается выбранный описатель единицы измерения времени. Return type: Boolean Returns: - True
- Если диалог завершился успешно (была нажата кнопка OK)
- False
- В случае отмены диалога
<PASCAL> var z: TbtkTimeunitInfoScriptObject; begin res := Selection.Gantt.SelectScaleZoom(z); if res then Selection.Gantt.TimeLine.SetZoom(z) end; </PASCAL>
-
SelectScaleZoom
(out Zoom: TbtkTimeUnitInfoScriptObject; DialogElements: array of array of Variant): boolean Вывести диалог задания визуального интервала.
Parameters: - Zoom (TbtkTimeUnitInfoScriptObject) – out параметр, в который возвращается выбранный описатель единицы измерения времени.
- DialogElements (array of array of Variant) – массив элементов диалога. Представлен в виде массива массивов по 3 элемента, в которых хранятся отображаемое имя элемента, Единица измерения времени и временной интервал соответственно.
Return type: Boolean
Returns: - True
Если диалог завершился успешно (была нажата кнопка OK)
- False
В случае отмены диалога
<PASCAL> var zoom: TbtkTimeunitInfoScriptObject; begin dialogItems := [['1 day', tuDay, 1], ['1 week', tuWeek, 1], ['1 month', tuMonth, 1], ['1 halfYear', tuHalfYear, 1]]; res := Selection.Gantt.SelectScaleZoom(zoom, dialogItems); if res then Selection.Gantt.TimeLine.SetZoom(zoom) end; </PASCAL>
-
1.8.5.7.10. Отмена операций¶
-
AcceptChanges
: Boolean¶ Отменить выполняемое действие.
Анализируется на выходе из операций
OnItemChanged
,OnLinkCreate
. Если False, действие отменяется.Значение по умолчанию: True.
Возможные значения:
- False — отменить выполнение действия;
- True — не отменять.
Return type: Boolean
-
1.8.5.7.11. Отчёт FastReport¶
-
CreateReportEx
(ReportName: String; ReportVersionDate: TDateTime; Action: TReportViewMode; ShowWizard: Boolean; OpSelectionName: String; StyleFlag: TFormCreationFlags; ParamNames: Array; ParamValues: Array)¶ Создать отчет FastReport4 на основе шаблона “Diagram Report(*.dgr)”.
Parameters: - ReportName (String) – системное имя отчёта. Отчет должен быть формата “Diagram Report(*.dgr)”.
- ReportVersionDate (TDateTime) – дата, по которой будет найдена актуальная версия отчёта (по умолчанию системная дата).
- Action (TReportViewMode) – действие после создания отчёта.
- ShowWizard (Boolean) – отображение мастера настройки отчётов (если указана главная выборка мастера).
- OpSelectionName (String) – системное имя выборки, операции которой будут отображаться в главном меню окна при модальном просмотре построенного отчёта (по умолчанию подставляется выборка со стандартным набором команд — “Save as” и “Print”).
- StyleFlag (TFormCreationFlags) – модальность окна просмотра отчёта. Значение fcfMDI работает только для отчетов на основе FastReport 4й версии.
- ParamNames (Array) –
массив имен параметров отчета.
Обязательные параметры:
- StartDate, StopDate — диапазон печати диаграммы Гантта, с StartDate по StopDate.
Дополнительные параметры:
- ReadOnlyPreview со значением 1 запрещает редактирование построенного отчета из режима предпросмотра.
- ParamValues (Array) – массив значений параметров отчета, соответствующих AParamNames.
-
1.8.6. Timeline¶
1.8.6.1. TbtkTimeUnit¶
1.8.6.2. TbtkTimeUnitInfoScriptObject¶
-
class
TbtkTimeUnitInfoScriptObject
¶ Описатель единицы измерения времени.
-
TimeUnit
: TbtkTimeUnit¶
-
Interval
: Cardinal¶ Интервал, с которым выводятся отметки.
-
1.8.6.3. TbtkScaleLevel¶
1.8.6.4. TbtkScaleLevelCount¶
1.8.6.5. TbtkScaleLevelInfoScriptObject¶
1.8.6.6. TbtkScaleScriptObject¶
-
class
TbtkScaleScriptObject
¶ -
-
Levels[ALevel: TbtkScaleLevel]: TbtkScaleLevelInfoScriptObject
Возвращает указанный уровень шкалы
Parameters: Level (TbtkScaleLevel) – Уровень шкалы Return type: TbtkScaleLevelInfoScriptObject
-
BeginUpdate
()¶ Если текущая шкала получена из таймлайна, метод запрещает применение настроек шкалы к таймлайну.
Attention
После выполнения изменений шкалы обязательно вызывайте метод
EndUpdate()
;<PASCAL> timeline := Selection.Gantt.TimeLine; timeline.ActiveScale.BeginUpdate; timeline.ActiveScale.Levels[slMiddle].TimeUnit := tuYear; timeline.ActiveScale.Levels[slMiddle].Format := 'yyyy "year"'; timeLine.ActiveScale.Levels[slMiddle].Interval := 5; timeline.ActiveScale.EndUpdate; </PASCAL>
-
EndUpdate
()¶ Разрешает применение настроек шкалы к таймлайну. Применяет к таймлайну все изменеиня шкалы, сделанные с момента вызова
BeginUpdate()
.
-
1.8.6.7. TbtkTimeline¶
-
class
TbtkTimeline
¶ -
-
LevelsCount
: TbtkScaleLevelCount¶ Набор видимых уровней шкалы.
Return type: TbtkScaleLevelCount
-
ActiveScale
: TbtkScaleScriptObject¶ Текущая Шкала диаграммы Гантта
Return type: TbtkScaleScriptObject
-
ActiveScaleAsYAML
: string¶ Текущая Шкала диаграммы Гантта в формате Yaml
Return type: string See also
Свойство дублирует поведение параметра
Timeline.Scale
.
-
SetZoom
(Zoom: TbtkTimeUnitInfoScriptObject)¶ Устанавливает отображаемый интервал диаграмы Гантта.
Parameters: Zoom (TbtkTimeUnitInfoScriptObject) – Временной интервал Логика установки отображаемого интервала такая же, как и у метода
CalcDateIntervalByActiveScale()
:- Задать
StopDate
(StartDate
не трогаем) - Если
StopDate
уперся вMaxStopDate
, двигаемStartDate
- Задать
-
LevelsByCount
(LevelsCount: TbtkScaleLevelCount): array of TbtkScaleLevel¶ Возвращает массив уровней, которые соответствуют данному количеству уровней
Parameters: LevelsCount (TbtkScaleLevelCount) – Количество уровней Return type: array of TbtkScaleLevel
-