1.8.15. TbtkScriptControllerObject

class TbtkScriptControllerObject

Класс реализующий интерфейс взаимодействия с выборой посредством GUI контрола.

ShowEditor()

Метод позволяет отобразить редактор в списке или дереве в текущей ячейке.

Repaint()

Функция выполняет перерисовку GUI за который отвечает контролер. Например, при изменении свойства Mandatory у атрибута, необходимо выполнить Repaint, чтобы изменения отобразились на экране.

Text: TbtkScriptTextViewObject

Свойство возвращает объект, инкапсулирующий API для работы с выделением текста и управления курсором в редакторах.

Поддержка данных API реализована в следующих редакторах: - Script editor - HTML editor - Text View

Return type:TbtkScriptTextViewObject

New in version BtkRuntime: 5.4.0.3582 ms 1

Пример использования
<pascal>
if Assigned(Selection.Controller.Text) then
  Selection.Controller.Text.TopLine := 50;
</pascal>
SetFocus()

Перевод фокуса ввода на оконный элемент выборки.

ClientFilter: TbtkScriptClientFilterObject

Ссылка на объект TbtkScriptClientFilterObject, через который осуществляется управление клиентским фильтром

Return type:TbtkScriptClientFilterObject

1.8.15.1. Drag & Drop

DragObject: Interface

Свойство возращает источник, который инициировал перетаскивание, тип источника TbtkScriptSelectionObject. Перед использованием Controller.DragObject следует проверить его с использованием функции Assigned. Использовать данное свойство можно из операций-тригеров onDragOver и onDragDrop. onDragOver вызывается при перемещении указателя в в состоянии «перетаскивание». onDragDrop – вызывается в момент «бросания» перетаскиваемого объекта.

Return type:Interface
Пример использования
// Для возможности перетаскивания объектов между списками и деревьями. В
// каждую выборку участвующие в перетаскивание записей следует добавить
// опрерации: onCanStartDrag, onDragOver, OnDragDrop.

// Пример операции onCanStartDrag:
<pascal>
  Selection.Controller.BeginDrag(false, 8);
</pascal>

// onDragOver:
<pascal>
  SelObj := Selection.Controller.DragObject;
  if Assigned(SelObj) and (SelObj.representation <> Selection.Representation) then
    Selection.Controller.AcceptDragObject := true
  else
    Selection.Controller.AcceptDragObject := false;
</pascal>

// onDragDrop:
<pascal>
  sel := selection.Controller.DragObject;
  ShowMessage(Sel.EntityName + '.' + Sel.Representation);
</pascal>
DragRecord: TbtkScriptRecordObject

Ссылка на обёртку записи списка или дерева, либо элемента диаграммы, над которой находится курсор мыши. Свойство следует использовать в операциях–триггерах onDragDrop и onDragOver.

Note

Для диаграммы возвращается обёртка на запись выборки SEL_BTD_OBJECT.OBJECTSOFDIAGRAM. При этом доступно только поле с именем id.

Для дерева и списка все поля возвращаемой записи соответствуют полям записи их выборки.

New in version 5.4.0.3745: Возможность перетаскивания на диаграмму.

Return type:TbtkScriptRecordObject
AcceptDragObject: Boolean

Свойство определяет возможноть «принятия» перетаскиваемого объекта объектом, над которым находится указатель мыши. Использовать данное свойство следует использовать в операции – триггере onDragOver, которая вызывается автоматически при перемещении указателя в режиме «перетаскивание».

Return type:Boolean
Пример использования
// Для возможности перетаскивания объектов между списками и деревьями. В
// каждую выборку участвующие в перетаскивание записей следует добавить
// опрерации: onCanStartDrag, onDragOver, OnDragDrop.

// Пример операции onCanStartDrag:
<pascal>
  Selection.Controller.BeginDrag(false, 8);
</pascal>

// onDragOver:
<pascal>
  SelObj := Selection.Controller.DragObject;
  if Assigned(SelObj) and (SelObj.representation <> Selection.Representation) then
    Selection.Controller.AcceptDragObject := true
  else
    Selection.Controller.AcceptDragObject := false;
</pascal>

// onDragDrop:
<pascal>
  sel := selection.Controller.DragObject;
  ShowMessage(Sel.EntityName + '.' + Sel.Representation);
</pascal>
SetDropAsChild(Value: Boolean)

Метод можно использовать в операции OnDragDrop, в случае если используется режим автоматического переноса записей (DragAndDropRows.AutoDropTo) то с помощью этого метода можно определить как перенести запись, как потомка относительно записи на которую перетаскиваем, или на тот же уровень. Метод действует только на один перенос, после чего значение DropAsChild сбрасывается (вызов надо делать перед каждым бросанием). По умолчанию запаись перемещается в список потомков.

Parameters:Value (Boolean) – Новое значение для параметра DropAsChild.
BeginDrag(Immediate: Boolean; Threshold: Integer)

Процедура запускает перетаскивание объекта на котором удерживается нажатый указатель мыши. Перетаскивать можно записи со списков и деревьев на списки и деревья. Данную процедуру следуют использовать из операции триггера onCanDragObject, если свойство фрейма DragAndDropRows.DragMode равно dmManual Операция onCanStartDrag вызывается автоматически, если режим перетаскивания установлен как ручной.

Parameters:
  • Immediate (Boolean) – Если данный параметр установлен в True, то режим перетаскивания будет включен не замедлительно, сразу по нажатию на кнопку мыши, иначе режим перетаскивания включится только после смещение указателя на кол-во пикселей указанное в параметре Threshold.
  • Threshold (Integer) – Количество пикселей, на которое необходимо сдвинуть, чтобы началось перетаскивание объекта.

1.8.15.2. Выделение (Depracated)

SelectedText: String

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

Return type:String

Deprecated since version BtkRuntime: 5.4.0.3582 ms 1

SelectionLength: Integer

Длина выделенного текста в символах в текущем сфокусированном одно-строчном либо много-строчном графическом элементе ввода кроме HTML редактора.

Return type:Integer

Deprecated since version BtkRuntime: 5.4.0.3582 ms 1

SelectionStart: Integer

Порядковый номер первого символа выделенного текста в текущем сфокусированном одно-строчном либо много-строчном графическом элементе ввода кроме HTML редактора. Нумерация идет с 1.

Return type:Integer

Deprecated since version BtkRuntime: 5.4.0.3582 ms 1

1.8.15.3. Итоги

FieldAddSummaryT(SummaryType: TSummaryType; FieldName: String)

Метод добавляет итоги для колонки транспонированного списка.

Parameters:
  • SummaryType (TSummaryType) – Тип итогов.
  • FieldName (String) – Имя атрибута выборки.
FieldExAddGroupSummaryT(SummaryType: TSummaryType; FieldName: String)

Метод добавляет итоги для колонок транспонированного списка из области группировки.

Parameters:
  • SummaryType (TSummaryType) – Тип итогов.
  • FieldName (String) – Имя атрибута выборки.
ClearSummary()

Скрывает итоги у всех столбцов

ClearGroupSummary()

Скрывает итоги у всех столбцов группировки

FieldAddSummary(SummaryType: TSummaryType; FieldName: String)

Метод добавляет итоги для колонки.

Parameters:
  • SummaryType (TSummaryType) – Тип итогов.
  • FieldName (String) – Имя атрибута выборки.
FieldAddGroupSummary(SummaryType: TSummaryType; FieldName: String)

Метод добавляет итоги для колонок из области группировки.

Parameters:
  • SummaryType (TSummaryType) – AFieldName
  • FieldName (String) – Имя атрибута выборки.
GetSummary(AttrName: String; SummaryType: TSummaryType): Integer

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

Parameters:
  • AttrName (String) – Имя атрибута.
  • SummaryType (TSummaryType) – Тип итогов.
Return type:

Integer

FooterVisible: Boolean

Управляет видимостью области итогов

Return type:Boolean
Пример использования
<pascal>
  c := selection.controller;
  if c.GroupFootersVisible = true then
    c.GroupFootersVisible := false
  else
  begin
    c.GroupFootersVisible := true;
    c := selection.controller;
    c.FieldAddSummary(ctSummarySum,'nRegnumber');
    c.FieldAddSummary(ctSummaryCount,'nRegdata');
    c.FieldAddGroupSummary(ctSummaryCount,'nRegnumber');
    c.FieldAddGroupSummary(ctSummarySum,'nRegdata');
  end;
</pascal>
GroupFootersVisible: Integer

Управляет видимостью области итогов для группирвки.

Return type:Integer
Пример использования
<pascal>
  c := selection.controller;
  if c.GroupFootersVisible = true then
    c.GroupFootersVisible := false
  else
  begin
    c.GroupFootersVisible := true;
    c := selection.controller;
    c.FieldAddSummary(ctSummarySum,'nRegnumber');
    c.FieldAddSummary(ctSummaryCount,'nRegdata');
    c.FieldAddGroupSummary(ctSummaryCount,'nRegnumber');
    c.FieldAddGroupSummary(ctSummarySum,'nRegdata');
  end;
</pascal>

Deprecated since version Global_5.9.0_ms_16.

GroupSummaryVisible: Boolean

Управляет видимостью промежуточных итогов.

Return type:boolean

New in version Global_5.9.0_ms_16.

GroupFootersMode: TbtkGroupFootersMode

Управляет отображением футера группировки.

Return type:TbtkGroupFootersMode

New in version Global_5.9.0_ms_16.

See also

Свойство фрейма GroupFootersMode

GroupSummaryPosition: TbtkGroupSummaryPosition

Управляет положением промежуточных итогов.

Return type:TbtkGroupSummaryPosition

New in version Global_5.9.0_ms_16.

See also

Свойство фрейма GroupSummaryPosition

1.8.15.4. Группировка

GroupsFullCollaps()

Метод схлопывает все узлы группировок, а также выключает свойство GroupsFullExpand.

See also

CollapseGroups()

Метод схлопывает все узлы группировок.

New in version Global_5.11.0_ms2.

GroupsAddField(FieldName: String)

Метод добавляет атрибут с именем FieldName в область группировки. (Атрибут становится не видимым в списке)

Parameters:FieldName (String) – имя атрибута выборки
GroupsRemoveField(FieldName: String)

Метод удаляет атрибут с именем FieldName из область группировки. (Атрибут становится видимым в списке)

Parameters:FieldName (String) – имя атрибута выборки
GroupsCount(): Integer

Метод возвращает количество атрибутов в области группировки

Return type:Integer
GroupsGetIndex(FieldName: String): Integer

Метод возвращает порядковый номер атрибута в области группировки. Если атрибут не в обрасти группировки, метод вернёт -1

Parameters:FieldName (String) – имя атрибута выборки
Return type:Integer
GroupsFullExpand()

Метод раскрывает все узлы группировок, а также включает свойство GroupsFullExpand.

See also

ExpandGroups()

Метод разворачивает все узлы группировок.

New in version Global_5.11.0_ms2.

GroupsClear()

Метод удаляет все атрибуты из области группировки.

GroupsVisible: Boolean

Свойство управляет видимостью области группировки.

Return type:Boolean
Пример использования
<pascal>
  If Assigned(Selection.Controller) then
  begin
    Selection.Controller.GroupsVisible := True;
    Selection.Controller.GroupsAddField('sCaption');
    Selection.Controller.GroupsAddField('sSystemName');
    Selection.Controller.GroupsFullExpand;
  end;

  c := selection.controller;
  c.FieldAddSummary(ctSummarySum,'nRegnumber');
  c.FieldAddSummary(ctSummaryCount,'nRegdata');
  c.FieldAddGroupSummary(ctSummaryCount,'nRegnumber');
  c.FieldAddGroupSummary(ctSummarySum,'nRegdata');
</pascal>

1.8.15.5. Списочный вид

SetDecimalNumbers(FieldName: String; DigCount: Integer)

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

Parameters:
  • FieldName (String) – Имя атрибута выборки.
  • DigCount (Integer) – Количество знаков после запятой.
SetDecimalNumbersToAll(DigCount: Integer)

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

Parameters:DigCount (Integer) – Количество знаков после запятой.
FixColumn(FieldName: String; Position: Boolean)

Метод, позволяющий зафиксировать колонку в гриде из скрипта

Parameters:
  • FieldName (String) – имя атрибута
  • Position (Boolean) –

    позиция фиксации

    True
    влево
    False
    вправо
ColumnAutoSize: Boolean

Управляет автоматическим размещением колонок на всю ширину грида, или дерева.

Return type:Boolean
ApplyBestColumnSize()

Функциональность метода идентична пункту выпадающего меню “Подобрать ширину колонкам”. Метод распространяется на дерево, Grid и TransposeGrid.

Hints: TbtkScriptHintController

Котроллер управления всплывающими подсказками.

Return type:TbtkScriptHintController

1.8.15.6. Команды

QueryCommandEnabled(CmdId: String): Boolean

Метод проверяет доступна ли GUI-команда в данный момент.

Parameters:CmdId (String) – Наименование команды. Например: ‘Copy’, ‘Paste’, ‘SelectAll’ и т.д.
Return type:Boolean

Deprecated since version BtkRuntime: 5.3.0.3507 ms 6

ExecCommand(CmdId: String; ShowInUI: Boolean; Value: Variant=null): Boolean

Выполняет команду доступную пользователю через GUI контроллера данной выборки.

Команды - это ядровой функционал GUI-контроллера выборки, как правило, операции вынесенные на встроенные во врейм панели управления.

Parameters:
  • CmdId (String) – Наименование команды. Например: ‘Copy’, ‘Paste’, ‘SelectAll’ и т.д.
  • ShowInUI (Boolean) – Будет ли использоваться во время выполнения команды взоимодействие с пользователем. Параметр может использоваться некоторыми командами.
  • Value (Variant) –

    Значение принимаемое некоторыми командами, как правло они ассоциированными со значением, а не действием.

    Например: ExecCommand('FontName', False, 'Times New Roman')

Return type:

Boolean

Deprecated since version BtkRuntime: 5.3.0.3507 ms 6

QueryCommandSupported(CmdId: String): Boolean

Метод проверяет существует ли указанная GUI-команда в данном интерфейсе.

Parameters:CmdId (String) – Наименование команды. Например: ‘Copy’, ‘Paste’, ‘SelectAll’ и т.д.
Return type:Boolean

Deprecated since version BtkRuntime: 5.3.0.3507 ms 6

QueryCommandValue(CmdId: String): Variant

Метод возвращает значение ассоциированное с командой, если команда поддерживает значение. В противном случае, если не поддерживает (команда только выполняемая), - возвращается значение False.

Например: QueryCommandValue('FontName')

Parameters:CmdId (String) – Наименование команды. Например: ‘Copy’, ‘Paste’, ‘SelectAll’ и т.д.
Return type:Variant

Deprecated since version BtkRuntime: 5.3.0.3507 ms 6

1.8.15.7. Навигация по контролу

VisibleElementCount(): Integer

Количество видимых элементов (для списочных фреймов - строк) контрола на экране с учетом сортировок и фильтрации.

Return type:Integer

New in version Global_5.5.0.3887_ms6.

IsEmpty(): Boolean

Проверяет отсутствие в контроле элементов (для списочных фреймов - строк) для вывода на экран.

Return type:Boolean

Note

Метод вернет True, если все записи будут отфильтрованы клиентским автофильтром.

New in version Global_5.5.0.3887_ms6.

IsLast(): Boolean

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

Return type:Boolean

New in version Global_5.5.0.3887_ms6.

Last()

Перейти к последнему элементу. Для списочных контролов к последней строке в порядке вывода на экран с учетом сортировок и фильтрации.

New in version Global_5.5.0.3887_ms6.

First()

Перейти к первому элементу. Для списочных контролов к первой строке в порядке вывода на экран с учетом сортировок и фильтрации.

New in version Global_5.5.0.3887_ms6.

Prior()

Перейти к предыдущему элементу. Для списочных контролов к предущей строке в порядке вывода на экран с учетом сортировок и фильтрации.

New in version Global_5.5.0.3887_ms6.

Next()

Перейти к следующему элементу. Для списочных контролов к следующей строке в порядке вывода на экран с учетом сортировок и фильтрации.

New in version Global_5.5.0.3887_ms6.

1.8.15.8. Выделение записей

GetSelectedRecords(): Variant

Возвращает выделенные записи.

Tip

В паре с SetSelectedRecords() может использоваться для сохранения выделения в операциях приводящих к его сбрасыванию.

Return type:Variant
Returns:Массив идентификаторов выделенных записей.

New in version Global_5.9.0_ms13.

SetSelectedRecords(RecordsToSelect: Variant);

Выделяет указанные записи.

Tip

В паре с GetSelectedRecords() может использоваться для сохранения выделения в операциях приводящих к его сбрасыванию.

Parameters:RecordsToSelect (Variant) – Массив идентификаторов записей для выделения.

New in version Global_5.9.0_ms13.

1.8.15.9. Перемещение записей

MoveRecordsUp(RecordsToMove: Variant)

Перемещает указанные записи вверх.

В дереве записи перемещаются исходя из положения видимых узлов, а не их следования в выборке. Узлы перемещаются независимо друг от друга, но сохраняют относительно друг друга порядок. То есть если один из узлов перемещать выше нельзя (например он верхний в родительском), а остальные можно, остальные будут перемещены. При этом следующие узлы не перемещаются выше других перемещаемых узлов. Перемещаемые узлы могут принадлежать разным родителям, а также быть вложенными друг в друга.

Attention

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

Parameters:RecordsToMove (Variant) – Идентификаторы перемещаемых записей. Может принимать как одно значение, так и массив. Каждому передаваемому значению обязательно должна соответствовать запись.

New in version Global_5.9.0_ms13.

MoveRecordsDown(RecordsToMove: Variant)

Перемещает указанные записи вниз.

В дереве записи перемещаются исходя из положения видимых узлов, а не их следования в выборке. Узлы перемещаются независимо друг от друга, но сохраняют относительно друг друга порядок. То есть если один из узлов перемещать ниже нельзя (например он нижний в родительском), а остальные можно, остальные будут перемещены. При этом следующие узлы не перемещаются ниже других перемещаемых узлов. Перемещаемые узлы могут принадлежать разным родителям, а также быть вложенными друг в друга.

Parameters:RecordsToMove (Variant) – Идентификаторы перемещаемых записей. Может принимать как одно значение, так и массив. Каждому передаваемому значению обязательно должна соответствовать запись.

Attention

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

New in version Global_5.9.0_ms13.

MoveRecordsLeft(RecordsToMove: Variant)

Перемещает указанные записи влево.

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

Parameters:RecordsToMove (Variant) – Идентификаторы перемещаемых записей. Может принимать как одно значение, так и массив. Каждому передаваемому значению обязательно должна соответствовать запись.

Attention

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

New in version Global_5.9.0_ms13.

MoveRecordsRight(RecordsToMove: Variant)

Перемещает указанные записи вправо.

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

Parameters:RecordsToMove (Variant) – Идентификаторы перемещаемых записей. Может принимать как одно значение, так и массив. Каждому передаваемому значению обязательно должна соответствовать запись.

Attention

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

New in version Global_5.9.0_ms13.

1.8.15.10. TSummaryType

class TSummaryType

Перечисление. Способы вычисления итогов полей данных.

ctNoSummary

Без итогов.

ctSummaryCount

Количество значений.

ctSummarySum

Сумма всех числовых значений.

ctSummaryMax

Наибольшее значение.

ctSummaryMin

Наименьшее значение.

ctSummaryAvg

Среднее арифметическое для всех числовых значений.

1.8.15.11. TbtkGroupFootersMode

class TbtkGroupFootersMode

Перечисление. Настройка отображения футера группы.

gfmVisibleWhenExpanded

Отображать только для развёрнутых узлов.

gfmAlwaysVisible

Отображать для всех узлов.

New in version Global_5.9.0_ms_16.

1.8.15.12. TbtkGroupSummaryPosition

class TbtkGroupSummaryPosition

Перечисление. Положение промежуточных итогов.

gspHeader

Отображать промежуточные итоги в заголовке группы.

gspFooter

Отображать промежуточные итоги в футере группы.

New in version Global_5.9.0_ms_16.