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