1.8.26. TbtkScriptSelectionObject

class TbtkScriptSelectionObject

Скриптовый класс реализует доступ к сущности `Выборка`. Создание объекта этого класса приведет к создание выборки без визуального отображения.

Controller(): TbtkScriptControllerObject

Возвращает объект класса TbtkScriptControllerObject по работе с GUI редактором выборки.

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

Ссылка на объект формы данной выборки.

Return type:TbtkScriptFormObject
OleContainer

Возвращает объект класса TOleContainer.

Id: String

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

Return type:String
Change()

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

SetStyleControl(AttrName, StyleName: String)

Устанавливает для редактора атрибута AttrName стиль StyleName.

Parameters:
  • AttrName (String) – Имя атрибута.
  • StyleName (String) – Имя стиля.
GetStyleControl(AttrName: String): String

Возвращает имя стиля атрибута по имени атрибута AttrName.

Parameters:AttrName (String) – Имя атрибута.
Return type:String

1.8.26.1. Настройка

DisplayName: String

Наименование выборки.

Return type:String
Representation: String

Активное отображение выборки.

Return type:String
EntityName: String

Системное имя выборки.

Return type:String
GetHelpIndex(): Variant

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

Return type:Variant
Visible: Variant

Говорит о видимости фрейма, которому принадлежит выборка. Изменяя это свойство вы будете изменять видимость фрейма.

Return type:Variant
Пример использования
//При обращении напрямую к объекту Selection не работает (Selection.Visible)

<pascal>
  S:=FindSelectionEx('SEL_TST_DetailVisible',['Representation'],['Detail2']);
  S.Visible:=not S.Visible;
</pascal>
GetPropertyValue(PropertyName: String): Variant

Возвращает значение свойства PropertyName выборки.

Parameters:PropertyName (String) – Имя свойства выборки.
Return type:Variant
SetPropertyValue(PropertyName: String; PropertyValue: Variant)

Устанавливает значение PropertyValue свойству выборки PropertyName.

Parameters:
  • PropertyName (String) – Имя свойства выборки.
  • PropertyValue (Variant) – Значение свойства выборки.
GetAttributeVisible(AttrName: String): Boolean

Возвращает видимость атрибута AttrName.

Parameters:AttrName (String) – Видимость атрибута
Return type:Boolean
SetAttributeVisible(AttrName: String; Flag: Boolean)

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

Parameters:
  • AttrName (String) – Имя атрибута.
  • Flag (Boolean) – Значение видимости атрибута.
SetAttributeProperty(AttributeName, PropertyName, PropertyValue: String)

Метод позволяет менять любое свойство атрибута выборки. Предпологается использовать в операции OnLoadMeta для внесения изменений в метаданные в процессе выполнения.

Parameters:
  • AttributeName (String) – имя атрибута выборки
  • PropertyName (String) – имя свойства
  • PropertyValue (String) – новое значение свойство
Пример использования
<pascal>
  Selection.SetAttributeProperty('id', 'visible', '0');
</pascal>
ReloadAttrPresetMeta()

Метод перегружает метаданные сохраненных настроек выборки.

1.8.26.2. Контекст/Параметры/Данные

ClientSetVar(Name: String; Value: Variant)

Процедура аналогично SetVar, устанавливает значение атрибута (параметра), но без вызова сеттера.

Parameters:
  • Name (String) – Имя атрибута (параметра).
  • Value (Variant) – Значение атрибута (параметра) Name.
SetVar(AttrName: String; Value: Variant)

Устанавливает значение атрибута (параметра).

Parameters:
  • AttrName (String) – Имя атрибута.
  • Value (Variant) – Значение атрибута.

See also

Подробнее о параметрах в Параметры выборки

SetVarDesc(AttrName, Caption: String)

Задаёт заголовок атрибута.

Attention

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

Чтобы избежать потерь производительности следует использовать TbtkScriptSelectionObject.SetVarsDesc().

Parameters:
  • AttrName (String) – Имя атрибута.
  • Caption (String) –

    Новое значение заголовка.

    Changed in version 4.30: Caption может содержать имена бандов вверх по иерархии, разделённые символом “|”, например:

    Заголовок|Нижний банд|<Ещё несколько бандов>|Верхний банд
    

    Changed in version 5.9.0_ms2: Добавлена поддержка многоуровневых бэндов в древовидный список.

Пример использования
<PASCAL>
  Selection.SetVarDesc('Attr1', 'Атрибут1');
  Selection.SetVarDesc('Attr2', 'Атрибут2|Банд-1|Супер-банд-1|Гига-банд-1');
  Selection.SetVarDesc('Attr3', 'Атрибут3|Банд-2|Супер-банд-1|Гига-банд-1');
</PASCAL>
SetVarsDesc(AttrNames, Captions: Array)

Задаёт заголовки атрибутов.

Note

отличается от TbtkScriptSelectionObject.SetVarDesc тем, что принимает массивы имён и значений и существенно снижает сопутствующие накладные расходы на применение изменений в пользовательском интерфейсе.

Parameters:
  • AttrNames (Array) – Массив имён атрибутов.
  • Captions (Array) –

    Массив новых значений заголовков.

    Каждое значение может содержать имена бандов вверх по иерархии, разделённые символом “|”.

New in version 5.5.

Changed in version 5.9.0_ms2: Добавлена поддержка многоуровневых бэндов в древовидный список.

VarExists(Attrname: String): Boolean

Проверяет существование аттрибута(параметра) с заданным именем AAttrname.

Parameters:Attrname (String) – Имя атрибута(параметра).
Return type:Boolean
GetSelfVar(VarName: String): Variant

Возвращает значение параметра выборки. В отличие от GetVar не смотрит на выборку мастера , если не находит параметр VarName в текущей выборке. С помощью данной ф-ии можно получить значения: атрибута выборки, свойства фрейма, параметры добавленные с помощью AddVar, свойства фрема, параметры добовленные при вызове CreateFormEx или DoLookUpEx. Если переменная не существует вернётся null.

Parameters:VarName (String) – Имя переменной.
Return type:Variant
SelfVarExists(VarName: Variant): Boolean

Проверяет существование параметра выборки. В отличие от VarExists не смотрит на выборку мастера, если не находит параметр VarName в текущей выборке. С помощью данной ф-ии можно проверить существование: атрибута выборки, свойства фрейма, параметры добавленные с помощью AddVar, свойства фрема, параметры добавленные при вызове CreateFormEx или DoLookUpEx.

Parameters:VarName (Variant) – Имя переменной.
Return type:Boolean
GetVarDesc(AttrName: String): String

Получает описание атрибута AttrName (то, что отображается в заголовках списка и т.п.)

Parameters:AttrName (String) – Имя атрибута.
Return type:String
AddVar(Name: String; Value, Type: Variant; Persistence: TbtkPersistentType)

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

Parameters:
  • Name (String) – Имя параметра.
  • Value (Variant) – Значение параметра.
  • Type (Variant) – Тип параметра.
  • Persistence (TbtkPersistentType) –

    Указывает, является ли переменная “стойкой” (Persistent), и, если да, то место, куда будет сохранено ее значение при закрытии выборки.

    ptNone
    по умолчанию. В этом случае, переменная не является “стойкой” (Persistent) будет удалена при закрытии выборки.
    ptRegistry
    Означает, что переменная является “стойкой”, после закрыти выборки ее значение будет сохранено в реестре приложения, а при открытии выборки - востановлено оттуда.
GetVar(AttrName: String): Variant

Возвращает значение атрибута (параметра) по имени атрибута AttrName.

Parameters:AttrName (String) – Имя атрибута.
Return type:Variant

See also

Подробнее о параметрах в Параметры выборки

LookUpParams: TbtkScriptLookUpParamsObject

Метод возвращает объект класса для доступа к locate параметрам выборки, если выборка открывается через DoLookUp.

Return type:TbtkScriptLookUpParamsObject
CreateFormParams: TbtkScriptCreateFormParamsObj

Список параметров переданных в CreateFormEx при создание данного фрейма.

Return type:TbtkScriptCreateFormParamsObj
Пример использования
<PASCAL>
  Result := '';
  Count := Selection.CreateFormParams.Count;
  Result := 'Количество параметров переданных при создание формы: ' + IntToStr(Count);
  Result := Result + #13#10 + 'Параметры:' + #13#10;

  for i := 0 to Count - 1 do
  begin
    Result := Result + '('+ IntToStr(i)+')' + 'Name:' + Selection.CreateFormParams.Names[i] + '; ' +
     'Value:'+ VarToStr(Selection.CreateFormParams.Values[i]) + '; '+
     'ValueByName:' + VarToStr(Selection.CreateFormParams.GetValueByName(Selection.CreateFormParams.Names[i])) + ';' + #13#10;
  end;
  ShowMessage(Result);
</PASCAL>

1.8.26.2.1. Blob, файлы

BlobOpen(FieldName, FileName: String; Wait: Boolean; Save: T3State): Boolean

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

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

Parameters:
  • FieldName (String) – Имя поля. Поле должно быть типа Blob.
  • FileName (String) –

    Имя файла. В этот файл будет записано содержимое поля.

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

    • Полный путь к файлу (например, ‘C:\Temp\picture.jpg’);
    • Имя файла (например, ‘picture.jpg’) — в этом случае приложение попытается создать файл с заданным именем и расширением во временном каталоге пользователя;
    • Расширение файла (например, ‘.jpg’) — в этом случае приложение попытается создать файл с уникальным именем и заданным расширением во временном каталоге пользователя.
  • Wait (Boolean) – Ожидать завершение запущенного приложения перед дальнейшим выполнением скрипта.
  • Save (T3State) –

    Сохранять содержимое файла обратно в поле после редактирования.

    Имеет эффект только при Wait = True.

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

    • stTrue — сохранять
    • stFalse — не сохранять
    • stUnknown — спросить у пользователя
Return type:

Boolean

Returns:

Если файл был успешно сохранен в поле — True, в противном случае — False.

Пример использования
<PASCAL>
  fileName := GetVar('sCaption');
  Selection.BlobOpen('blobFile', fileName, True, stTrue);
</PASCAL>
BlobOpenEx(FieldName, FileName: String; Selection: TbtkScriptSelectionObject; Operation: String; Mode: TbtkWatcherMode)

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

После редактирования файла вызывается операция.

Можно настроить режим определения окончания редактирования файла.

Parameters:
  • FieldName (String) – Имя поля. Поле должно быть типа Blob.
  • FileName (String) –

    Имя файла. В этот файл будет записано содержимое поля.

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

    • Полный путь к файлу (например, ‘C:\Temp\picture.jpg’);
    • Имя файла (например, ‘picture.jpg’) — в этом случае приложение попытается создать файл с заданным именем и расширением во временном каталоге пользователя;
    • Расширение файла (например, ‘.jpg’) — в этом случае приложение попытается создать файл с уникальным именем и заданным расширением во временном каталоге пользователя.
  • Selection (TbtkScriptSelectionObject) – Выборка с Callback-операцией.
  • Operation (String) –

    Имя Callback-операции. Операция берётся из выборки Selection и вызывается только в случае, если в результате редактирования изменился файл.

    В операции доступны параметры выборки:

    • EditedFileName: string — полное имя отредактированного файла
    • FileChanged: boolean — был ли изменён документ
  • Mode (TbtkWatcherMode) – Режим определения окончания редактирования файла.

Note

Если выборка Selection не задана, файл открывается в модальном режиме, его изменения не записываются.

Если выборка Selection задана, то файл открывается в немодальном режиме.

Пример использования
<PASCAL>
  path := InputBox('Введите путь к файлу', 'Файл:', '');
  Selection.BlobOpenEx('blobFile', path, Selection, 'SendEmail', wmFile);
</PASCAL>
BlobOpenEx2(FieldName, Filename: String; Selection: TbtkScriptSelectionObject; Operation: String; Mode: TbtkWatcherMode; Modal, ExecOperOnClose: Boolean; ChoiseMode: TbtkFileChoiseMode)

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

После редактирования файла вызывается операция.

Можно настроить режим определения окончания редактирования файла.

Parameters:
  • FieldName (String) – Имя поля. Поле должно быть типа Blob.
  • FileName (String) –

    Имя файла. В этот файл будет записано содержимое поля.

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

    • Полный путь к файлу (например, ‘C:\Temp\picture.jpg’);
    • Имя файла (например, ‘picture.jpg’) — в этом случае приложение попытается создать файл с заданным именем и расширением во временном каталоге пользователя;
    • Расширение файла (например, ‘.jpg’) — в этом случае приложение попытается создать файл с уникальным именем и заданным расширением во временном каталоге пользователя.
  • Selection (TbtkScriptSelectionObject) – Выборка с Callback-операцией.
  • Operation (String) –

    Имя Callback-операции. Операция берётся из выборки Selection и вызывается в случае, если в результате редактирования файл изменился, либо если параметр ExecOperOnClose = True.

    В операции доступны параметры выборки:

    • EditedFileName: string — полное имя отредактированного файла
    • FileChanged: boolean — был ли изменён документ
  • Mode (TbtkWatcherMode) – Режим определения окончания редактирования файла.
  • Modal (Boolean) – Модальность открытия файла.
  • ExecOperOnClose (Boolean) –

    Необязательный параметр.

    Вызывать Callback-операцию независимо от того, изменился ли файл.

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

  • ChoiseMode (TbtkFileChoiseMode) –

    Необязательный параметр.

    Режим выбора приложения для открытия файла.

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

Note

Если при открытии используется режим открытия wmFile, то могут возникать нюансы:

  • Некоторые приложения занимают файл не сразу после вызова и нужно время чтобы дать приложению открыться и занять файл. По умолчанию дается 15 секунд. Если приложение заняло файл быстрее, чем за 15 секунд, то начинается отслеживание, когда приложение освободит файл. Если же приложение не заняло файл, то через 15 секунд будет вызвана операция-обработчик, извещающая о том, что работа с файлом завершена.
  • Приложение может не занять файл, если открывает его в режиме только на чтение, так сделает, например, MS Excel когда открывает потенциально опасный файл в защищенном режиме.

Warning

На ОС Windows 8+ метод может вызвать исключение EbtkFileWatcherException в случае, если файл открыт средством просмотра документов (фотографий) в модальном режиме или с CallBack-операцией. Шаблон обработки этого исключения см. в примере ниже.

Пример использования
<sql>
  <func>
  [out blobe]
    begin select t.blobfile into :blob from btk_attach t where t.id = 2890001; end;
  </func>
</sql>

<pascal>
  Selection.AddVar('blob', null, ftOraBlob);
  ExecSQL('func');
  try
    Selection.BlobOpenEx2('blobe', GetTempFileName('','.doc'), Selection , '' ,wmAuto, true);
  except
    if not SameText(LastExceptionClassName, 'EbtkFileWatcherException') then
      raise(LastExceptionMessage);
  end;
    Selection.SetVar('blobe', null); //Освободить память от блоба.
</pascal>
SaveToFile(FileName, FileText: String)

Вызывает диалог экспорта данных.

Parameters:
  • FileName (String) – Имя файла.
  • FileText (String) – Сохраняемый текст.
Пример использования
<sql>
  <save>
    [out sNotionReg]
    begin
      :sNotionReg := BTK_Loader.OutNotionToScriptText(:idNotion);
    end;
  </save>
</sql>

<pascal>
begin
  sRes := ExecSQLEx('save', 'idNotion; sNotionReg ', [ftInteger, ftString], [GetVar('id'), '']);
  // возвращаемое значение sNotionReg находится в sRes[1].
  // В sRes[0] находится передаваемый параметр idNotion.
  SaveToFile('', sRes[1]);
end;
</pascal>
BlobToByteArray(byteArray: Variant): Variant

Переводит данные из массива байт в Blob. Необходимо для работы со сторонними dll, например, с Ole-объектами.

Parameters:byteArray (Variant) – Данные в виде массива байт.
Return type:Variant
Пример использования
<PASCAL>
  // метод LoadFromFileToBlob на самом деле возвращает AnsiString
  blob := LoadFromFileToBlob('D:\...\blob.bmp');
  byteArray := Selection.BlobToByteArray(blob);
  // Выводим массив байтов
  str := 'Размер = ' + IntToStr(Length(byteArray)) + #13#10 + 'Начинка = ';

  for i := 0 to Length(byteArray)-1 do
  begin
    if (i mod 20 = 0) then
    str := str + #13#10;
    str := str + IntToStr(byteArray[i]) + ',';
  end;

  ShowMessage(str);
  // Обратно в блоб
  blob_revert := Selection.ByteArrayToBlob(byteArray);
  // Записываем в клетку
  Selection.SetVar('TestBlobAttr', blob_revert);
</PASCAL>
UploadFile(FieldName: String): String

Метод загружает файл с жёсткого диска пользователя в поле FieldName типа Blob. Возвращает полное имя загруженного файла. В случае отмены действия возвращает пустую строку.

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

Parameters:FieldName (String) – Имя поля.
Return type:String
Пример использования
  <PASCAL>
    fileName := Selection.UploadFile('blobFile');
    if (fileName <> '') then
    begin
      Selection.SetVar('sCaption', ExtractFileName(fileName));
    end;

    Selection.DownloadFile('blobFile', GetVar('sCaption'));
  </PASCAL>
DownloadFile(FieldName, FileName: String)

Метод сохраняет содежимое поля FieldName типа Blob, в файл на диске с менем FileName. Возможны два случая поведения:

  • если параметр FileName содержит полный путь к файлу, сохранение происходит автоматически
  • если FileName не задан, или равен пустой строке, или содержит краткое имя файла, открывается диалог сохранения файла с возможностью выбора директории и имени нового файла.
Parameters:
  • FieldName (String) – Имя поля.
  • FileName (String) – Имя файла.
Пример использования
<PASCAL>
  fileName := Selection.UploadFile('blobFile');
  if (fileName <> '') then
  begin
    Selection.SetVar('sCaption', ExtractFileName(fileName));
  end;

  Selection.DownloadFile('blobFile', GetVar('sCaption'));
</PASCAL>
LoadFieldFromFile(FieldName, FileName: String)

Загружает данные из файла FileName в поле FieldName выборки.

Parameters:
  • FieldName (String) – Имя поля.
  • FileName (String) – Имя файла.
SaveFieldToFile(FieldName, FileName: String)

Выгружает данные из поля FieldName выборки в файл FileName.

Parameters:
  • FieldName (String) – Имя поля выборки.
  • FileName (String) – Имя файла.
ByteArrayToBlob(): String

Конвертирует массив байт в блоб.

Return type:String
Пример использования
<PASCAL>
  // метод LoadFromFileToBlob на самом деле возвращает AnsiString
  blob := LoadFromFileToBlob('D:\...\blob.bmp');
  byteArray := Selection.BlobToByteArray(blob);
  // Выводим массив байтов
  str := 'Размер = ' + IntToStr(Length(byteArray)) + #13#10 + 'Начинка = ';

  for i := 0 to Length(byteArray)-1 do
  begin
    if (i mod 20 = 0) then
    str := str + #13#10;
    str := str + IntToStr(byteArray[i]) + ',';
  end;

  ShowMessage(str);
  // Обратно в блоб
  blob_revert := Selection.ByteArrayToBlob(byteArray);
  // Записываем в клетку
  Selection.SetVar('TestBlobAttr', blob_revert);
</PASCAL>
CreateLobLocator(): TbtkScriptOraLobLocator

Создаёт объект локатора привязанный к сессии данной выборки.

Return type:TbtkScriptOraLobLocator

New in version BtkRuntime: 5.4.0.3582 ms 1

1.8.26.3. Утилиты

ExportToAccess(FileName, TableName: String; Overwrite: Boolean)

Метод экспортирует выборку в таблицу базы данных Access. Если файл базы данных FileName не существует, то база данных будет создана с указанным именем.

Parameters:
  • FileName (String) – Имя файла базы данных Access.
  • TableName (String) – Имя таблицы в которую надо выполнить экспорт. Таблица будет создана если не существует. Если таблица уже существует в базе данных, то если флаг Overwrite равен False будет возбуждено исключение. Если же Overwrite равен True то таблица будет пересоздана.
  • Overwrite (Boolean) –

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

    True
    таблица будет пересоздана
    False
    будет возбуждено исключение.
ApplySelectionPreset(Name: String)

Заполняет значения текущей строки выборки значениями указанной сохраненной настройки

Parameters:Name (String) – Cистемное имя сохраненной настройки выборки

1.8.26.4. Мастер-деталь

RefreshDep(ParamName: String)

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

Parameters:ParamName (String) – Имя параметра.
LockRefreshDep(): TbtkScriptUnlockable

Блокирует реакцию на изменение параметров GST и выполнение CWA выборки (и каждой её детали).

Return type:TbtkScriptUnlockable
Returns:Объект описывающий установленную блокировку.

Блокировок может быть установлено несколько. Выборка будет считаться разблокированной когда будут сняты все блокировки на неё установленные. Возвращаемый TbtkScriptUnlockable соответствует единственной блокировке, установленной вернувшим его вызовом LockRefreshDep.

Пропущенные в результате блокировок CWA будут выполнены при разблокировке выборки.

{$IF DesktopVer >= 5.5.0.4045}
depLock := Selection.LockRefreshDep;
try
  SetVar('ID', 100500);
finally
  depLock.Unlock;
end;
{$Else}
Selection.LockRefreshDep;
try
  SetVar('ID', 100500);
finally
  Selection.UnlockRefreshDep;
end;
{$EndIf}

Changed in version 5.5.0.4045: Метод начал возвращать объект блокировки в качестве результата выполнения.

UnLockRefreshDep()

Снимает блокировку реакции выборки на изменение параметров GST, установленную методом LockRefreshDep().

Warning

Метод работает парно с LockRefreshDep(), и только в рамках одной операции.

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

Deprecated since version 5.5.0.4045: Вместо данного метода следует использовать TbtkScriptUnlockable.Unlock(), объекта возвращаемого методом LockRefreshDep(). Метод UnLockRefreshDep неявно обращается к объекту блокировки, созданному для данной выборки в течение времени выполнения текущей операции. Из чего следует, что блокировка и разблокировка должны выполняться в рамках одной операции (прим.: и с использованием конструкции try/finally).

AddDependency(ParamName: String)

Метод позволяет добавить зависимость детальной выборки от ParamName - атрибута мастер-выборки. При изменении указанного атрибута мастер выборки, будет выполнено обновление детальной выборки. Данный метод позволяет связать деталь и мастер, даже если в GetSQLText детальной выборки нет внешнего ключа и если нельзя использовать “Super$” префикс из-за ограничения на длину имени параметра в 30 символов.

Parameters:ParamName (String) – Имя атрибута мастера.
Пример использования
<pascal>
  Selection.AddDependency('Super$Super$Super$id');
</pascal>
RefreshDetails()

Метод обновляет активные(открытые) детали находящиеся на одной форме с мастером(мастер-выборкой), при этом мастер не обновляется. Выборки табов также не обновляются.

IgnoreParamChange: Boolean

Не обновлять выборку при изменении super$ параметров.

Return type:Boolean

See also

Свойство выборки IgnoreParamChange.

Master: TbtkScriptSelectionObject

Мастер-выборка для текущей выборки.

Return type:TbtkScriptSelectionObject
Пример использования
<pascal>
  Sel := Selection;
  M := Sel.Master;
</pascal>
CWADetails()

Метод выполняет операцию CheckWorkability у всех детальных выборок на текущей форме

1.8.26.5. Операции

1.8.26.5.1. Настройки

Operations

Дальше можно писать операцию

SetOperationImageIndex(OpName: String; ImageIndex: Integer)

Устанавливает операции с именем OpName иконку с номером ImageIndex.

Parameters:
  • OpName (String) – Имя операции.
  • ImageIndex (Integer) – Номер иконки.
OperationOptions: TbtkScriptOperationOptionsObject

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

Return type:TbtkScriptOperationOptionsObject
SetCustomDisable(OpName: String; Flag: Boolean)

Метод запрещает или разрешает действие по его имени.

Deprecated since version 5.0.0: Следует использовать TbtkScriptOperationOptionsObject.SetCustomDisabled().

Parameters:
  • OpName (String) – Имя действия.
  • Flag (Boolean) – Значение активности операции.
SetAdmDisable(AdmActionName: String; Flag: Boolean)

Метод запрещает или разрешает операции по системному имени имени сопоставленного администрирующего действия.

Parameters:
  • AdmActionName (String) – Название административного действия (otInsertItem, otDeleteItem и др.).
  • Flag (Boolean) – Флаг - разрешить или запретить действие AdmActionName.
SetCustomInactive(OpName: String; Flag: Boolean)

Метод предназначен для управления видимостью пользовательской операции. Т.е. после вызова Selection.SetCustomInactive('MyOperation', true); операция исчезнет с панели управления и из меню.

Parameters:
  • OpName (String) – Имя операции.
  • Flag (Boolean) – Значение активности операции.

Note

Для сохранения обратной совместимости реализовано следующее поведение: при вызове SetCustomInactive с флагом False, если операция изначально пришла из метаданных неактивной (со значением свойства “Флаг активности операции” равным False), то она активируется. Такое поведение актуально только для неархивного режима загрузки метаданных, т.к. в архивном режиме неактивные операции не высылаются на клиент.

Attention

Существует ограничение на использование данного метода: метод нельзя использовать в операциях, которые выполняются вследствие нажатия на кнопку панели управления. Ограничение актуально для случая, когда метод активирует изначально неактивную операцию.

Deprecated since version 5.0.0: Следует использовать TbtkScriptOperationOptionsObject.SetCustomInactive().

Changed in version 5.6.8.4630: Ранее данный метод изменял не видимость операций, а активность, что не только скрывало операции с панелей инструментов и меню, но и запрещало их выполнение. Причиной отказа от старого поведения послужили сторонние эффекты при смене активности, такие как перестроение панелей инструментов и т.п.

1.8.26.5.2. Другое

Operation(): TbtkScriptOperationObject

Текущая выполняемая операция.

Return type:TbtkScriptOperationObject
FindOperation(OpName: String): TbtkScriptOperationObject

Возвращает операцию по OpName, если операция не найдена, то возращает nil.

Parameters:OpName (String) – Системное имя операции.
Return type:TbtkScriptOperationObject
OperationByName(OpName: String): TbtkScriptOperationObject

Возвращает операцию по имени OpName, если таковая не существует, то генерируется исключение

Parameters:OpName (String) – Имя операции.
Return type:TbtkScriptOperationObject
ExecOperationText(Text: String; Arguments: Array; MarkType: TbtkOperationTextMarkupType)

Метод позволяет выполнить динамически сформированный текст операции. При вызове метода будет создана и выполнена временная операция с текстом, переданным через параметр Text. По сути метод аналогичен методу ExecOpScript, в который передаётся имя операции.

Parameters:
  • Text (String) – Текст операции, который необходимо выполнить.
  • Arguments (Array) – Параметры скрипта.
  • MarkType (TbtkOperationTextMarkupType) – Тип разметки скрипта. По-умолчанию otmtAutoDetect.
Пример использования
<PASCAL>
  OpText := '<Pascal>' + #13#10 +
  'ShowMessage(''Сообщение из метода ExecOperationText'');' + #13#10 +
  '</Pascal>';

  Selection.ExecOperationText(OpText);
</PASCAL>
ExecOpScript(OpName: String)

Выполняет операцию OpName выборки.

Parameters:OpName (String) – Имя операции в текущей выборки.
AsyncExecOperationText(Text: String; MarkType: TbtkOperationTextMarkupType)

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

Parameters:
  • Text (String) – Текст операции, который необходимо выполнить.
  • MarkType (TbtkOperationTextMarkupType) – Тип разметки скрипта. По-умолчанию otmtAutoDetect.
Пример использования
<PASCAL>
  var
    s: string;
  begin
    s := '<PASCAL>' + #13#10 +
      'ShowMessage(''Сообщение из операции #AsyncExectSQLOprtnTxt''); ' + #13#10 +
      '</PASCAL>';
    selection.AsyncExecOperationText(s);
  end;
</PASCAL>
AsyncExecOpScript(OperationName: String)

Асинхронный вызов операции. “Асинхронный” в данном случае не означает что операция начнёт выполняться параллельно - операция будет выполнена по факту завершения выполнения всех выполняющихся на данный момент операций; более корректно считать такое выполнение “Отложенным”. Метод позволяет выполнить действия вне текущего контекста работы, это позволяет гарантировать что они никаким образом не повлияют на текущее выполнение.

Parameters:OperationName (String) – Имя операции.
Пример использования
<pascal>
  S := Selection.Master; //находим выборку-список
  S.PriorRecord;

  if {здесь определяем, что нужно будет сменить карточку} then
  begin
    S.AddVar('UseActiveForm', 1, ftInteger); //имя переменной может быть любым
    S.AsyncExecOpScript('CardEdit'); // операция открытия карточки запускается асинхронно
  end
  else
    Selection.Refresh;

  // В выборке-списке в операции открытия карточки пишется:
  // CreateFormEx(...['UseActiveForm'],[GetVar(UseActiveForm)]);
  // AddVar('UseActiveForm', 0);
</pascal>
UpdateMultiplicatingOperations(OpNames: array of string)

Обновляет клонируемые операции.

Parameters:OpNames (array of string) – Необязательный параметр. Массив имен клонируемых операций, которые нужно обновить. Если не задан, будут обновлены все клонируемые операции.
Пример использования
<pascal>
  Selection.UpdateMultiplicatingOperations(['clnOper1', 'clnOper2']);

  S := Application.MainSelection;
  if Assigned(S) then
    S.UpdateMultiplicatingOperations;
</pascal>
GetEditButtonName(): String

На нажатие на кнопку вызывается сеттер атрибута с типом etEditButton. Внутри сеттера с помощью метода Selection.GetEditButtonName можно получить строку с системным именем нажатой кнопки.

Return type:String
UserActionType(): TbtkUserActionType

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

Return type:TbtkUserActionType
SetterExecType(): Variant

Метод позволяет определить в результате, какого действия был вызван сеттер Вызывать метод можно только внутри сеттера. Поскольку результат, возвращамый функцией, актуален только внутри выполняемого сеттера. После вставки таблицы (массового обновления) происходит выполнение операции, указанной в свойстве фрейма: OnAfterBulkUpdate – «Операция, выполняемая после массового обновления»

Return type:Variant
Пример использования
<pascal>
  case Selection.SetterExecType of
    etUnknown: ShowMessage('Непонятно откуда');
    etEditBtn: ShowMessage('Кнопка EditBtn');
    etClearBtn: ShowMessage('Кнопка ClearBtn');
    etManual: ShowMessage('Ручной ввод');
    etSetVar: ShowMessage('SetVar');
    etExecOp: ShowMessage('Операция');
    etBulkUpdate: ShowMessage('Вставка из буфера обмена');
  end;

  Selection.ExecOpScript('#SetIDUniFilterRefClass1');
</pascal>

1.8.26.6. SQL

ExecSQL(BlockName: String)

Метод выполняет PL/SQL-блок BlockName, объявленный в текущей операции.

Parameters:BlockName (String) – Имя блока
Пример использования
<SQL>
  <GetCost>
  [Out cost]
    begin
      select price into :cost
      from table
      where code = :id;
    end;
  </GetCost>
</SQL>

<Pascal>
  ExecSQL('GetCost');
  value := GetVar('Cost');
  ShowMessage(IntToStr(Value * 10));
</Pascal>

Note

Если в PLSQL блоке используется парметр, который отсутсвует в выборке, то он считается пустым параметром типа ‘ftString’ размером 4000 символов (максимум varchar2).

Attention

При использовании входящих параметров типа ‘ftString’ под них в базе выделяется память размером с длину строки. Соответственно, если в PLSQL блоке в такой параметр попробовать записать строку большей длины, чем было в значении параметра изначально, то вылетит ошибка “ORA-06502: PL/SQL: numeric or value error: character string buffer too small”. Если в значении такого параметра изначально пустая строка (либо ‘null’), то под него выделится память на 4000 символов (максимум varchar2).

ExecSQLEx(BlockName, ParamNames: String; ParamTypes, ParamValues: Array): Array

Метод выполняет PL/SQL-блок BlockName, объявленный в текущей операции, с возможностью передавать в SQL-блок дополнительные, не участвующие в контексте выборки параметры, а также возвращать их. Имена входящих параметров задаются в ParamNames через точку с запятой. В тексте SQL-запроса можно использовать не только передаваемые в ParamNames параметры, но и использовать параметры, имеющиеся в выборке. В случае совпадения имен параметров, будет использоваться параметр, переданный в вызове ExecSQLEx. Возвращает массив значений параметров, указанных в ParamNames, в том порядке, в котором они перечислены в ParamNames. Если возвращаемый параметр участвует в секции [OUT] sql-запроса, то будет возвращено его новое значение. Если не участвует, то будет возвращено то значение, которое передавалось в ParamValues. Если входящих параметров нет, то можно передавать ParamNames = '' и ParamValues = []. Количество параметров должно совпадать с количеством типов и с количеством значений. Все параметры являются входящими и могут являться возвращаемыми.

Parameters:
  • BlockName (String) – Имя PL\SQLsql-блока.
  • ParamNames (String) – Имена входящих параметров, разделенные точкой с запятой.
  • ParamTypes (Array) – Массив типов параметров в формате: [тип1, тип2, …] Доступные константы типов параметров:
Parameters:ParamValues (Array) – Массив значений параметров в формате: [значение1, значение2].
Return type:Array
Пример использования
<SQL>
  <Save>
  [out sNotionReg]
    begin
      :sNotionReg := BTK_Loader.OutNotionToScriptText(:idNotion);
    end;
  </Save>
</SQL>

<Pascal>
  begin
    sRes := ExecSQLEx('save', 'idNotion; sNotionReg ',
    [ftInteger, ftString], [GetVar('id'), '']);
    // возвращаемое значение sNotionReg находится в sRes[1].
    // В sRes[0] находится передаваемый параметр idNotion.
    SaveToFile('', sRes[1]);
  end;
</Pascal>
ExecSQLWithProgress(BlockName, Caption, Message, EventName: String; FinalValue: Integer): Variant

Методы позволяют выполнять SQL-блоки, которые посылают по Pipe каналу сообщения о процессе выполнения. Методы открывают модальное окно с полосой прогресса, которое слушает Pipe канал с заданным именем, и запускаю выполнение SQL-блока. Сообщения, приходящие с сервера должны содержать число в диапазоне [0 .. FinalValue]. По приходу сообщения с числом равным или больше FinalValue, диалог будет закрыт. Если FinalValue = 0 , то диалог будет закрыт при получении первого сообщения.

Parameters:
  • BlockName (String) – Имя SQL-блока.
  • Caption (String) – Текст заголовка окна.
  • Message (String) – Сообщение.
  • EventName (String) – Имя Pipe-канала.
  • FinalValue (Integer) – Финальное значение.
Return type:

Variant

Пример использования
<SQL>
  <msg>
    declare
      i integer;
      j integer;
    begin
      i := 1;
      loop
        dbms_pipe.pack_message(to_char(i));
        j := dbms_pipe.send_message('TestEvent');
        i := i + 1;
        dbms_lock.sleep(1);

        if i = 11 then
          exit;
        end if;
      end loop;
    end;
  </msg>
</SQL>

<Pascal>
  ExecSQLWithProgress('msg', 'Заголовок', 'Сообщение', 'TestEvent', 10);
</Pascal>
ExecSQLExWithProgress(BlockName: String; ParamNames, ParamTypes, ParamValues: Array; Caption, Message, EventName: String; FinalValue: Integer): Variant

Расширенный метод ExecSQLWithProgress.

Parameters:
  • BlockName (String) – Имя SQL-блока
  • ParamNames (Array) – Имена входящих параметров, разделенные точкой с запятой.
  • ParamTypes (Array) –

    Массив типов параметров в формате: [тип1, тип2, …] Доступные константы типов параметров:

    • ftString
    • ftInteger
    • ftFloat
    • ftDateTime
    • ftOraBlob
    • ftOraClob
  • ParamValues (Array) – Массив значений параметров в формате: [значение1, значение2] Количество параметров должно совпадать с количеством типов и с количеством значений. Все параметры являются входными и могут являться выходными.
  • Caption (String) – Текст заголовка окна.
  • Message (String) – Сообщение.
  • EventName (String) – Имя Pipe-канала.
  • FinalValue (Integer) – Финальное значение.
Return type:

Variant

Пример использования
<SQL>
  <msg>
  [OUT idpValue]
    declare
      i integer;
      j integer;
    begin
      i := 1;
      :idpValue := 'Возвращаемое значение';
      loop
        dbms_pipe.pack_message(to_char(i));
        j := dbms_pipe.send_message('TestEvent');
        i := i + 1; dbms_lock.sleep(1);

        if i = 11 then
          exit;
        end if;
      end loop;
    end;
  <msg>
</SQL>

<Pascal>
  R := ExecSQLExWithProgress('msg', 'idpValue', [ftString], ['Входящее
  значение'], 'Заголовок', 'Сообщение', 'TestEvent', 10 );
  ShowMessage(R[0]);
</Pascal>

1.8.26.7. Фильтр

1.8.26.7.1. Настройки

ActiveFilterName: String

Имя активного фильтра выборки.

Return type:String
Пример использования
// При обращении напрямую к объекту Selection не работает
// (Selection.ActiveFilterName)

<pascal>
  Sel := Selection;
  ShowMessage(Sel. ActiveFilterName);
</pascal>
UniFilterMacros(): String

Метод возвращает условие универсального фильтра, подставляемое в GetSQLTest выборки

Return type:String
UniFilterText(): String

Метод возвращает условие универсального фильтра в виде текста.

Return type:String

1.8.26.7.1.1. параметры

GetFilterParamReadOnly(FltParamName: String): Boolean

Возвращает значение свойства ReadOnly параметра фильтра по имени параметра FltParamName.

Parameters:FltParamName (String) – Имя параметра фильра.
Return type:Boolean
SetFilterParamReadOnly(FltParamName: String; Flag: Boolean)

Устанавливает значение Flag свойству ReadOnly параметру фильтра FltParamName.

Parameters:
  • FltParamName (String) – Имя параметра фильтра.
  • Flag (Boolean) – Флаг свойства ReadOnly параметра фильтра FltParamName.
GetFilterParamVisible(FltParamName: String): Boolean

Возвращает значение свойства Visible параметра фильтра по имени параметра AFltParamName.

Parameters:FltParamName (String) – Имя параметра.
Return type:Boolean
SetFilterParamVisible(FltParamName: String; Flag: Boolean)

Устанавливает значение Flag свойству видимости параметру фильтра FltParamName.

Parameters:
  • FltParamName (String) – Имя параметра фильтра.
  • Flag (Boolean) – Флаг свойства видимости параметра фильтра FltParamName.

1.8.26.7.2. Другое

FilterChanged: Array

Установка этого свойства приводит к смене иконки на операциях GetSQLText и Filter, что сигнализирует о том, что фильтр был изменён, и для его применения необходимо обновить выборку.

Return type:Array
ApplyFilter()

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

ApplyFilterImmediate()

Применяет фильтры к выборке, производя перезапрос данных. Метод не зависит от флага Загружать данные при открытии фрейма в отличие от Selection.ApplyFilter;

RestoreFilter()

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

ResetFilterImmediate()

Сбрасывает все условия фильтрации и производя перезапрос данных. Метод не зависит от флага Загружать данные при открытии фрейма в отличие от Selection.ResetFilter

ResetFilter()

Сброс стандартного фильтра.

BuildUniFilter()

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

ResetUniFilter()

Сброс серверного универсального фильтра

ApplyFilterPreset(Name: String)

Применяет фильтр с указанной сохраненной настройкой

Parameters:Name (String) – Cистемное имя сохраненной настройки фильтра
SaveFilterSetting(IDSetting: Variant)

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

Parameters:IDSetting (Variant) – Идентификатор настройки
LoadFilterSetting(IDSetting: Variant)

Метод загружает значения параметров стандартного фильтра из настройки с указанным идентификатором.

Parameters:IDSetting (Variant) – Идентификатор настройки
AddSelectedToFilter()

Метод добавляет выделенные записи списка в универсальный фильтр. Вызывать метод необходимо до вызова метода Selection.ApplyFilter

1.8.26.8. Датасет

Insert()

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

ClientInsert(FieldNames: String; FieldValues: Variant)

Процедура вставляет новую запись и устанавливает значение полей. При вызове метода не вызывается паскаль операция InsertItem и не вызываются сеттеры. Таким образом не происходит никаких действий на сервере. Для вставки новой записи без установки значений можно передать параметры ('', []).

Parameters:
  • FieldNames (String) – Список имен полей через запятую.
  • FieldValues (Variant) – Значения полей. Можно передать либо массивом, если несколько полей, либо одиночным Variant, если одно поле. Можно передать unassigned, если не хотим устанавливать значений полям.
Пример использования
<pascal>
  Selection.ClientInsert('id', 8599654000);
  Selection.ClientInsert('id, sText, nNumber', [8599654000, 'Текст текст текст', 555]); // не работает в 4.30
</pascal>

Changed in version Global: 5.0. Стала возможна вставка записей массивом. В 4.30 доступна только вставка с одним полем.

Delete()

Удаляет текущую активную запись и переводить указатель на следующую.

ClientDelete()

Удаляет текущую запись. При этом не происходит никаких действий на сервере.

Append()

Метод добавлять новую пустую запись в конец выборки.

ClientAppend(FieldNames: String; FieldValues: Variant)

Процедура вставляет новую запись в конец выборки и устанавливает значение полей. При вызове метода не вызывается паскаль операция InsertItem и не вызываются сеттеры. Таким образом не происходит никаких действий на сервере. Для вставки новой записи без установки значений можно передать параметры ('', []).

Parameters:
  • FieldNames (String) – Список имен полей через запятую.
  • FieldValues (Variant) – Значения полей. Можно передать либо массивом, если несколько полей, либо одиночным Variant, если одно поле. Можно передать unassigned, если не хотим устанавливать значений полям.
Пример использования
<pascal>
  Selection.ClientAppend('id', 8599654000);
  Selection.ClientAppend('id, sText, nNumber', [8599654000, 'Текст текст
    текст', 555]);
</pascal>

New in version 5.7.0.4510.

Edit()

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

Пример использования
<pascal>
  Selection.Edit;
  SetVar('name', 'Новое значение');
  Selection.Post;
  ShowMessage(GetVar('name'));
</pascal>
Cancel()

Отменяет изменение активной записи, если еще не была зафиксирована текущая транзакция в БД (не выполнен Commit).

Post()

Фиксирует транзакцию в БД.

IsBrowseMode(): Boolean

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

Return type:Boolean
RefreshItem()

Выполняет операцию RefreshItem выборки (обновляет текущую запись)

Refresh()

Метод обновит данные в соответствии с RefreshMode. Если RefreshMode = rmNormal, при вызове Selection.Refresh будет выполнен перезапрос данных, без закрытия выборки. Если же RefreshMode = rmCloseOpen, при вызове Selection.Refresh произойдёт переоткрытие выборки. По умолчанию, RefreshMode = rmNormal. rmCloseOpen необходимо использовать в случае, если вы используете динамический SQL и в результате перезапроса данных, может измениться количество столбцов.

RefreshAsync()

Метод вызывает Refresh() в асинхронном режиме.

Caution

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

New in version 5.10_rc_1.

IsEmpty(): Boolean

Метод возвращает True, если в открытой выборке нет записей.

Return type:Boolean
DisableControls()

Метод временно блокирует отправку событий данных (значение выборки изменено, изменена запись выборки, изменена фокусировка записи и т.п.) компонентам, работающим с данными, таким как редакторы, табличные и древовидные представления, и т.п..

Рассылка сообщений включается обратным методом - EnableControls. Допускаются сколь угодно вложенные вызовы такой блокировки, т.е. вложенные методы (между парами вызовов DisableControl/EnableControls) так же могут вызывать блокировку рассылок событий данных.

Warning

Каждому вызову DisableControl обязан соответствовать, прекращающий его действие, EnableControls, в противном случае приложение продолжит функционировать неправильно.

DisableControls;
try
  Selection.SetFieldsReadOnly('val', False);
  if Selection.Locate('id' , 5, []) then
    Selection.SetVar('val', 123);
  if Selection.Locate('id' , 9, []) then
    Selection.SetVar('val', 123);
  Selection.SetFieldsReadOnly('val', True);
finally
  EnableControls;
end;

Tip

  1. Метод следует использовать, если в коде производится большое количество операций с данными и их структурой. В этом случае приложение не будет реагировать на каждое изменение, а сделает это один раз при вызове EnableControls.
  2. Следует учитывать, что вызов EnableControls приводит к полному перечитыванию всех данных выборки элементом управления. Если это большая выборка, то, например, табличное представление даст ощутимую просадку производительности на чтении.
  3. Выбирать, использовать блокировку или нет, проще всего экспериментально, замеряя время выполнения кода. Т.к. множество операций над данными локальны, такие как установка значения поля, и не приводят к большим потерям производительности даже при последовательной обработке каждого из них.
EnableControls()

Метод обратный DisableControls.

Высылает событие “все данные изменились”.

Note

Метод не делает ничего, если вызывается во вложенной паре Enable/Disable -Controls. Имеет эффект только при вызове последней разблокировки (фактически снимающей блокировку с рассылыки).

1.8.26.8.1. Настройки

1.8.26.8.1.1. Макросы

AddMacro(MacroName, MacroValue: String)

Создаёт в выборке макрос с именем MacroName и значением MacroValue. Если макрос с именем MacroName существует, макросу будет установлено значение MacroValue.

Parameters:
  • MacroName (String) – Имя макроса.
  • MacroValue (String) – Значение макроса.
Пример использования
<pascal>
  AddMacro('GSTMacro', '(4=4)');
  AddMacro('GSTMacro2', '(5=5)');
</pascal>
GetMacro(MacroName: String): String

Возвращает значение макроса с именем MacroName.

Parameters:MacroName (String) – Имя макроса.
Return type:String
IsMacroExists(MacroName.: Variant): Boolean

Проверяет существование макроса c именем MacroName.

Parameters:MacroName. (Variant) – Имя макроса.
Return type:Boolean
SetMacro(MacroName, MacroValue: String): Variant

Устанавливает макросу с именем MacroName значение MacroValue. Если при установке значения макроса выборка была открыта (Selection.Active = True), то произоёдёт её закрытие. Поэтому после устанвки макроса необходимо открыть выборку самостоятельно.

Parameters:
  • MacroName (String) – Имя макроса.
  • MacroValue (String) – Текст макроса.
Return type:

Variant

1.8.26.8.1.2. Загрузка

SetRefreshMode(Value: TbtkSelectionRefreshMode)

Метод указывает выборке, каким образом необходимо производить перезапрос данных при обновлении. Если RefreshMode = rmNormal, при вызове Selection.Refresh будет выполнен перезапрос данных, без закрытия выборки. Если же RefreshMode = rmCloseOpen, при вызове Selection.Refresh произойдёт переоткрытие выборки.

По умолчанию, RefreshMode = rmNormal.

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

Parameters:Value (TbtkSelectionRefreshMode) –

Определяет режим обновления. Может принимать значения:

  • rmNormal
  • rmCloseOpen.
GetRefreshMode(): TbtkSelectionRefreshMode

Функция возвращает значение свойства RefreshMode выборки.

Return type:TbtkSelectionRefreshMode
AutoActivate: Boolean

Открывать выборку при создании фрейма.

Return type:Boolean
ActivateMaster: Boolean

Свойство определяет надо ли при активации выборки открывать всех мастер-выборок, если они закрыты.

true
активировать надо (по умолчанию)
false
открытие мастер-выборок выполняться не будет;

Свойство необходимо устанавливать до выполнения GetSQLText.

Return type:Boolean
AutoRefresh: Boolean

Включение/отключение автообновления. Автообновления производятся согласну интервалу времени задаваемому в AutoRefreshInterval.

Return type:Boolean
AutoRefreshInterval: Integer

Временной интервал, по истечении поторого выборка будет обновлена. Задаётся в секундах (не может быть меньше 5 секунд. Если будет указано меньше, интервал будет равен 5 секунд)

Return type:Integer
Пример использования
<PASCAL>
  Selection.AutoRefreshInterval := 10;
  Selection.AutoRefresh := true;
</PASCAL>

// Для сброса таймера необходимо отключить автообновление и включить его заново
<PASCAL>
  Selection.AutoRefresh := False;
  Selection.AutoRefresh := True;
</PASCAL>
Active: Boolean

Активность выборки (открыта/закрыта).

Return type:Boolean
Пример использования
// При обращении напрямую к объекту Selection не работает
// (Selection.Active)

<pascal>
  Sel := Selection;
  ShowMessage(Sel.Active);
</pascal>
SQLText: String

SQL текст запроса выборки(Текст операции GetSqlText).

Return type:String
SortOrder: String

Cвойство определяет порядок сортировки в выборке и содержит строку, пригодную для подстановки в SQL запрос, в качестве условия сортировки.

В случае, если выборка частично прогружаемая, свойство будет содержать значение макроса сортировки SortOrder#. В случае полностью прогруженной выборки, сортировка производится клиентскими средствами, и свойство будет содержать строку составленную с учётом клиентской сортировки.

Изменяя свойство возможно изменять сортировку выборки.

Return type:String
Partitioned: Boolean

Отвечает за режим прогрузки списка и датасета. Если свойство установлено в False, то список будет полностью загружен на клиента. Если свойство установлено в True, то записи будут прогружены частично.

Return type:Boolean
RestoreFocusRecOnRefresh: Boolean

Свойство для выборок с частичной прогрузкой данных. Принцип его действия следующий:

  • если свойство установлено (по умолчанию), то при обновлении выборки фокус вернется на выделенную ранее запись. Однако если эта запись расположена далеко по порядку, то при открытии буду прогружены все предшествующие ей данные. Это может сказаться на производительности системы.
  • если свойство сброшено, то при обновлении выборки прогружается только первый блок данных, размер которого указан в свойстве “Размер секции”. Если ранее выделенная запись содержится в это блоке, то фокус будет на нее возвращен. Иначе - установлен на первую запись. Данное свойство реализовано в связи с необходимостью быстрой работы выборок с группировкой, где при смене группы меняются условия фильтрации данных. Получалось так, что выделенная запись оказывалась расположенной глубоко по порядку, и выборка обновлялась долго.
Return type:Boolean
Пример использования
<pascal>
  Selection.RestoreFocusRecOnRefresh := True
</pascal>

1.8.26.8.1.3. Поля

GetFieldNames(): String

Возвращает системные имена полей выборки разделённые запятыми.

Return type:String
SetFieldsVisible(FieldNames: String; Visible: Boolean)

Метод делает видимыми/невидимыми поля/атрибуты, перечисленные в параметре FieldNames. Если выборка активна, то будет выполняться установка видимости полей, что приведет к немедленным визуальным изменениям в фрейме, если выборка закрыта, то будет установлена видимость атрибутов выборки, как при вызове метода SetAttrVisible.

Note

Метод удаляет все редакторы полей, как непосредственно самой выборки, так и её фильтра, в следствии чего его нельзя использовать в операциях которые могут быть вызваны как результат работы редактора, к примеру в сеттере. Если такая необходимость существует - его следует выполнять асинхронно, т.е. отложить выполнение до завершения всех текущих операций. см. метод TbtkScriptSelectionObject.AsyncExecOpScript

Parameters:
  • FieldNames (String) – Системные имена атрибутов, разделённые запятой «,».
  • Visible (Boolean) – Флаг видимости атрибутов.
SetFieldsDesc(FieldNames, Captions: String)

Метод изменяет наименования атрибутов, перечисленых в параметре FieldNames.

Parameters:
  • FieldNames (String) – Системные имена атрибутов, разделённые запятой «,».
  • Captions (String) – Строка, содержащая новые наименования атрибутов разделённые запятой «,». Если наименование содержит пробелы, оно должно быть заключено в двойные кавычки. Например: "Имя один","Имя два"
Пример использования
<pascal>
  Selection.SetFieldsDesc('sCaption,sSystemName', '"Новое
    наименование","Новое системное имя"');
  Selection.SetFieldsReadOnly('sCaption,sSystemName', '0,1');
</pascal>
FieldsCount: Integer

Количество полей (атрибутов) выборки.

Return type:Integer
GetFieldCount(): Integer

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

Return type:Integer
SetFieldsReadOnly(FieldNames, ReadOnly: String)

Метод изменяет свойсво ReadOnly атрибутов, перечисленых в параметре FieldNames.

Parameters:
  • FieldNames (String) – Системные имена атрибутов, разделённые запятой «,».
  • ReadOnly (String) –

    Строка, содержащая значения 0 и 1 (ноль и один) либо True и False, разделённые запятой «,».

    Количество значений должно соответствовать количеству имён полей указанных в параметре FieldNames, либо содержать только одно значение (общее для всех перечисленных полей).

Пример использования
<pascal>
  selection.SetFieldsReadOnly('fldName1,fldName2,fldName3', '0,0,1');
  // отключит режим "Только для чтения" полям с именами "fldName1" и
  // "fldName2", и включит этот режим для поля "fldName3".

  selection.SetFieldsReadOnly(selection.GetFieldNames, True);
  //включит режим "Только для чтения" всем полям выборки.
</pascal>
SetDisabled(ActName: Variant; Flag: Boolean)

Метод запрещает или разрешает стандартное действие в зависимости от флага запрета.

Warning

Использование метода может приводить к потенциальным ошибкам.

Реальное поведение метода отличается от закладывавшейся изначально в него логики. Исторически сложилось так, что метод используется для массового изменения значений свойств “Только для чтения” для всех полей выборки, с последующим выборочным переключением этого свойства у отдельных полей. Существовавшая в реализации метода ошибка позволяла производить подобные действия. Исправление этой ошибки повлекло за собой проблемы с огромным количеством написанного кода, в том числе авто-генерируемого. В результате было решено изменить поведение метода на ожидаемое, а корректную работу реализовать в новом методе TbtkScriptOperationOptionsObject.SetStandardDisabled().

Parameters:
  • ActName (Variant) –

    Имя действия, может принимать следующие константы:

    • dsoEdit
    • dsoInsert
    • dsoDelete
  • Flag (Boolean) – Значение активности, запрещает или разрешает действие ActName.
Пример использования
<pascal>
  selection.SetDisabled(dsoInsert, False);
  // разблокирует стандартную операцию "добавление новых записей"

  selection.SetDisabled(dsoEdit, True);
  // Внимание! должна блокировать стандартную операцию "редактирование", но для обеспечения совместимости
  // устанавливает значение свойства "Только для чтения" всем полям выборки в
  // значение "True"
</pascal>

Deprecated since version 5.0.0: следует использовать:

FindField(FieldName: String): TbtkScriptFieldObject

Ищет поле по системному имени. Если атрибут не найден, возвращает nil (в отличие от FieldByName, который в этом случае возбуждает исключение)

Parameters:FieldName (String) – Системное имя поля.
Return type:TbtkScriptFieldObject
Пример использования
<pascal>
  Fld := Selection.FindField('id');

  If Assigned(Fld) then
    Fld.Visible := false;
</pascal>
FieldByName(FieldName: String): TbtkScriptFieldObject

Возвращает поле типа TbtkScriptFieldObject по системному имени поля. Если поле не найдено, дует возбуждена исключительная ситуация.

Parameters:FieldName (String) – Системное имя поля.
Return type:TbtkScriptFieldObject
FieldByIndex(Index: Integer): TbtkScriptFieldObject

Возвращает поле типа TbtkScriptFieldObject по индексу Index. Индексирование начинается с 0.

Parameters:Index (Integer) – Порядковый номер поля.
Return type:TbtkScriptFieldObject

1.8.26.8.2. Навигация

Prior(): Boolean

Метод переводит активную запись на предыдущую, если такая имеется. Результат - было ли фактическое перемещение.

Return type:Boolean
Next(): Boolean

Метод переводит активную запись на следующию, если такая имеется. Результат - было ли фактическое перемещение.

Return type:Boolean
Пример использования
<pascal>
  while Selection.Next do
    ...
</pascal>
First()

Устанавливает первую запись выбоки активной.

Last()

Метод делает последнюю запись выборки данных активной.

Eof(): Boolean

Метод возвращает True (1), если стоим на последней записи, и False, если на любой другой.

Return type:Boolean
Locate(KeyFields: String; KeyValues, Flag: Array): Boolean

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

Attention

Из-за того, что скриптер не понимает чисел больше MaxInt, а идентификаторы в системе часто больше MaxInt, в качестве значения для поиска по идентификатору следует использовать строковое представление идентификатора.

Parameters:
  • KeyFields (String) – Список названий полей. одной строкой через ‘;’
  • KeyValues (Array) – Массив значений полей или значение, если поиск осуществляется по одному полю
  • Flag (Array) – Режим поиска. Может принимать значение TbtkScriptLocateOption перечисления. Можно передать несколько значений.
Return type:

Boolean

Пример использования
<PASCAL>
  v := CreateArray(2);
  v[0] := 91894001;
  v[1] := 940593;
  Selection.Locate('IDOperation;Nversion' , V, [loCaseInsensitive, loNext]);
  Selection.Locate('ID;' , 100500, []);
  Selection.Locate('ID;' , ['100500'], []);
  Selection.Locate('ID;sCaption' , ['100500','xxxxY'], []);
</PASCAL>
RecNo: Integer

Номер текущей записи в выборке.

Return type:Integer
RecordCount: Integer

Количество загруженных записей в выборке.

Return type:Integer

1.8.26.8.3. Транспонирование

TransposeFieldByKey(Key: string; FieldName: string): TbtkScriptFieldObject

Возвращает поле транспонированного датасета по ключу.

Parameters:
  • Key (string) – Значение ключа.
  • FieldName (string) – Имя поля.
Return type:

TbtkScriptFieldObject

Merge(OperationName: String)

Добавляет в датасет данные, возвращаемые SQL операцией OperationName. OperationName должна венруть такой же набор полей, что и в датасете.

Parameters:OperationName (String) – Имя операции
TransposeLocate(KeyFields, KeyValues: Array; Flag: Variant): Boolean

Ищет запись, отвечающую указанным условиям, и делает ее текущей. Ключевым полем в транспонированной выборки является ключевое поле выборки строк. Возвращает True или False в зависимости от результата.

Parameters:
  • KeyFields (Array) – Список названий полей.
  • KeyValues (Array) – Массив значений полей KeyFields.
  • Flag (Variant) –

    Может принимать одно из следующих значений: [], [loCaseInsensitive], [loPartialKey] или [loCaseInsensitive, loPartialKey].

    loCaseInsensitive
    регистронезависимый поиск
    loPartialKey
    поиск любого вхождения строки.
Return type:

Boolean

Пример использования
<pascal>
  Selection.TransposeLocate('n#row',3,[]);
</pascal>
Merge2(OperationName: String)

Добавляет в датасет данные, возвращаемые SQL операцией OperationName. OperationName должна вернуть такой же набор полей, что и в датасете.

Parameters:OperationName (String) – Имя операции. Отличается от TbtkScriptSelectionObject.Merge() тем, что SQL текст выполняемый из OperationName вызывается в контексте выборки данный, а не мастер выборки по отношению к выборке данных. Это влияет на подстановку значений параметров.
RefreshTranspose(DataRefresh, RowRefresh, AttrRefresh: Boolean)

Обновить транспонированный датасет.

Parameters:
  • DataRefresh (Boolean) – Обновить выборку данных.
  • RowRefresh (Boolean) – Обновить выборку строк.
  • AttrRefresh (Boolean) – Обновить выборку атрибутов.

1.8.26.9. Вид

1.8.26.9.1. Фреймы

Chart(): TCustomChart

Метод возвращает объект класса TCustomChart.

Return type:TCustomChart
Пример использования
<pascal>
  Chart.BottomAxis.Title.Caption := 'Нижняя ось';
  Selection.Chart.BottomAxis.Title.Caption := 'Нижняя ось';

  S := FindSelection('SEL_AnyName');
  S.Chart.BottomAxis.Title.Caption := 'Нижняя ось';
</pascal>
Diagram(): TbtkAdvDiagram

Возвращает объект для работы с Adv диаграммой.

Return type:TbtkAdvDiagram
Scheduler(): TbtkScheduler

Возращает объет “планировщик” для выборки.

Return type:TbtkScheduler
GetFrameDataAsString(): String

Метод возращет данные фрейма расписания (Месяц, день, год).

Return type:String
Olap: TbtkScriptOLAPObject

Возвращает OLAP-интерфейс фрейма выборки

Аттрибут только для чтения

Return type:TbtkScriptOLAPObject
PivotGrid()

Свойство возвращает скриптовый объект Pivot-грида.

Пример использования
<PASCAL>
 stream := Selection.PivotGrid.SaveToBlob();
 SaveBlobToFile('...\Saved_Settings.txt', stream);

 stream := LoadFromFileToBlob('...\Saved_Settings.txt');
 Selection.PivotGrid.LoadFromBlob(stream);
</PASCAL>
Gantt(): TbtkGantt

Возвращает объект для работы с диаграммой Гантта.

Return type:TbtkGantt
TextView(): TbtkScriptTextViewObject

Возвращает объект, инкапсулирующий API доступа к фрейму TbtkLookUpTextViewFrame.

Return type:TbtkScriptTextViewObject

Deprecated since version 5.4.0: Следует использовать Selection.Controller.Text.

1.8.26.9.2. Дерево

GetNodeState(): Integer

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

0
Узел свернут
1
Узел раскрыт
-1
Не найден текущий узел
Return type:Integer

Changed in version 5.6.2: Если фрейм не поддерживает данный метод, возбуждается исключение

GetExpandedNodeIDS(): ArrayObject

Возвращает идентификаторы открытых узлов дерева.

Return type:ArrayObject
Пример использования
<pascal>
  IDS := Selection.GetExpandedNodeIDS;
  ...
</pascal>
CollapseAllNodes()

Процедура сворачивает все узлы в дереве.

OpenAllNodes(Depth: Integer = -1; ExpandMode: TbtkNodeExpandMode = emExpandAndLoadNodes)

Метод раскрывает все узлы в дереве.

Parameters:
  • Depth (Integer) –

    Глубина раскрытия узлов дерева.

    -1
    Развернуть до максимальной глубины.
    0
    Свернуть все подузлы.
    1..N
    Развернуть узлы до указанного уровня глубины.
  • ExpandMode (TbtkNodeExpandMode) – Параметр определяет как и какие узлы надо раскрывать.

Changed in version 5.6.0.4423_ms4: Добавлены параметры Depth и ExpandMode

OpenNode(NodeId: Float; Recursively: Boolean = False)

Метод раскрывает узел дерева с идентификатором NodeId (Применим только для дерева)

Parameters:
  • NodeId (Float) – Идентификатор узла дерева.
  • Recursively (Boolean) – Параметр позволяет в значение True раскрыть все подузлы рекурсивно, то есть будет развернут не только один NodeId узел, но и все его подузлы. Если же передано значение False, то свернутые подузлы разворачиваться не будут.

Changed in version 5.6.0.4423_ms4: Добавлен параметр Recursively

CloseNode(NodeId: Float; Delete, Recursively: Boolean)

Метод сворачивает узел дерева с идентификатором NodeID (Применим только для дерева).

Parameters:
  • NodeId (Float) – Идентификатор узла.
  • Delete (Boolean) – Параметр используется в курсорном дереве. Установка значение в True позволяет удалить из памяти клиента (DataSet’а) сворачиваемые подузлы.
  • Recursively (Boolean) – Параметр позволяет в значение True свернуть все подузлы рекурсивно, то есть будет свернут не только один NodeId узел, но и все его подузлы. Если же передано значение False, то подузлы сворачиваться не будут, и при последующем открытии узла, сразу будут раскрыты и развернутые до сворачивания подузлы.
Пример для курсорного дерева, сворачивание с удалением узлов
<PASCAL>
  Selection.CloseNode(GetVar('id'), True, False);
</PASCAL>
ChildNodesLoaded(NodeID: Variant): Boolean

Возвращает True если узел не содержит вложенных узлов либо его вложенные узлы загружены.

Parameters:NodeID (Variant) – Идентификатор узла. Если идентификатор не указан, метод вернет результат для сфокусированного узла.
Пример для фокусированного узла
<PASCAL>
  loaded := Selection.ChildNodesLoaded;
</PASCAL>
Пример для узла с указанным идентификатором
<PASCAL>
  loaded := Selection.ChildNodesLoaded(id);
</PASCAL>

New in version 5.7.0.4510.

1.8.26.9.3. Визуальная навигация

1.8.26.9.3.1. Список/Дерево

VisibleRecordCount(): Integer

Возвращает количество видимых записей на экране.

Рекомендуется использовать вместо текущего метода новый TbtkScriptControllerObject.VisibleElementCount.

Return type:Integer
SetEditButtonDisable(FieldName, ButtonName: String; Disable: Boolean)

Управление доступом для кнопок Lookup# и/или Reset#, влияет на свойство ReadOnly поля выборки. То есть, запретив доступ к кнопке Lookup# и/или Reset#, поле автоматически становится не редактируемым.

Parameters:
  • FieldName (String) – Имя поля.
  • ButtonName (String) – Имя кнопки: Lookup# или Reset#.
  • Disable (Boolean) – Значение свойства ReadOnly для кнопки поля.

1.8.26.9.3.2. Другое

SetFocusedFieldByName(FieldName: String)

Метод позволяет осуществить переход курсора на другой столбец списка (дерева) в пределах текущей строки, а также на элемент панели фильрации.

Parameters:FieldName (String) – Имя слобца (имя поля), на которое необходимо перейти.
GetFocusedFieldName(): String

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

Return type:String

1.8.26.9.3.3. Список/Дерево

IsLastRecord(): Boolean

Метод возвращает True, если активная запись является последней в списке или дереве, с учетом сортировки, фильтрации и группировки.

Return type:Boolean
IsFirstRecord(): Boolean

Метод возвращает True, если активная запись является первой в списке или дереве, с учетом сортировки, фильтрации и группировки.

Return type:Boolean
LastRecord()

Метод делает последнию запись в выборке активной в соответствие с ее расположением в списке или дереве, с учетом сортировок и фильтрации.

FirstRecord()

Метод делает первую запись в выборке активной в соответствие с ее расположением в списке или дереве, с учетом сортировок и фильтрации.

NextRecord(): Boolean

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

Return type:Boolean
PriorRecord(): Boolean

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

Return type:Boolean
ReportNext()

Метод аналогичен RecordNext, но со следующим отличием: при вызове ReportNext будут пропускаться стоки-группировки, и переход будет осуществляться исключительно по записям. Именно эти (ReportNext, ReportFirst, ReportEOF) методы необходимо использовать, например, при подсчёте суммы какого-либо столбца выборки.

ReportEOF(): Variant

ReportFirst, ReportNext, ReportEOF – позволяют передвигаться по записям в selection в том порядке, в котором записи отображаются в гриде или дереве, т.е. с учетом сортировки, фильтрации и группировки. Методы аналогичны FirstRecord, NextRecord и т.д., но со следующими отличиями: При вызове FirstRecord будут раскрыты все группировки (узлы дерева). При вызове ReportNext будут пропускаться стоки-группировки, и переход будет осуществляться исключительно по записям. Именно эти методы необходимо использовать, например, при подсчёте суммы какого-либо столбца выборки.

Return type:Variant
ReportFirst()

Метод аналогичен методу RecordFirst, но со следующем отличием: при вызове FirstRecord будут раскрыты все группировки (узлы дерева). Именно эти (ReportNext, ReportFirst, ReportEOF) методы необходимо использовать, например, при подсчёте суммы какого-либо столбца выборки.

1.8.26.9.4. Выделение

SelectedValue(FieldIndex, Index: Integer): Variant

Возвращает значение поля с индексом FieldIndex выделенной записи с номером AIndex.

Parameters:
  • FieldIndex (Integer) – Индекс поля.
  • Index (Integer) – Номер записи.
Return type:

Variant

SelectedValueByName(FieldName: String; Index: Integer): Variant

Возвращает значение поля с именем FieldName выделенной записи с номером Index.

Parameters:
  • FieldName (String) – Системное имя поля.
  • Index (Integer) – Номер записи.
Return type:

Variant

SelectedRecordsCount(): Integer

Метод возвращает количество выделенных записей в выборке в режими MultiSelect, если нет выделенных записей - вернёт 0

Return type:Integer
Пример использования
<pascal>
  count := Selection.SelectedRecordsCount;
  ShowMessage('Выделено ' + count + ' строк');
<pascal>
MultiSelect(): Variant

Устанавливает возможность выбора нескольких записей в списке и дерева. Если свойство равно True, то выбор нескольких записей разрешен.

Return type:Variant

1.8.26.10. Серверная сессия

HasSession(): Boolean

Возвращает флаг наличия сессии у объекта Selection.

Return type:Boolean
Commit()

Фиксирует транзакцию в БД.

Rollback()

Откат текущей транзакции.

SavePoint(SavePointName: String)

Создает точку сохранения с заданным именем

Parameters:SavePointName (String) – Имя точки сохранения.
Пример использования
<pascal>
  selection.savepoint('TestSavePoint');
</pascal>
RollBackToSavePoint(SavePointName: String)

Откатывает транзакцию к ранее созданной точке сохранения (если это возможно). Для визуального обновления выборки после этого метода необходимо вызвать Refresh.

Attention

Не безопасный! Необходимо предусмотреть возможность возникновения исключений. Для безопасного отката используйте метод TbtkScriptSelectinObject.SafeRollBackToSavePoint.

Parameters:SavePointName (String) – Имя точки сохранения.
Пример использования
<pascal>
  selection.RollBackToSavePoint('TestSavePoint');
</pascal>
SafeRollBackToSavePoint(SavePointName: String)

Откатывает транзакцию к ранее созданной точке сохранения (если это возможно). Для визуального обновления выборки после этого метода необходимо вызвать Refresh.

Безопасный. Возможные исключения подавляются при исполнении SQL-запроса.

Parameters:SavePointName (String) – Имя точки соранения.
Пример использования
<pascal>
  selection.SafeRollBackToSavePoint('TestSavePoint');
</pascal>

1.8.26.11. Отчеты

CreateReport(ReportName: String; ReportVersionDate: TDateTime; Action: TReportViewMode; ShowWizard: Boolean; OpSelectionName: String; StyleFlag: TFormCreationFlags)

Процедура соездает отчёт по его системному имени и дате, по которой будет найдена актуальная версия шаблона.

Parameters:
  • ReportName (String) – Cистемное имя отчёта.
  • ReportVersionDate (TDateTime) – Дата, по которой будет найдена актуальная версия отчёта (если не задана, берётся SysDate). Тип даты TDateType.
  • Action (TReportViewMode) – Действие, которое небходимо произвести над отчётом после его создания. Возможные значения: {rvmPrint, rvmShow, rvmSave, rvmDesign}
  • ShowWizard (Boolean) – Флаг отображения мастера настройки отчётов (если указана главная выборка мастера) {0,1}
  • OpSelectionName (String) – Системное имя выборки, операции которой будут отображаться в главном меню окна при модальном просмотре построенного отчёта. Если не указана, подставляются выборки со стандартным набором команд (“Save as” и “Print”)
  • StyleFlag (TFormCreationFlags) – Флаг модального или немодального открытия окна просмотра отчёта {fcfModal, fcfMDI}. fcfMDI - работает только для отчетов на основе FastReport 4й версии.
Пример использования
<pascal>
  Selection.CreateReport(GetVar('sSystemName'), null, rvmShow, 1, '', fcfModal);
</pascal>
CreateReportEx(ReportName: String; ReportVersionDate: TDateTime; Action: TReportViewMode; ShowWizard: Boolean; OpSelectionName: String; StyleFlag: TFormCreationFlags; ParamNames: Array; ParamValues: Array)

Процедура предназначена для создания отчёта по его системному имени и дате, по которой будет найдена актуальная версия шаблона. Метод представляет рассширенную версию метода CreateReport, но в отличие от CreateReport позволяет передать дополнительные параметры.

Parameters:
  • ReportName (String) – Cистемное имя отчёта.
  • ReportVersionDate (TDateTime) – Дата, по которой будет найдена актуальная версия отчёта (если не задана, берётся SysDate).
  • Action (TReportViewMode) – Действие, которое небходимо произвести над отчётом после его создания. Возможные значения: {rvmPrint, rvmShow, rvmSave, rvmDesign}
  • ShowWizard (Boolean) – Флаг отображения мастера настройки отчётов (если указана главная выборка мастера) {0,1}
  • OpSelectionName (String) – Системное имя выборки, операции которой будут отображаться в главном меню окна при модальном просмотре построенного отчёта. Если не указана, подставляются выборки со стандартным набором команд (“Save as” и “Print”)
  • StyleFlag (TFormCreationFlags) – Флаг модального или немодального открытия окна просмотра отчёта {fcfModal, fcfMDI}. fcfMDI - работает только для отчетов на основе FastReport 4й версии.
  • ParamNames (Array) –

    Массив имен параметров отчета.

    Параметры:

    • ReadOnlyPreview со значением 1 запрещает редактирование построенного отчета из режима предпросмотра.
  • ParamValues (Array) – Массив значений параметров ParamNames отчета.
CreateReports(ProfileName: String; ReportVersionDate: TDateTime; Action: TReportViewMode; ShowWizard: Boolean; OpSelectionName: String; StyleFlag: TFormCreationFlags)

Процедура создает все отчёты по системному имени профиля.

Parameters:
  • ProfileName (String) – Cистемное имя отчёта.
  • ReportVersionDate (TDateTime) – Дата, по которой будет найдена актуальная версия отчёта (если не задана, берётся SysDate).
  • Action (TReportViewMode) – Действие, которое небходимо произвести над отчётом после его создания. Возможные значения: {rvmPrint, rvmShow, rvmSave, rvmDesign}
  • ShowWizard (Boolean) – Флаг отображения мастера настройки отчётов (если указана главная выборка мастера) {0,1}
  • OpSelectionName (String) – Системное имя выборки, операции которой будут отображаться в главном меню окна при модальном просмотре построенного отчёта. Если не указана, подставляются выборки со стандартным набором команд (“Save as” и “Print”)
  • StyleFlag (TFormCreationFlags) – Флаг модального или немодального открытия окна просмотра отчёта {fcfModal, fcfMDI}. fcfMDI - работает только для отчетов на основе FastReport 4й версии.
CreateReportsEx(ProfileName: String; ReportVersionDate: TDateTime; Action: TReportViewMode; ShowWizard: Boolean; OpSelectionName: String; StyleFlag: TFormCreationFlags; ParamNames, ParamValues: Variant)

Процедура создает все отчёты по системному имени профиля. Метод обладает расширенной функциональностью, по сравнению с CreateReports, позволяя передать дополнительные параметры отчета.

Parameters:
  • ProfileName (String) – Cистемное имя отчёта.
  • ReportVersionDate (TDateTime) – Дата, по которой будет найдена актуальная версия отчёта (если не задана, берётся SysDate).
  • Action (TReportViewMode) – Действие, которое небходимо произвести над отчётом после его создания.
  • ShowWizard (Boolean) – Флаг отображения мастера настройки отчётов (если указана главная выборка мастера).
  • OpSelectionName (String) – Системное имя выборки, операции которой будут отображаться в главном меню окна при модальном просмотре построенного отчёта.
  • StyleFlag (TFormCreationFlags) – Флаг модального или немодального открытия окна просмотра отчёта. Немодальный работает только для отчетов на основе FastReport 4й версии.
  • ParamNames (Variant) – Массив имён параметров, переданных в отчёт.
  • ParamValues (Variant) – Массив значений параметров, переданных в отчёт.
PrintInfos: TbtkScriptFieldPrintInfo

Коллекция мета-данных по размножаемым атрибутам, которые можно заполнить до вызова CreateReport. Используется при выводе в XLS файл.

Коллекция создается перед вызовом AfterOpen операции выборки. Разработчик должен сам заполнить структуру до вызова CreateReport.

Return type:TbtkScriptFieldPrintInfo
Пример использования
<pascal>
  Selection.ExecOpScript('#AfterOpen');
  Selection.PrintInfos['sCaption'].Caption := 'КАПШЕН';
  Selection.PrintInfos['nPrice[0]'].Caption := 'ПРАЙС 0';
  Selection.PrintInfos['nPrice[1]'].Caption := 'ПРАЙС 1';
  Selection.PrintInfos['nPrice[1]'].Style := 'Test_ForReadOnlyFld';
  Selection.PrintInfos['nPrice[0]'].HorizGroup := 'Group1';
  Selection.PrintInfos['nPrice[1]'].HorizGroup := 'Group1';

  Selection.PrintInfos['nLevel'].HorizGroup := 'Group2';
  Selection.PrintInfos['nCount'].HorizGroup := 'Group2';
  Selection.PrintInfos['sCaption'].HorizGroup := 'Group2';

  Selection.PrintInfos['nPrice[1]'].Order := 0;
  Selection.PrintInfos['nPrice'].Order := 2;
</pascal>

1.8.26.12. Olap(Deprecated)

OpenOLAPDimension(DimensionName: String)

Метод раскрывает измерение с именем DimensionName. Если указанное измерение находится на втором или более низком уровне, сначала будут открыты измерения предки.

Deprecated since version 5.0.0: Следует использовать Selection.OLAP.OpenDimension.

Parameters:DimensionName (String) – Имя измерения. (Имя измерения совпадает с именем атрибута выборки. Если измерение составное, его имя состоит из имён атрибутов выборки, разделённых точкой с запятой с пробелом. Точное имя измерения можно найти в дизайнере измерений OLAP-куба)
ShowDimensionMapEditor()

Метод открывает редактор изменений OLAP-куба.

Deprecated since version 5.0.0: Следует использовать Selection.OLAP.ShowDimensionMapEditor.

OpenOLAPColumnDimension(Level: Integer)

Метод раскрывает измерения с 1-го до Level уровня, расположенные в области столбцов.

Deprecated since version 5.0.0: Следует использовать Selection.OLAP.OpenColumnDimension.

Parameters:Level (Integer) – Уровень измерения.
LoadOLAPFrameSettings(ID: Variant): Boolean

Метод загружает и применяет сохранённую настройку для OLAP-фрейма с идентификатором ID. В случае успешного выполнения возвращает True.

Deprecated since version 5.0.0: Следует использовать Selection.OLAP.LoadFrameSettings.

Parameters:ID (Variant) – Идентификатор настройки.
Return type:Boolean
SaveOLAPFrameSettings(ID: Variant): Variant

Метод сохраняет сохранённую настройку с идентификатором AID.

Deprecated since version 5.0.0: Следует использовать Selection.OLAP.SaveFrameSettings.

Parameters:ID (Variant) – Идентификатор настройки.
Return type:Variant
OpenOLAPAllDimensions()

Метод раскрывает все измерения в OLAP-списке.

Deprecated since version 5.0.0: Следует использовать Selection.OLAP.OpenAllDimensions.

OpenOLAPRowDimension(Level: Integer)

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

Deprecated since version 5.0.0: Следует использовать Selection.OLAP.OpenRowDimension.

Parameters:Level (Integer) – Уровень измерения.

1.8.26.13. Формы и выборки

CreateForm(FormName, EntityName: String; FormType: TFormCreationFlags): TModalResult

Метод создает и показывает форму. Возвращает mrOk или mrCancel если FormType = fcfModal и mrNone если FormType = fcfMDI Если FormType = fcfModal, то ожидает закрытия формы.

Parameters:
  • FormName (String) – Имя формы
  • EntityName (String) – Имя выборки которая будет показана на форме
  • FormType (TFormCreationFlags) – Параметр определяет как будет показана форма (модально или как MDI-child)
Return type:

TModalResult

Пример использования
<Pascal>
  CreateForm('', 'SEL_RPT_Report.List', fcfMDI);
</Pascal>
CreateFormEx(FormName, EntityName: String; FormType: TFormCreationFlags; PropNames, PropValues: Array): TModalResult

Метод создает и показывает форму.

Возвращает mrOk или mrCancel если FormType = fcfModal и mrNone если FormType = fcfMDI

Если FormType = fcfModal, то ожидает закрытия формы.

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

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

Макрос передается в списке параметров. Имя макроса должно начинаться с символа ‘&’.

Changed in version 4.30.

  • Добавлена возможность при вызове открытия MDI форм передать параметры, позволяющие всегда открывать форму в новом окне, а также позволяющие передать имя операции, которая должна быть вызвана, если позиционируемся на уже существующем окне

  • Добавлен параметр позволяющий всегда открывать форму в новом окне, не проверяя, есть ли уже такая же открытая форма (Параметр “CreatingMode” значение “CreateNewForm” ).

    CreateFormEx('', 'SEL_RPT_Report.List', fcfMDI, ['CreatingMode'], ['CreateNewForm']);

  • Добавлена операция вызываемая в CreateFormEx после активации уже существовавшей формы (Событие OnFormActivatedAfterFindWindow).

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

Parameters:
  • FormName (String) – Имя формы
  • EntityName (String) – Имя выборки которая будет показана на форме
  • FormType (TFormCreationFlags) – Параметр определяет как будет показана форма (модально или как MDI-child)
  • PropNames (Array) – Массив строк имен параметров формы.
  • PropValues (Array) – Массив значений параметров PropNames формы.
Return type:

TModalResult

Пример использования
<Pascal>
  CreateFormEx('', 'SEL_RPT_Report.List', fcfMDI, ['Representation',
  'TabVisible','ExParam1'] ,['RoList', 0, 'Значение']);
</Pascal>

<Pascal>
  CreateFormEx('', 'SEL_RPT_Report.List', fcfMDI, ['Representation',
  '&macros','ExParam1'] ,['RoList', 'cSum < 100', 'Значение']);
</Pascal>
CreatePanelEx(FrameName, EntityName: String; ParamNames, ParamValues: Array)

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

Parameters:
  • FrameName (String) – Имя фрейма
  • EntityName (String) – Имя выборки, которой инициализируется внутренний Selection формы.
  • ParamNames (Array) – Массив имен параметров.
  • ParamValues (Array) – Массив значений параметров.
DoLookup(LookupControlClass, EntityName: String; LocateFieldNames, LocateFieldValues, ResultFieldNames: Array; MultiSelect: Boolean): TbtkLookupData

Отображает выборку в режиме выбора (в lookup-форме), возвращает результат в виде набора записей TbtkLookupData.

Parameters:
  • LookupControlClass (String) – Имя класса формы.
  • EntityName (String) – Cистемное имя выборки (если пусто, то определяется вызываемой формой).
  • LocateFieldNames (Array) – Массив имен атрибутов выборки по которым ищется запись для начального позиционирования.
  • LocateFieldValues (Array) – Вариантный массив значений для LocateFieldNames.
  • ResultFieldNames (Array) – Массив имен атрибутов выборки, значения которых будут возвращены как результат; В случае если необходимо вернуть значение атрибута из детальной выборки, в качестве массивов имен атрибутов передаются имена состоящие из: [имя выборки].[имя поля]. Для доступа к выборке с определенным отображением используется синтаксис: [имя выборки].[имя отображения].[имя поля]
  • MultiSelect (Boolean) – Возможен ли выбор нескольких записей из выборки.
Return type:

TbtkLookupData

Пример использования №1
<pascal>
R := DoLookup('TbtkLookupGridForm', 'maintree', ['id'], [2629000], ['id', 'sParentClass'], true);
if R.LookupResult = lrOk then
  MessageDlg(VarToStr(R.Data(0, 1)) + '->' + R.Data(1, 1), mtWarning, 'mbYes', 0 );
</pascal>
Пример использования №2: возврат значений из двух выборок.
<pascal>
  S := DoLookup('', 'SELRO_CNT_ContractChoose',
    ['SELRO_CNT_ContractChoose.id', 'SELROCL_CNT_ObligationChoose.id'],
    [GetVar('IDContract'), GetVar('IDObligation')],
    ['SELRO_CNT_ContractChoose.id', 'SELROCL_CNT_ObligationChoose.id'], false);

  if s.LookupResult=lrOk then
  begin
    ShowMessage(s.SelectData('SELRO_CNT_ContractChoose').RecCount);
    ShowMessage(s.SelectData('SELROCL_CNT_ObligationChoose').RecCount);
    setvar('IDContract', s.SelectData('SELRO_CNT_ContractChoose').Data[0,1]);
    setvar('IDObligation', s.SelectData('SELROCL_CNT_ObligationChoose').Data[0,1]);
    execsql('set');
  end;
</pascal>

Для доступа к вернувшимся значениям была использована структура: SelectData([имя выборки]).Data [AttrNo,RecNo]. Её использование необходимо при явном указании имени поля ([имя выборки].[имя поля]), если поле указано неявно ([имя поля]), то вернувшиеся данные будут доступны непосредственно в свойстве “Data”, как это сделано в примере №1.

See also

DoLookupEx(LookupControlClass, EntityName: String; LocateFieldNames, LocateFieldValues, ResultFieldNames: Array; MultiSelect: Boolean; PropNames, PropValues: Array): TbtkLookupData

Метод дополняет TbtkScriptSelectionObject.DoLookup() аргументами:

Parameters:
  • PropNames (Array) – Массив имен свойств.
  • PropValues (Array) – Массив значений свойств PropNames.
Return type:

TbtkLookupData

Пример использования №1
<Pascal>
  R := DoLookupEx('TbtkLookupTreeForm','MainTree',
    ['id'],[Null],['id','sCaption'],true,
    ['IDRoot','fnID','fnIDParent','fnHasChild','fnText','fnImageIndex','ImageListname'],
    [GetVar('id'),'id','IDParentClass','bHasChild','sCaption','ImageIndex','maintreeview']);

  if (R.LookupResult = lrOk) then
  begin
    MessageDlg( VarToStr(R.Data(0,1))+'->'+R.Data(1,1), mtWarning, 'mbYes', 0 );
  end;
</Pascal>
Пример использования №2: возврат значений из двух выборок.
<SQL>
  <Set>
    begin
      AnyAPI.SetIdContract(:id, :IDContract);
      AnyAPI.SetIdContract(:id, :IDObligation);
    end;
  </Set>
</SQL>

<Pascal>
  S := DoLookupEx('', 'SELRO_CNT_ContractChoose',
    ['SELRO_CNT_ContractChoose.id', 'SELROCL_CNT_ObligationChoose.id'],
    [GetVar('IDContract'), GetVar('IDObligation')],
    ['SELRO_CNT_ContractChoose.id', 'SELROCL_CNT_ObligationChoose.id'], false,
    ['Caption'],
    [GetFmtCaption('CONTRACTOBLFORCHOOSE', [GetVar('super$IDSettlerOut_HL'),GetVar('super$IDSettlerIn_HL')])]);

  if s.LookupResult=lrOk then
  begin
    ShowMessage(s.SelectData('SELRO_CNT_ContractChoose').RecCount);
    ShowMessage(s.SelectData('SELROCL_CNT_ObligationChoose').RecCount);
    SetVar('IDContract', s.SelectData('SELRO_CNT_ContractChoose').Data[0,1]);
    SetVar('IDObligation', s.SelectData('SELROCL_CNT_ObligationChoose').Data[0,1]);
    ExecSql('set');
  end;
</Pascal>

Для доступа к вернувшимся значениям была использована структура: SelectData([имя выборки]).Data [AttrNo,RecNo]. Её использование необходимо при явном указании имени поля ([имя выборки].[имя поля]), если поле указано неявно ([имя поля]), то вернувшиеся данные будут доступны непосредственно в свойстве “Data”, как это сделано в примере №1.

See also

FindFocusedSelection(RootForm: TbtkScriptFormObject): TbtkScriptSelectionObject

Метод возвращает фокусированную выборку. Поиск ведется в пределах указанной формы. Если форма не указана, то перебираются все выборки приложения.

Attention

Поиск ведется только по выборкам, имеющим контроллер. Например, Application.MainSelection контроллера не имеет.

Parameters:RootForm (TbtkScriptFormObject) – Форма, по которой ведется поиск фокусированной выборки. Если не задана, то перебираются все формы приложения.
Return type:TbtkScriptSelectionObject
Пример использования
<PASCAL>
  sel := Selection.FindFocusedSelection;
  if not VarIsNull(sel) then
  begin
    str := VarToStr(sel.EntityName) + '.' + VarToStr(sel.Representation);
    ShowMessage(str);
  end;
</PASCAL>
CreateSelectionsIterator(RootForm: TbtkScriptFormObject): TbtkSelectionsIterator

Метод создает объект перебора выборок TbtkSelectionsIterator. Входной параметр - форма, в пределах которой производится перебор. Если форма не задана, или указана главная форма приложения, то перебор ведется по всем выборкам.

Attention

Поиск ведется только по выборкам, имеющим контроллер. Например, Application.MainSelection контроллера не имеет.

Parameters:RootForm (TbtkScriptFormObject) – Форма, по которой ведется поиск фокусированной выборки. Если не задана, то перебираются все формы приложения.
Return type:TbtkSelectionsIterator
Пример использования
<PASCAL>
  form := Application.FindFormBySelection('SEL_TSG_FocusSelection_t18403');
  iterator := Selection.CreateSelectionsIterator(form);
  str := 'Все выборки приложения:' + #13#10;

  repeat
    sel := iterator.NextSelection;
    if not VarIsNull(sel) then
      str := str + VarToStr(sel.EntityName) + '.' +
      VarToStr(sel.Representation) + #13#10;
  until
    VarIsNull(sel);

  ShowMessage(str);
</PASCAL>

1.8.26.13.1. TReportViewMode

class TReportViewMode

Перечисление.

Режим открытия отчетов

rvmDesign

Открыть отчет для изменения

rvmPrint

Открыть отчет для печати

rvmSave

Открыть отчет для сохранения

rvmShow

Открыть отчет для предпросмотра

1.8.26.13.2. TbtkWatcherMode

class TbtkWatcherMode

Перечисление

Режим открытия файла.

wmAuto

Авто-определение режима. В случае, если при вызове уже запущен процесс приложения, которым следует открыть файл, выбирается режим wmProcess, иначе режим wmFile.

wmFile

Считается, что файл редактируется, пока его нельзя открыть на редактирование. Основан на том, что многие приложения при открытии занимают файл, не допуская его редактирования другими приложениями. Данный режим подходит не ко всем приложениям (например, приложение “Блокнот” не запрещает другим приложениям редактировать файл).

wmProcess

Считается, что файл редактируется, пока работает процесс приложения, открывшего этот файл. Как только процесс завершается, считается, что редактрование завершено. Данный режим подходит не ко всем приложениям (например, приложение MS Word для открытия нескольких файлов использует один и тот же процесс, который завершается после закрытия всех открытых файлов). Следует по возможности избегать использование данного режима.

1.8.26.13.3. TbtkUserActionType

class TbtkUserActionType

Перечисление

uaNextControl

Осуществится переход на следующий контрол (ячейку)

uaUnknown

Действие не известно

1.8.26.13.4. TbtkSelectionRefreshMode

class TbtkSelectionRefreshMode

Перечисление

rmCloseOpen
rmNormal

1.8.26.13.5. TbtkScriptLocateOption

class TbtkScriptLocateOption

Перечисление

Параметры поиска записи для функции TbtkScriptSelectionObject.Locate

loCaseInsensitive

Поиск нечувствителен к регистру символов.

loPartialCompare

Опция похожа на TbtkScriptLocateOption.loPartialKey, но поиск производится по произвольному вхождению подстроки в строку. То есть, при поиске слова “HAM” будет найдена строка “HAMM”, “HAMMER” и “MR HAMMER”.

Параметр неприменим к транспонированным датасетам.

loUp

Поиск производиться вверх по датасету от текущей записи к первой.

Параметр неприменим к транспонированным датасетам.

loNext

Поиск производиться вниз по датасету от текущей записи к последней.

Параметр неприменим к транспонированным датасетам.

loNearest

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

Параметр неприменим к транспонированным датасетам.

loPartialKey

Поиск ищет по частичному вхождению ключа поиска с начала. Например при поиске слова “HAM” будет найдена строка со значением “HAMMER”, но не “MR HAMMER”.

1.8.26.13.6. TLocateOptions (Deprecated)

class TLocateOptions

Перечисление

Определяет значения параметров метода Locate выборки

loPartialKey

Искомая строка может быть частью ключевого значения. Например: при поиске по строке “авто”, будут найдены как “авто”, так и “автомобиль”

Ключевое значение может включать искомую строку

loCaseInsensitive

Поиск по значению без учёта регистра.

1.8.26.13.7. TbtkScriptFieldObject

class TbtkScriptFieldObject

TbtkScriptFieldObject

FieldName: String

Имя поля (атрибута).

Аттрибут только для чтения

Return type:String
Visible: Integer

Свойство управляет видимостью атрибута. Также можно использовать методы TbtkScriptSelectionObject.SetFieldsVisible или TbtkScriptSelectionObject.SetAttributeVisible.

Return type:Integer
EditMask: String

Свойство управляет маской ввода.

Return type:String
Mandatory: Integer

Выделяет редактор как обязательный для заполнения. Распространяется на следующие типы редакторов: время, дата, дата-время, фиксированный выпадающий список, выпадающий список по запросу, редактор в строке, редактор с кнопкой, денежный редактор, редактор www. Установка свойства в True, включает выделение редактора, как обязательного для заполнения.

Return type:Integer
ColumnWidth: Integer

Свойство управляет шириной колонки атрибута (Поля) во фреймах с таблицей (Grid) или дерева (Tree).

Return type:Integer
ReadOnly: Integer

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

Return type:Integer
DataType: TFieldType

Тип данных.

Аттрибут только для чтения

Return type:TFieldType
Пример использования
<pascal>
  case Selection.FindField('bCheckInterval').DataType of
    ftString: showmessage('String');
    ftInteger, ftFloat: showmessage('Number');
    ftDate, ftDateTime: showmessage('Date');
  end;
</pascal>

1.8.26.13.8. TFieldType

class TFieldType

Перечисление

Тип данных параметра PL/SQL скрипта.

ftSmallint

Поле 16-битных целых чисел

ftBoolean

Логическое поле

ftTime

Поле времени

ftOraClob

Поле CLOB данных в таблицах Oracle 8

ftTimeStamp

Поле даты и времени, доступное через dbExpress

ftBlob

Поле массивов двоичных данных

ftDateTime

Поле даты и времени

ftDate

Поле даты

ftCurrency

Денежное поле

ftFloat

Поле вещественных чисел

ftWord

Поле 16-битных целых положительных чисел

ftInteger

Поле 32-битных целых чисел

ftString

Поле символов или строк

ftWideString

Поле строк в кодировке Unicode

ftWideMemo

Поле CLOB данных в кодировке Unicode в таблицах Oracle

1.8.26.13.9. TbtkScriptFormObject

class TbtkScriptFormObject

TbtkScriptFormObject

Width: Integer

Ширина формы в пикселях, без учёта внешних границ окна.

New in version 5.6.0.4138.

Height: Integer

Высота формы в пикселях, без учёта внешних границ окна и его заголовка.

New in version 5.6.0.4138.

EvokedSelectionId: String

Идентификатор выборки создавшей форму

Аттрибут только для чтения

Return type:String

Attention

Если форма создана “не Lookup-ным” фреймом (то есть фреймом, не владеющим собственной выборкой, к примеру, TbtkGridPanelFrame), то данное свойство вернет идентификатор мастера этого “не Lookup-ного” фрейма

GetMainFrameSelection(): TbtkScriptSelectionObject

Возвращает выборку формы.

Return type:TbtkScriptSelectionObject
Пример использования
<pascal>
  FormMDI := Application.GetActiveMDIWindow();
  Selection := FormMDI.GetMainFrameSelection;
</pascal>
Close()

Метод закрывает окно. Вызов аналогичен нажатию на кнопку закрытия окна в верхнем правом углу.

FindSelectionEx(EntityName: string; ParamNames, ParamValues: Variant): TbtkScriptSelectionObject

Ищет выборку на активной форме по системному имени выборки и отображению.

Parameters:
  • EntityName (Variant) – Системное имя выборки.
  • ParamNames (Variant) –

    Массив имён параметров. Может принимать следующие значения:

    Representation
    Отображение
    FindChild
    Поиск выборки только на текущем фрейме и компонентах расположенных на нем.
    PrevSelection
    Выборка, с фрейма которой начнётся поиск.
  • ParamValues (Variant) – Массив значений параметров.
Return type:

TbtkScriptSelectionObject

FindSelection(EntityName: string): TbtkScriptSelectionObject

Ищет выборку на текущей форме по системному имени выборки.

Parameters:EntityName (string) – Имя выборки.
Return type:TbtkScriptSelectionObject
BringToFront()

Метод делает немодальную форму активной, и передает ей фокус. Если в приложении есть открытое модальное окно, форма не активируется.

1.8.26.13.10. TbtkScriptCreateFormParamsObj

class TbtkScriptCreateFormParamsObj

Класс обеспечивает доступ к параметрам переданным в CreateFormEx.

Values

Массив значений парметров c доступом по индексу.

Пример использования
<PASCAL>
  Result := '';
  Count := Selection.CreateFormParams.Count;
  Result := 'Количество параметров переданных при создание формы: ' + IntToStr(Count);
  Result := Result + #13#10 + 'Параметры:' + #13#10;

  for i := 0 to Count - 1 do
  begin
    Result := Result + '('+ IntToStr(i)+')' + 'Name:' + Selection.CreateFormParams.Names[i] + '; ' +
     'Value:'+ VarToStr(Selection.CreateFormParams.Values[i]) + '; '+
     'ValueByName:' + VarToStr(Selection.CreateFormParams.GetValueByName(Selection.CreateFormParams.Names[i])) + ';' + #13#10;
  end;
  ShowMessage(Result);
</PASCAL>
Names

Массив имён параметров с доступом по индексу параметра в списке.

Пример использования
<PASCAL>
  Result := '';
  Count := Selection.CreateFormParams.Count;
  Result := 'Количество параметров переданных при создание формы: ' + IntToStr(Count);
  Result := Result + #13#10 + 'Параметры:' + #13#10;

  for i := 0 to Count - 1 do
  begin
    Result := Result + '('+ IntToStr(i)+')' + 'Name:' + Selection.CreateFormParams.Names[i] + '; ' +
     'Value:'+ VarToStr(Selection.CreateFormParams.Values[i]) + '; '+
     'ValueByName:' + VarToStr(Selection.CreateFormParams.GetValueByName(Selection.CreateFormParams.Names[i])) + ';' + #13#10;
  end;
  ShowMessage(Result);
</PASCAL>
Count

Количество переданных параметров.

Пример использования
<PASCAL>
  Result := '';
  Count := Selection.CreateFormParams.Count;
  Result := 'Количество параметров переданных при создание формы: ' + IntToStr(Count);
  Result := Result + #13#10 + 'Параметры:' + #13#10;

  for i := 0 to Count - 1 do
  begin
    Result := Result + '('+ IntToStr(i)+')' + 'Name:' + Selection.CreateFormParams.Names[i] + '; ' +
     'Value:'+ VarToStr(Selection.CreateFormParams.Values[i]) + '; '+
     'ValueByName:' + VarToStr(Selection.CreateFormParams.GetValueByName(Selection.CreateFormParams.Names[i])) + ';' + #13#10;
  end;
  ShowMessage(Result);
</PASCAL>
GetValueByName(Name: String): Variant

Функция возвращает значение параметра по имени.

Parameters:Name (String) – Имя параметра.
Return type:Variant
Пример использования
<PASCAL>
  Result := '';
  Count := Selection.CreateFormParams.Count;
  Result := 'Количество параметров переданных при создание формы: ' + IntToStr(Count);
  Result := Result + #13#10 + 'Параметры:' + #13#10;

  for i := 0 to Count - 1 do
  begin
    Result := Result + '('+ IntToStr(i)+')' + 'Name:' + Selection.CreateFormParams.Names[i] + '; ' +
     'Value:'+ VarToStr(Selection.CreateFormParams.Values[i]) + '; '+
     'ValueByName:' + VarToStr(Selection.CreateFormParams.GetValueByName(Selection.CreateFormParams.Names[i])) + ';' + #13#10;
  end;
  ShowMessage(Result);
</PASCAL>

1.8.26.13.11. TbtkFormStyle

class TbtkFormStyle

Перечисление

Стиль формы

osLookUP
osModal
osNormal

1.8.26.13.12. TbtkPersistentType

class TbtkPersistentType

Перечисление

Указывает место, куда сохраняются сериализованные стойкие (Persistent) переменные. Если значение свойства Persistent отлично от ptNone, переменная считается стойкой.

ptRegistry

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

ptNone

Переменная не является “стойкой” (не сохраняется при закрытии выборки).

1.8.26.13.13. T3State

class T3State

Перечисление

stUnknown
stFalse
stTrue

1.8.26.13.14. TbtkNodeExpandMode

class TbtkNodeExpandMode

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

Перечисление

emExpandAndLoadNodes

Раскрывать узлы и загружать, если еще не прогруженны.

emExpandOnlyLoadedNodes

Раскрывать только прогруженные узлы.

1.8.26.13.15. TbtkOperationTextMarkupType

class TbtkOperationTextMarkupType

Перечисление.

Тип разметки текста скрипта.

otmtAutoDetect

Автоопределение. Проверяет наличие строки <PASCAL в тексте операции, если пристуствует, то тип определяется как otmtXML, иначе otmtNone.

otmtNone

В тексте операции отсутствуют XML тэги, то есть содержится только одна операция.

otmtXML

В тексте операции присутствуют XML тэги, подразумевающие разбиение текста на несколько операций.