Gantt#

Описание классов для работы с диаграммой Гантта.

TbtkGanttItem#

class TbtkGanttItem#

Визуальный Элемент диаграммы Гантта.

ID Integer#

Идентификатор. Должен быть уникальным.

Return type

Integer

StartDate TDateTime#

Начало интервала элемента.

Return type

TDateTime

StopDate TDateTime#

Конец интервала элемента.

Return type

TDateTime

Style TbtkGanttItemStyle#

Стиль.

Return type

TbtkGanttItemStyle

Color TColor#

Цвет.

Return type

TColor

FillStyle TBrushStyle#

Шаблон заливки.

Применяется к элементам стиля: TbtkGanttItemStyle.gisSquare, TbtkGanttItemStyle.gisCircle, TbtkGanttItemStyle.gisRectangle, TbtkGanttItemStyle.gisDiamond.

Для заливки используется значение свойства цвета TbtkGanttItem.Color.

Значение по умолчанию: TBrushStyle.bsSolid.

Return type

TBrushStyle

Caption String#

Отображаемое наименование.

Return type

String

BorderStyle TPenStyle#

Стиль пера границ.

Return type

TPenStyle

BorderColor TColor#

Цвет границ.

Return type

TColor

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

TbtkGanttItemStyle#

class TbtkGanttItemStyle#

Перечисление. Стиль отображения элемента диаграммы Гантта.

gisSquare#

Прямоугольник с границами и заливкой заданного цвета.

gisPipe#

Прямоугольник с заливкой заданного цвета с градиентом.

gisLine#

Линия.

gisLineWEnd#

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

gisSpan#

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

gisCircle#

Круг. Отображается на StartDate.

gisRectangle#

Квадрат. Отображается на StartDate.

gisDiamond#

Ромб. Отображается на StartDate.

TbtkGanttLinkDirection#

class TbtkGanttLinkDirection#

Перечисление. Способ задания связи между элементами.

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

Вторая часть константы указывает то же самое для второго элемента.

asBeginBegin#

Соединение начала первого элемента с началом второго.

asBeginEnd#

Соединение начала первого элемента с концом второго.

asEndBegin#

Соединение конца первого элемента с началом второго.

asEndEnd#

Соединение конца первого элемента с концом второго.

TbtkVertLineDateDef#

class TbtkVertLineDateDef#

Вертикальная линия диаграммы Гантта.

Date String#

Дата.

Return type

String

Color TColor#

Цвет.

Return type

TColor

Width Integer#

Толщина в пикселях.

Return type

Integer

Style TPenStyle#

Стиль пера.

Return type

TPenStyle

TbtkGanttRegionDef#

class TbtkGanttRegionDef#

Регион диаграммы Гантта.

FromDate String#

Дата начала.

Return type

String

ToDate String#

Дата конца.

Return type

String

Color TColor#

Цвет.

Return type

TColor

Style TBrushStyle#

Шаблон заливки.

Return type

TBrushStyle

TbtkGantt#

class TbtkGantt#

Скриптовый класс для работы с фреймом диаграммы Гантта TbtkLookUpGanttTreeTabFrame.

Настройка отображения связей между элементами.

Return type

Boolean

Returns

True

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

False

Отображаются все связи между элементами

Интервалы#

UpdateScale()#

Deprecated since version AS: 1.21 rc 9

Note

Метод устарел. Оставлен для совместимости с Global 1. В AS свойства будут применены по завершении прикладной операции, независимо от наличия или отсутствия вызова данного метода.

Обновить диаграмму с учетом установленных 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

UpdateScale()

StopDate TDateTime#

Дата окончания отображаемого интервала диаграммы.

При установке даты больше, чем MaxStopDate, MaxStopDate также увеличивается.

Return type

TDateTime

See also

UpdateScale()

MinStartDate TDateTime#

Дата начала фактического интервала диаграммы.

При установке даты больше, чем StartDate, StartDate также увеличивается.

Return type

TDateTime

See also

UpdateScale()

MaxStopDate TDateTime#

Дата окончания фактического интервала диаграммы.

При установке даты меньше, чем StopDate, StopDate также уменьшается.

Return type

TDateTime

See also

UpdateScale()

CalcDateInterval()#

Подобрать отображаемый интервал таким образом, чтобы все элементы отображались на экране.

CalcDateIntervalByActiveScale()#

Подобрать отображаемый интервал (масштаб) по активной шкале.

Алгоритм применения масштаба к шкале:
  1. Задать StopDate (StartDate не трогаем)

  2. Если StopDate упёрся в MaxStopDate, двигаем StartDate

Вертикальные линии#

VLines TbtkVertLineDateDef#

Коллекция вертикальных линий.

Return type

TbtkVertLineDateDef

VLinesCount Integer#

Число вертикальных линий.

Return type

Integer

AddVLine(Date: TDateTime; Color: Integer; Style: TPenStyle; Width: Integer) Integer#

Добавить вертикальную линию.

Возвращает индекс добавленной линии в коллекции.

Parameters
  • Date (TDateTime) – временная метка;

  • Color (TColor) – цвет;

  • Style (TPenStyle) – стиль пера;

  • Width (Integer) – толщина в пикселях.

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()#

Очистить коллекцию вертикальных линий.

Регионы#

Пример работы с регионами#
<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

RegionCount Integer#

Количество регионов в коллекции.

Return type

Integer

AddRegion(FromDate, ToDate: String; Color: Integer; Style: TBrushStyle) Integer#

Добавить регион на график Гантта.

Возвращает индекс региона в коллекции.

Parameters
  • FromDate (String) – дата начала;

  • ToDate (String) – дата конца;

  • Color (TColor) – цвет;

  • Style (TBrushStyle) – шаблон заливки.

Return type

Integer

DeleteRegion(Index: Integer)#

Удалить регион из коллекции регионов по индексу.

Parameters

Index (Integer) – индекс региона в коллекции.

ClearRegion()#

Очистить коллекцию регионов.

Выделенная дата#

Выделение даты осуществляется двойным щелчком.

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

Текущая дата#

Текущая дата соответствует значению системного времени.

ShowCurrentDate Boolean#

Отображение линии для текущей даты.

Значение по умолчанию: False.

  • True — отображать;

  • False — не отображать.

Return type

Boolean

CurrentDatePenStyle TPenStyle#

Стиль пера линии текущей даты.

Return type

TPenStyle

CurrentDateColor TColor#

Цвет линии текущей даты.

Return type

TColor

Раскраска дней#

Выходные#

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

Рабочие#

Рабочие дни перекрывают выходные дни.

WorkDays Array#

Массив рабочих дней в виде конкретных дат.

Return type

Array

Пример использования#
<pascal>
  Selection.Gantt.WorkDays := [StrToDate('22.04.2009'), StrToDate('21.04.2009')];
</pascal>

Праздничные#

Праздничные дни перекрывают выходные и рабочие дни.

HoliDays Array#

Массив праздничных дней в виде конкретных дат.

Return type

Array

Пример использования#
<pascal>
  Selection.Gantt.HoliDays := [StrToDate('24.04.2009'), StrToDate('25.04.2009')];
</pascal>
HighLightHolidays Boolean#

Выделять цветом праздничные дни.

Return type

Boolean

Выделенные элементы#

SelectedItems TbtkGanttItem#

Коллекция выделенных элементов диаграммы. Выделение нескольких элементов проиcходит с помощью левой кнопки мыши при зажатой клавише Ctrl.

Return type

TbtkGanttItem

Count Integer#

Количество выделенных элементов в коллекции SelectedItems.

Return type

Integer

FocusedItem TbtkGanttItem#

Ссылка на последний сфокусированный элемент. Если элемента нет, возвращает nil.

Return type

TbtkGanttItem

Временная шкала#

ScalesSchema string#

Схема шкал, используемая таймлайном.

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

Attention

На данный момент чтение и запись свойства не биективны.

Timeline TbtkTimeline#

Объект для доступа к настройкам таймлайна.

Return type

TbtkTimeline

ScaleInfoToYaml(Info: TbtkScaleScriptObject) string#

Преобразовать схему шкал в текст в формате Yaml.

Parameters

Info (TbtkScaleScriptObject) – схема шкал.

YamlToScaleInfo(Yaml: string) TbtkScaleScriptObject#

Преобразовать текст в формате Yaml в схему шкал.

Parameters

Yaml (String) – текст в формате Yaml, содержащий схему.

Вызов диалогов#

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
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
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>

Отмена операций#

AcceptChanges Boolean#

Отменить выполняемое действие.

Анализируется на выходе из операций OnItemChanged, OnLinkCreate. Если False, действие отменяется.

Значение по умолчанию: True.

Возможные значения:

  • False — отменить выполнение действия;

  • True — не отменять.

Return type

Boolean

Отчёт 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.

Timeline#

TbtkTimeUnit#

class TbtkTimeUnit#

Перечисление. Единица измерения времени.

tuMilliSecond#

Миллисекунда.

tuSecond#

Секунда.

tuMinute#

Минута.

tuHour#

Час.

tuDay#

День.

tuWeek#

Неделя.

tuDecade#

Декада.

tuMonth#

Месяц.

tuQuarter#

Квартал.

tuHalfYear#

Полугодие.

tuYear#

Год.

tuEra#

Эра.

TbtkTimeUnitInfoScriptObject#

class TbtkTimeUnitInfoScriptObject#

Описатель единицы измерения времени.

TimeUnit TbtkTimeUnit#

Единица измерения времени.

Interval Cardinal#

Интервал, с которым выводятся отметки.

TbtkScaleLevel#

class TbtkScaleLevel#

Уровень шкалы.

slBottom#

Нижняя.

slMiddle#

Средняя.

slTop#

Верхняя.

TbtkScaleLevelCount#

class TbtkScaleLevelCount#

Перечисление. Набор видимых уровней шкалы.

slcMiddle#

Средний.

slcMiddleBottom#

Средний, нижний.

slcMiddleBottomTop#

Средний, нижний, верхний.

TbtkScaleLevelInfoScriptObject#

class TbtkScaleLevelInfoScriptObject#

Информация об уровне шкалы.

Level TbtkScaleLevel#

Уровень шкалы.

TimeUnit TbtkTimeUnit#

Единица измерения времени.

Interval Cardinal#

Интервал, с которым выводятся отметки.

Format string#

Формат подписей отметок шкалы.

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().

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():

  1. Задать StopDate (StartDate не трогаем)

  2. Если StopDate уперся в MaxStopDate, двигаем StartDate

LevelsByCount(LevelsCount: TbtkScaleLevelCount) array of TbtkScaleLevel#

Возвращает массив уровней, которые соответствуют данному количеству уровней

Parameters

LevelsCount (TbtkScaleLevelCount) – Количество уровней

Return type

array of TbtkScaleLevel