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 See also
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
- Метод следует использовать, если в коде производится большое количество операций с данными и их структурой. В этом случае приложение не будет реагировать на каждое изменение, а сделает это один раз при вызове
EnableControls
. - Следует учитывать, что вызов
EnableControls
приводит к полному перечитыванию всех данных выборки элементом управления. Если это большая выборка, то, например, табличное представление даст ощутимую просадку производительности на чтении. - Выбирать, использовать блокировку или нет, проще всего экспериментально, замеряя время выполнения кода. Т.к. множество операций над данными локальны, такие как установка значения поля, и не приводят к большим потерям производительности даже при последовательной обработке каждого из них.
- Метод следует использовать, если в коде производится большое количество операций с данными и их структурой. В этом случае приложение не будет реагировать на каждое изменение, а сделает это один раз при вызове
-
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: следует использовать:
TbtkScriptOperationOptionsObject.SetStandardDisabled()
для блокировки/разблокировки стандартных операций выборки;TbtkScriptSelectionObject.SetFieldsReadOnly()
для изменения свойства “Только для чтения” указанным полям выборки.
- ActName (Variant) –
-
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:
-
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>
-
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
- Depth (Integer) –
-
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: <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: <Pascal> CreateFormEx('', 'SEL_RPT_Report.List', fcfMDI, ['Representation', 'TabVisible','ExParam1'] ,['RoList', 0, 'Значение']); </Pascal> <Pascal> CreateFormEx('', 'SEL_RPT_Report.List', fcfMDI, ['Representation', '¯os','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: <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>
<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
TbtkScriptSelectionObject.DoLookupEx()
- Алиас для краткого обращения
DoLookup()
-
DoLookupEx
(LookupControlClass, EntityName: String; LocateFieldNames, LocateFieldValues, ResultFieldNames: Array; MultiSelect: Boolean; PropNames, PropValues: Array): TbtkLookupData¶ Метод дополняет
TbtkScriptSelectionObject.DoLookup()
аргументами:Parameters: - PropNames (Array) – Массив имен свойств.
- PropValues (Array) – Массив значений свойств PropNames.
Return type: <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>
<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
TbtkScriptSelectionObject.DoLookup()
- Алиас для краткого обращения
DoLookupEx()
-
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¶
1.8.26.13.2. TbtkWatcherMode¶
-
class
TbtkWatcherMode
¶ Перечисление
Режим открытия файла.
-
wmAuto
¶ Авто-определение режима. В случае, если при вызове уже запущен процесс приложения, которым следует открыть файл, выбирается режим wmProcess, иначе режим wmFile.
-
wmFile
¶ Считается, что файл редактируется, пока его нельзя открыть на редактирование. Основан на том, что многие приложения при открытии занимают файл, не допуская его редактирования другими приложениями. Данный режим подходит не ко всем приложениям (например, приложение “Блокнот” не запрещает другим приложениям редактировать файл).
-
wmProcess
¶ Считается, что файл редактируется, пока работает процесс приложения, открывшего этот файл. Как только процесс завершается, считается, что редактрование завершено. Данный режим подходит не ко всем приложениям (например, приложение MS Word для открытия нескольких файлов использует один и тот же процесс, который завершается после закрытия всех открытых файлов). Следует по возможности избегать использование данного режима.
-
1.8.26.13.3. TbtkUserActionType¶
1.8.26.13.4. TbtkSelectionRefreshMode¶
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:
-
FindSelection
(EntityName: string): TbtkScriptSelectionObject¶ Ищет выборку на текущей форме по системному имени выборки.
Parameters: EntityName (string) – Имя выборки. Return type: TbtkScriptSelectionObject
-
BringToFront
()¶ Метод делает немодальную форму активной, и передает ей фокус. Если в приложении есть открытое модальное окно, форма не активируется.
See also
Подробнее про активацию встроенных форм в Алгоритмы активации встроенных форм
-
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¶
1.8.26.13.12. TbtkPersistentType¶
-
class
TbtkPersistentType
¶ Перечисление
Указывает место, куда сохраняются сериализованные стойкие (Persistent) переменные. Если значение свойства Persistent отлично от ptNone, переменная считается стойкой.
-
ptRegistry
¶ Переменная является стойкой и сохраняет себя, и своё значение в реестре приложения при закрытии выборки.
-
ptNone
¶ Переменная не является “стойкой” (не сохраняется при закрытии выборки).
-
1.8.26.13.14. TbtkNodeExpandMode¶
1.8.26.13.15. TbtkOperationTextMarkupType¶
-
class
TbtkOperationTextMarkupType
¶ Перечисление.
Тип разметки текста скрипта.
-
otmtAutoDetect
¶ Автоопределение. Проверяет наличие строки
<PASCAL
в тексте операции, если пристуствует, то тип определяется как otmtXML, иначе otmtNone.
-
otmtNone
¶ В тексте операции отсутствуют XML тэги, то есть содержится только одна операция.
-
otmtXML
¶ В тексте операции присутствуют XML тэги, подразумевающие разбиение текста на несколько операций.
-