Мельница данных- Интерфейсы взаимодействия с внешними подсистемами  (раздел целиком)  (27.02.2024)
Интерфейсы взаимодействия с внешними подсистемами

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


1. Интерфейс IContext
01  IContext = interface(IDispatch)
02    ['{79847D79-A3BE-408F-B59F-662B91BC6350}']
03    function Handle: Integer;
04    function getName(ID: OleVariant): WideString;
05    function getDescription(ID: OleVariant): WideString;
06    function createDataSet(const TargetClassName: WideString):
07      IContextDataSet;
08    function executeMethod(const ClassName: WideString;
09      const MethodName: WideString;
10      Params: OleVariant): OleVariant;
11    function executeReport(const ClassName: WideString;
12      const TemplateName: WideString;
13      Params: OleVariant): IDispatch;
14    function getPropValue(const ClassName: WideString;
15      const PropName: WideString;
16      const ID: OleVariant): OleVariant;
17    procedure setPropValue(const ClassName: WideString;
18      const PropName: WideString;
19      const ID: OleVariant; Value: OleVariant);
20    function select(const ClassName: WideString;
21      QueryItems: OleVariant): IDispatch;
22    function enumerationItem(ItemIdentifier: OleVariant): WideString;
23    function getClass(const ClassName: WideString): WideString;
24    function createGUID: WideString;
25    procedure processStart(const Description: WideString;
26      ItemCount: Integer);
27    procedure processStep;
28    procedure processStop;
29    function PlaceDataSet(const Range: IDispatch;
30      const DataSet: IContextDataSet;
31      ShiftRows: WordBool; ShiftColumns: WordBool): Integer;
32    procedure DebugString(const Message: WideString);
33    procedure ExportObject(var Document: OleVariant; const ID: WideString;
34      const ClassID: WideString);
35    function callRoutine(const ClassName, RoutineName: WideString;
36      var RetValue: OleVariant; const ScriptPart: OleVariant): WordBool;
37    function getOleObject(const ClassID, AccessibleFileName: WideString): IDispatch;
38    function getResource(const Name: WideString): WideString;
39    function getTempFileName(const Extension: WideString): WideString;
40    function selectVaue(const ClassDomain: WideString;
41      const ExpressionContext: IContextExpressionInfo;
42      var Value: OleVariant): WordBool;
43    procedure raiseManagedException(const ExceptionMessage: WideString);
44    function getCRC(Data: OleVariant): WideString;
45    function downloadData(const Host: WideString; const Url: WideString;
46      const UserName: WideString; const Password: WideString;
47      NegotiateAuth: WordBool; PostData: OleVariant;
48      const PostContentType: WideString; PostDataIsBinary: WordBool;
49      CanCache: WordBool; NewSession: WordBool; TimeOut: Integer): OleVariant;
50    function createBinaryData: IDispatch;
51    function BinaryToBitmap(const Data: IDispatch): IDispatch; safecall;
52    function editValues(const ValuesList: WideString; const Title: WideString;
53      UseTabs: WordBool; HideOKButton: WordBool;
54      const ScriptPart: OleVariant): WordBool;
55    function MsgBox(const Prompt: WideString; Buttons: LongWord;
56      const Title: WideString;
57      const HelpFile: WideString; Context: LongWord): Integer;
58    function ShowMsgBox(const Prompt: WideString; Buttons: LongWord;
59      const Title: WideString;
60      const HelpFile: WideString; Context: LongWord): Integer;
61    function buildNamedFile(const Data: IDispatch; const StoredFileName: WideString;
62                            Propmpt: WordBool; Compress: WordBool): IDispatch;
63    procedure parseNamedFile(const NamedFile: IDispatch; out FileName: OleVariant;
64                             out Data: OleVariant);
65    procedure showView(const ViewName: WideString; Key: OleVariant;
66                       const DetailPropertyName: WideString);
67    procedure showDataSet(const DataSet: ContextDataSet; const Caption: WideString;
68                          ColumnCaptions: OleVariant; ColumnOnChangeHandlers: OleVariant;
69                          TakeActionsFromView: OleVariant);
70    function executeConsoleProcess(const CommandLine: WideString; MaxDuration: Integer;
71                                   const OutputData: OleVariant): Integer;
72    function createRaster: IDispatch;
73    function createZIPArchive: IDispatch;
74    function ConvertExcel(Source: OleVariant; const Format: WideString): IDispatch;
75    property ContextObject: IDispatch;
76    property Language: WideString;
77    property UserName: WideString;
78    property NegotiateAuth: WordBool;
79    property Variable[const Name: WideString; Persistent: WordBool]: OleVariant;
80  end;

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

  • Функция Handle возвращает дескриптор главного окна приложения.
  • Функция getName возвращает имя объекта по его идентификатору.
  • Функция getDescription возвращает наименование объекта по его идентификатору.
  • Функция createDataSet создает набор данных, основанный на экземплярах класса, имя которого передано как параметр. Возвращаемый объект реализует интерфейс IContextDataSet.
  • Функция executeMethod осуществляет вызов метода с параметрами. Имя класса передается в параметре ClassName, имя вызываемого метода - в параметре MethodName. Если вызываемый метод явяется функцией, то результат ее выполнения возвращается как результат вызова executeMethod. Параметры вызова метода передаются через параметр Params следующим образом:
    • Для методов класса без параметров можно передавать любое значение, например, Null.
    • Для методов класса, имеющих один параметр, значение Params есть значение этого единственного параметра.
    • Для методов класса, имеющих более одного параметра, значение Params есть массив значений параметров.
      Пример
      VBScript, VBA LValue = executeMethod("TObject", "Round", Array(10.24, 1))
      JScript LValue = executeMethod("TObject", "Round", new Array(10.24, 1));
      Object Pascal LValue := executeMethod('TObject', 'Round', VarArrayOf([10.24, 1]));
    • Для методов экземпляра без параметров значение Params есть идентификатор объекта, для которого вызывается метод.
    • Для методов экземпляра, имеющих параметры, значение Params есть массив значений параметров. При этом первым элементом массива является идентификатор объекта, для которого вызывается метод.
      Пример
      VBScript, VBA executeMethod "TObject", "MergeTo", Array(LOldObject, LNewObject)
      JScript executeMethod("TObject", "MergeTo", new Array(LOldObject, LNewObject));
      Object Pascal executeMethod('TObject', 'MergeTo', VarArrayOf([LOldObject, LNewObject]));
  • Функция executeReport осуществляет вызов отчета с параметрами. Имя класса передается в параметре ClassName, имя вызываемого метода - в параметре TemplateName. Параметры вызова передаются в параметре Params аналогично вызову executeMethod. В результате вызова функции возвращается ссылка на рабочую книгу Microsoft Excel, документ Microsoft Word и так далее. Судьба приложения, в рамках которого создан возвращенный объект, остается на усмотрение вызывающей стороны. Если вызывающая сторона предполагает взаимодействие объекта с пользователем, то необходимо обеспечить видимость объекта-приложения (Application.Visible := True;). В противном случае необходимо закрыть приложение после освобождения объекта документа (Application.Quit).
  • Функция getPropValue возвращает значение свойства объекта. Имя класса, имя свойства и идентификатор объекта задаются в параметрах.
  • Процедура setPropValue устанавливает значение свойства объекта в значение, заданное параметром Value. Для очистки значения можно использовать пустую строку или значение Null. Имя класса, имя свойства и идентификатор объекта задаются в параметрах.
  • Функция select возвращает ссылку на XML-документ, содержащий в корневом элементе элементы, представляющие собой записи набора данных на основе класса ClassName (с полями, разнесенными по элементам), определяемого структурой параметра QueryItems.
  • Функция enumerationItem возвращает идентификатор элемента перечисления по имени.
    Пример
    VBScript, VBA LItemID = enumerationItem("rsReplicatableMetadata")
    JScript LItemID = enumerationItem("rsReplicatableMetadata");
    Object Pascal LItemID := enumerationItem('rsReplicatableMetadata');
  • Функция getClass возвращает идентификатор объекта типа Класс TClass (Классы) по имени.
    Пример
    VBScript, VBA LClassID = getClass("TDocumentType")
    JScript LClassID = getClass("TDocumentType");
    Object Pascal LClassID := getClass('TDocumentType');
  • функция createGUID является оберткой над функцией Windows API CoCreateGuid. Возвращает сгенерированный глобально-уникальный идентификатор, преобразованный в строку.
  • процедура processStart информирует систему о необходимости показать окно выполнения длительного процесса. Текст, описывающий процесс (он появляется в показываемом окне) задается параметром Description. В случае, если есть возможность определить количество "шагов" процесса, то это количество необходимо передать в параметре ItemCount. В случае, если параметр ItemCount больше нуля, окно выполнения будет снабжено индикатором прогресса. Если значение ItemCount равно нулю, то окно появится без индикатора прогресса. Если значение ItemCount меньше нуля, то решение о появлении окна будет принято системой самостоятельно на основании загрузки процессора и окно процесса не появится, если процесс завершится достаточно быстро.
  • процедура processStep информирует систему о завершении очередного "шага" процесса, что найдет отражение в индикаторе прогресса окна выполнения длительного процесса, если таковые случатся.
  • процедура processStop информирует систему о завершении длительного процесса, что приведет к закрытию окна выполнения длительного процесса, если таковое случится.
  • функция PlaceDataSet осуществляет перенос данных из набора, задаваемого параметром DataSet в некоторое место документа Microsoft Office. Место назначения определяется параметром Range следующим образом:
    Microsoft Word
    • Объект Range. По месту расположения этого объекта будет создана таблица (Table), в которой будут размещены данные из набора.
      Пример
      PlaceDataSet ThisDocument.Bookmarks("BookMarkName").Range, LDataSet
      Пример
      PlaceDataSet Selection.Range, LDataSet
    • Объект Document. В самом начале переданного документа будет создана таблица (Table), в которой будут размещены данные из набора.
      Пример
      PlaceDataSet ThisDocument, LDataSet
    Microsoft Excel
    • Объект Range. По месту расположения этого объекта (диапазона) будут размещены данные из набора. Если параметр ShiftRows задан и равен True, то заданный диапазон будет расширен вниз на необходимое количество строк, и информация, лежащая ниже переданного диапазона, будет по-прежнему лежать ниже. Если нет, то она (скорее всего) будет затёрта данными набора. Если параметр ShiftColumns задан и равен True, то этот диапазон будет расширен вправо на необходимое количество столбцов, и информация, лежащая правее переданного диапазона, будет по-прежнему лежать правее. Если нет, то она (скорее всего) будет затёрта данными набора.
      Пример
      PlaceDataSet Range("C4"), LDataSet
    • Объект WorkSheet. На переданном листе будут размещены данные из набора.
      Пример
      PlaceDataSet WorkSheets("HiddenSheet"), LDataSet
    Функция возвращает количество размещенных записей.
  • процедура DebugString выводит переданную в качестве аргумента строку в отладочный монитор.
  • процедура ExportObject осуществляет экспорт информации об объекте, задаваемом параметром ID в XML-документ, передаваемый в параметре Document. Если объект документа не был создан, то он создается автоматически. Если документ не имеет корневого узла, он будет создан автоматически.
    Пример
    01set LDataSet = CreateDataSet("TSecurityAccount")
    02
    03LDataSet.AddQueryItem qpWhat, "ID"
    04
    05set LDocument = CreateObject("Msxml2.DOMDocument.4.0") 'Не обязательно.
    06
    07while not LDataSet.Eof
    08  ExportObject LDocument, LDataSet.Field("ID")
    09  LDataSet.Next
    10wend
    11
    12LDocument.save "c:\RolesAndUsers.xml"
          
  • Функция callRoutine осуществляет вызов подпрограммы. Параметры будут запрошены у пользователя обычным порядком (с показом формы задания параметров, отработки ее скрипта и т. д.). Имя класса передается в параметре ClassName, имя вызываемой подпрограммы - в параметре RoutineName. Если пользователь разрешил выполнение подпрограммы (либо для выполнения не требовалось разрешения пользователя), функция вернет True, иначе False. Значение, возвращаемое подпрограммой, может быть возвращено через необязательный параметр RetValue. Через значение необязательного параметра ScriptPart можно передать скрипт на языке VBScript, который будет "приклеен" сверху к скрипту формы параметров вызываемой подпрограммы.
  • Функция getOleObject возвращает ссылку на Ole-объект с идентификатором класса, переданном в параметре ClassID. Объект создается на основе библиотеки кода, сохраненной в доступном файле с именем, заданным параметром AccessibleFileName. Регистр символов имени доступного файла важен.
  • Функция getResource возвращает значение ресурсной строки по имени ресурса (элемента перечислимого домена Resource strings или перевода (объекта класса TLanguageTranslation).
    Пример
    MsgBox getResource("rssMyErrorMessage")
          
  • Функция getTempFileName возвращает сгенерированное системой имя временного файла с расширением, переданным в параметре Extension.
  • Функция selectVaue позволяет пользователю выбрать значение на основе ссылочного домена, имя которого передается в параметре ClassDomain. Вызывающая сторона может реализовать интерфейс IContextExpressionInfo, через который передается информация о контексте вызова для интерпретации выражений условий отбора, и передать ссылку на него через параметр ExpressionContext. Выбранное значение передается в обе стороны через параметр Value. Если пользователь подтвердил выбор значения, функция возвращает значение True, и устанавливает значение параметра Value, равное идентификатору выбранного пользователем объекта. Если пользователь отказался от выбора, функция возвращает значение False.
  • Процедура raiseManagedException возбуждает управляемую исключительную ситуацию с сообщением для пользователя, заданным параметром ExceptionMessage.
  • Функция getCRC возвращает шестнадцатиричное представление контрольной суммы переданных в параметре Data данных. Параметр может быть
    • Объектом, реализующим интерфейс IBinaryData
    • Объектом, реализующим интерфейс IStream
    • Объектом, реализующим интерфейс ISequentialStream
    • Объектом, реализующим интерфейс IFile объектной модели FileSystemObject
    • Строкой данных. Строка будет преобразована в байты в соответствии с кодировкой UTF-8.
  • Функция downloadData осуществляет обращение к указанному ресурсу по протоколу http (https), и возвращает ответ сервера в виде объекта, реализующего интерфейс IBinaryData. Параметр Host определяет http-сервер, параметр Url - Url, к которому будет происходить обращение. Параметры UserName и Password определяют имя пользователя и пароль, если http-сервер требует авторизовать пользователя. Параметр NegotiateAuth устанавливает режим аутентификации. (Basic или Negotiate). Параметры PostData, PostContentType и PostDataIsBinary определяют содержимое тела POST-запроса (если не определено, функция отправит GET-запрос). Параметр CanCache позволяет использовать локальный кеш http-ответов. Параметр NewSession требует принудительного создания новой сессии при вызове функции. Параметр TimeOut определяет максимальное время ожидания ответа в секундах.
  • Функция createBinaryData создает пустой объект, реализующий интерфейс IBinaryData.
  • Функция BinaryToBitmap  конвертирует переданный графический файл в формат BMP. Объекты во входном и выходном параметрах должны реализовывать интерфейс IBinaryData.
  • Функция editValues создает и показывает форму редактирования группы значений. Параметр ValuesList содержит идентификатор объекта класса TObjectList. Этот список содержит ссылки на редактируемые значения (объекты класса TTypedValue), и командные кнопки формы (объекты класса TTypedValueButton). Параметр Title определяет заголовок формы, параметр UseTabs определяет, будут ли показаны закладки на форме редактирования. Параметр HideOKButton позволяет скрыть кнопку "OK" на показываемой форме. Параметр ScriptPart определяет скрипт показываемой формы.

    Пример
    01  LValue1 = executeMethod ("TTypedValue", "CreateStrValue", _
    02    Array("Value1", "Первый параметр", Null, Null, _
    03    "TLongString", Null, Null, Null, Null, Null, "Значение по  умолчанию первого параметра"))
    04  LValue2 = executeMethod ("TTypedValue", "CreateStrValue", _
    05    Array("Value2", "Второй параметр", Null, Null, _
    06    "TLongString", Null, Null, Null, Null, Null, "Значение по  умолчанию второго параметра"))
    07
    08  LValues = executeMethod("TObjectList", "CreateFromString", _
    09    LValue1 & ";" & LValue2)
    10
    11  if editValues(LValues, "Введите два строковых значения, друзья", True, False, "") then
    12    MsgBox getPropValue("TTypedValue", "StrValue", LValue1) & _
    13      " " & _
    14      getPropValue("TTypedValue", "StrValue", LValue2)
    15  end if
    16
    17  executeMethod "TObject", "Destroy", LValues
    18  executeMethod "TObject", "Destroy", LValue1
    19  executeMethod "TObject", "Destroy", LValue2
            

    Пример
    01  LScriptPart =  "Buttons(""NextButton"").Enabled = ParentForm.NavigatorCanNext" & Chr(10) & _
    02    "Buttons(""PrevButton"").Enabled = ParentForm.NavigatorCanPrevious"
    03
    04  LValue1 = executeMethod ("TTypedValue", "CreateStrValue", _
    05    Array("Value1", "Первый параметр", Null, Null, "TLongString", Null, Null, Null, Null, Null, _
    06    "Значение по  умолчанию первого параметра"))
    07  LValue2 = executeMethod ("TTypedValue", "CreateStrValue", _
    08    Array("Value2", "Второй параметр", Null, Null, "TLongString", Null, Null, Null, Null, Null, _
    09    "Значение по  умолчанию второго параметра"))
    10
    11  LNextButton = executeMethod ("TTypedValueButton", "Create", Array("NextButton", "Вперед!", _
    12    Null, Null, Null, Null, 0, Null, Null, _
    13    "ParentForm.NavigatorNext"  & Chr(10) & LScriptPart, enumerationItem("scPublic"), 1, Null))
    14
    15  LPrevButton = executeMethod ("TTypedValueButton", "Create", Array("PrevButton", "Назад!", _
    16    Null, Null, Null, Null, 1, Null, Null, _
    17    "ParentForm.NavigatorPrevious" & Chr(10) & LScriptPart, enumerationItem("scPublic"), 1, Null))
    18
    19  LValues = executeMethod("TObjectList", "CreateFromString", _
    20    LValue1 & ";" & LValue2 & ";" & LNextButton & ";" & LPrevButton)
    21
    22  if editValues(LValues, "Введите два строковых значения, друзья", True, True, LScriptPart) then
    23    MsgBox getPropValue("TTypedValue", "StrValue", LValue1) & _
    24      " " & _
    25      getPropValue("TTypedValue", "StrValue", LValue2)
    26  end if
    27
    28  executeMethod "TObject", "Destroy", LValues
    29  executeMethod "TObject", "Destroy", LValue1
    30  executeMethod "TObject", "Destroy", LValue2
    31  executeMethod "TObject", "Destroy", LNextButton
    32  executeMethod "TObject", "Destroy", LPrevButton
            

  • Функции MsgBox и ShowMsgBox (это синонимы одной точки входа) полностью аналогичны функции Basic MsgBox по поведению и набору параметров.
  • Функция buildNamedFile формирует значение типа "Именованный файл" на основе объекта, реализующего интерфейс IBinaryData (параметр Data) и информации об имени и параметрах именованного файла.
  • Процедура parseNamedFile разбирает значение типа "Именованный файл". Выходной параметр FileName будет содержать сохраненное имя файла, выходной параметр Data - объект, реализующего интерфейс IBinaryData и содержащий данные именованного файла.
  • Свойство ContextObject позволяет получить ссылку на этот же самый контекстный объект.
  • Свойство UserName позволяет получить логин текущего пользователя.
  • Свойство NegotiateAuth позволяет получить признак доменной аутентификации пользователя.
  • Свойство Language позволяет получать и устанавливать текущий языковой контекст, в котором будут выполняться обращения к БД. Значение свойства либо пустая строка (используется язык БД по умолчанию), либо имя объекта класса TLanguage
  • Свойство Variable позволяет сохранять и получать произвольные значения, которые могут хранится постоянно (в реестре) или только в текущем сеансе, в зависимости от параметра Persistent.
    Пример
    1'сохранить на время текущего сеанса значение в переменную с именем SameVariableName
    2Variable("SameVariableName", False) = "Value"
    3
    4'получить значение переменной с именем SameVariableName хранимой в текущем сеансе
    5LValue = Variable("SameVariableName", False)
          
  • Процедура showView осуществляет показ в модальном окне представления с именем ViewName. С помощью параметров DetailPropertyName и Key можно наложить на представление дополнительное условие отбора.

2. Интерфейс IContextDataSet
01  IContextDataSet = interface(IDispatch)
02    ['{466F3AF7-F899-4BC1-869D-1B17DCB86159}']
03    procedure AddQueryItem(Part: TQueryPart; const Name: WideString;
04      Value: OleVariant; Special: TQuerySpecial; Context: OleVariant);
05    function Eof: WordBool;
06    function Field(const Name: WideString): OleVariant;
07    function FieldCount: Integer;
08    function FieldName(Index: Integer): WideString;
09    procedure Next;
10  end;

Интерфейс предоставляет возможности формирования и выполнения запросов к базе данных с целью получения свойств объектов определенного класса, предоставляет доступ к объекту набора данных. Работа с объектом, реализующим интерфейс IContextDataSet заключается в формировании структуры набора данных и последующих обращениях к ним.

  • Процедура AddQueryItem добавляет элемент набора данных. Элементы могут добавляться в любом порядке до первого обращения к данным набора. Символические имена всех предопределенных для параметров этого метода констант являются членами интерфейса IConstants.
    • часть запроса определяется параметром Part, который может принимать одно из следующих предопределенных значений:
      Символическое имя Числовое значение Описание
      qpWhat 0 Добавляет поле (столбец), определяемое параметром Name, к результирующему набору данных. Параметр Value игнорируется.
      qpWhere 1 Определяет условие, налагаемое на свойства объектов класса, передаваемое остальными параметрами.
      qpOrder 2 Определяет порядок сортировки записей результирующего набора данных. Параметр Value игнорируется.
      qpGroup 3 Определяет, что записи результирующего набора данных будут сгруппированы по столбцу, переданному в параметре Name. Параметры Value и Special игнорируются.
    • параметр Name должен быть именем свойства класса, на котором основан набор данных, либо зарезервированным словом "ID" (без кавычек).
    • параметр Value (необязательный) определяет условия отбора, накладываемые на свойство, заданное параметром Name. Имеет смысл только если значение параметра Part равно qpWhere. Условие задается посредством строки, интерпретируемой следующим образом:
      • строка разделяется на части посредством системного разделителя
      • каждая часть интерпретируется самостоятельно, и эти части объединяются логическим "ИЛИ"
      • при интерпретации каждой части проверяются следующие условия:
        * проверка значения на непустоту (IS NOT NULL)
        !* проверка значения на пустоту (IS NULL)
        начинается с символов
        '<=', '<', '>=', '>'
        проверка соответствующего отношения между значением свойства, переданного параметром Name и оставшейся частью строки
        включает в себя символы '*' и/или '?' проверка соответствия значения шаблону, в котором знак '?' соответствует одному любому символу, а знак '*' - любому количеству любых символов
        начинается с символа '!' символ '!' означает отрицание условия, переданного оставшейся частью строки
        представляет собой строку в апострофах (одиночных кавычках) содержание строки не анализируется по приведенным выше условиям
        любая другая строка проверка равенства значения свойства, переданного параметром Name значению, переданному строкой
    • параметр Special (необязательный) обеспечивает дополнительное поведение набора данных (если параметр Special используется, необходимо использовать и параметр Value, можно передавать пустую строку):
      Символическое имя Числовое значение Описание
      qsNone 0 Параметр не используется. Значение по умолчанию.
      qsDescending 7 Используется при значении qpOrder параметра Part. В этом случае производится сортировка по убыванию.
      qsCount 8 Используется при значении qpWhat параметра Part. Определяют тип агрегации по свойству, заданному параметром Name.
      qsSum 9
      qsMin 10
      qsMax 11
      qsAverage 12
      qsFunction 22 Используется для включения в запрос вызова функции. Используется при значении qpWhat параметра Part.
    • параметр Context (необязательный) определяет дополнительные параметры элемента запроса.
    Пример
    01'включить в набор данных свойство Name
    02LDataSet.AddQueryItem 0, "Name"
    03'включить в набор данных среднее значение цены
    04LDataSet.AddQueryItem 0, "Price", "", 12
    05'включить в набор данных идентификатор объекта
    06LDataSet.AddQueryItem 0, "ID"
    07'включить в набор данных вызов функции. В поле IsCompany будет значение True, если объект является организацией
    08LDataSet.AddQueryItem 0, "IsCompany", "TObject.IsInstanceOf", 22, Array(getClass("TCompany"))
    09'наложить на набор данных условие
    10LDataSet.AddQueryItem 1, "Organization", "фирма Елочка"
          
    Пример
    1LDataSet.AddQueryItem 0, "Organization"              '(1)
    2LDataSet.AddQueryItem 0, "SalesCount", "", "9"       '(2)
    3LDataSet.AddQueryItem 1, "SaleDate", ">10.09.2005"   '(3)
    4LDataSet.AddQueryItem 2, "Organization"              '(4)
    5LDataSet.AddQueryItem 3, "Organization"              '(5)
          
    Производится отбор из класса, описывающего число продаж некоего продукта различными организациями. При этом в набор данных включаются колонки "Organization" (строка 1) и "SalesCount" (строка 2). При этом будет произведена группировка по свойству "Organization" (строка 5) (что гарантирует вхождение каждой организации в результирующий набор данных не более одного раза). Набор данных будет отсортирован по организации (строка 4). При этом в колонке "SalesCount" будет сумма (строка 2) всех продаж, осуществленных каждой организацией после 10.09.2005 (строка 3).
  • Функция FieldCount возвращает количество полей (столбцов) набора данных.
  • Функция FieldName возвращает имя поля (столбца) с номером, переданным в параметре Index.
  • Функция Field возвращает значение, содержащееся в поле с именем или индексом, заданным параметром Name (строкового типа) текущей записи набора данных. При первом обращении к набору данных текущей является первая запись. Если параметр определяет номер, то поиск поля производится по номеру. Если имя, то по имени.
  • Процедура Next осуществляет переход к следующей записи набора данных.
  • Функция Eof возвращает False, если текущая запись набора данных существует; в случаях, если набор данных пустой, или при помощи метода Next достигнут конец набора данных, возвращает True.
    Пример
    01If LDataSet.Eof then
    02  'набор данных пуст. Ничего не отобрано.
    03Else
    04  While Not LDataSet.Eof
    05    'работа с очередной отобранной записью
    06    Cells(LRow, 1).Value = LDataSet.Field("Name")
    07    Cells(LRow, 2).Value = LDataSet.Field("Description")
    08    Cells(LRow, 2).Value = LDataSet.Field("Count")
    09    'переход к следующей записи
    10    LDataSet.Next
    11    LRow = LRow + 1
    12  Wend
    13End If
          

3. Интерфейс IConstants
01  IConstants = interface(IDispatch)
02    ['{7E7B2D66-5E7C-496A-AE06-EFC485007500}']
03    property qpWhat: Integer;
04    property qpWhere: Integer;
05    property qpOrder: Integer;
06    property qpGroup: Integer;
07    property qpHaving: Integer;
08    property qsNone: Integer;
09    property qsObjectID: Integer;
10    property qsParentID: Integer;
11    property qsHasChildren: Integer;
12    property qsFilterCondition: Integer;
13    property qsUplink: Integer;
14    property qsRootOnly: Integer;
15    property qsDescending: Integer;
16    property qsCount: Integer;
17    property qsSum: Integer;
18    property qsMin: Integer;
19    property qsMax: Integer;
20    property qsAverage: Integer;
21    property qsMasterLink: Integer;
22    property qsSelectedOnly: Integer;
23  end;

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

СвойствоЗначение
qpWhat0
qpWhere1
qpOrder2
qpGroup3
qpHaving4
qsNone0
qsObjectID1
qsParentID2
qsHasChildren3
qsFilterCondition4
qsUplink5
qsRootOnly6
qsDescending7
qsCount8
qsSum9
qsMin10
qsMax11
qsAverage12
qsMasterLink13
qsSelectedOnly14

4. Интерфейс IFormContext
01  IFormContext = interface(IDispatch)
02    ['{1944F1C8-CAEA-4CF9-9A4D-CE3423508FF7}']
03    function ChangedControl: OleVariant;
04    function ControlCount: Integer;
05    function ButtonCount: Integer;
06    function ID: WideString;
07    procedure Cancel;
08    function ControlExists(const Name: WideString): WordBool;
09    function ChangedControlName: WideString;
10    function ParentForm: OleVariant;
11    function RoutineID: WideString;
12    procedure PreInitControl(const Name: WideString; Value: OleVariant);
13    procedure NavigatorNext;
14    procedure NavigatorPrevious;
15    function NavigatorCanNext: WordBool;
16    function NavigatorCanPrevious: WordBool;
17    procedure RefreshView(RefreshAll: WordBool);
18    function ExpressionContextValue(const Name: WideString): OleVariant; safecall;
19    property Controls[Name: OleVariant]: IControl;
20    property Buttons[Name: OleVariant]: IButton;
21    property Enabled: WordBool;
22  end;

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

  • Функция ChangedControl возвращает объект, реализующий интерфейс IControl, соответствующий элементу управления, изменение которого вызвало исполнение скрипта формы параметров. Если выполнение скрипта вызвано инициализацией формы задания параметров, то значение функции - Empty. Пустоту значения можно проверить с помощью функции VBScript IsEmpty.
  • Функция ControlCount возвращает число элементов управления на форме параметров, как видимых так и невидимых.
  • Функция ButtonCount возвращает число командных кнопок на форме параметров, как видимых так и невидимых.
  • Функция ID возвращает значение идентификатора объекта, для которого вызван метод. Для методов класса возвращает пустое значение.
  • Функция ControlExists возвращает True, если элемент управления с именем Name существует на форме, и, соответственно, существует соответствующий параметр.
  • Функция ChangedControlName возвращает имя элемента управления, изменение которого вызвало исполнение скрипта формы параметров. Если выполнение скрипта вызвано инициализацией формы задания параметров, то значение функции - пустая строка.
  • Процедура Cancel прекращет работу формы задания параметров. Форма закрывается, выполнение действия блокируется.
  • Функция ParentForm возвращает ссылку на контекст родительской формы в цепочке вызовов. В контексте первой формы (вызванной с грида немодальной формы) возвращает пустое значение (Empty). Пустоту значения можно проверить с помощью функции VBScript IsEmpty.
  • Функция RoutineID возвращает идентификатор подпрограммы, для которой вызвана форма.
  • Процедура PreInitControl имитирует предварительную инициализацию элемента управления с именем Name значением, переданным в параметре Value. Сам элемент управления при этом будет скрыт, и не будет показан вплоть до следующего вызова формы пользователем.
  • Процедура NavigatorNext выполняет переход к следующему объекту набора данных, для которого показывается форма параметров.
  • Процедура NavigatorPrevious выполняет переход к предыдущему объекту набора данных, для которого показывается форма параметров.
  • Функция NavigatorCanNext возвращает True, если возможен переход к следующему объекту набора данных, для которого показывается форма параметров.
  • Функция NavigatorCanPrevious возвращает True, если возможен переход к предыдущему объекту набора данных, для которого показывается форма параметров.
  • Процедура RefreshView обновляет набор данных, для которого показывается форма параметров. Если значение параметра RefreshAll равно True, то будет обновлен весь набор, если False, то только выделенные записи.
  • Свойство Controls позволяет обращаться к элементам управления на форме задания параметров, их свойствам и методам. Каждый элемент управления реализует интерфейс IControl. В параметре Name (строкового типа)может быть передано как имя элемента управления, так и его индекс (в этом случае индекс должен быть передан как строка). Имена элементов управления на форме параметров соответствуют именам параметров подпрограммы (метода, отчета, etc).
  • Свойство Buttons позволяет обращаться к командным кнопкам на форме задания параметров, их свойствам и методам. Каждая командная кнопка реализует интерфейс IButton. В параметре Name (строкового типа)может быть передано как имя командной кнопки, так и ее индекс (в этом случае индекс должен быть передан как строка).
  • Свойство Enabled позволяет получать и устанавливать доступность кнопки OK на форме задания параметров. Если на форме есть невалидные (имеющие недопустимые значения) элементы управления, значение свойства всегда равно False и устанавливать его в явном виде в True не рекомендуется. Для учета дополнительного условия рекомендуется использовать следующую конструкцию: Enabled = Enabled and (Controls("SalesCount").Value > 10)
  • Функция ExpressionContextValue возвращает значение переменной контекста с именем Name, которая используется для интeрпретации выражений условий отбора на форме.

5. Интерфейс IControl
01  IControl = interface(IDispatch)
02    ['{0662001F-D3D5-4F28-98AC-9B499F70E856}']
03    function Name: WideString;
04    procedure SetHint(const Value: WideString);
05    procedure RefreshLinkedView;
06    property Value: OleVariant;
07    property ReadOnly: WordBool;
08    property IsValid: WordBool;
09    property IsEmpty: WordBool;
10  end;

Моделирует элемент управления на форме задания параметров. Позволяет управлять поведением элементов управления на форме.

  • Функция Name возвращает имя элемента управления; имена элементов управления всегда совпадают с именамим соответствующих параметров подпрограммы.
  • Процедура SetHint устанавливает текст всплывающей подсказки элемента управления. Всплывыющая подсказка показывается только если значение элемента управления недопустимо (свойство IsValid равно False).
  • Процедура RefreshLinkedView обновит связанное с элементом управления представление.
  • Свойство Value позволяет получать и устанавливать значение, введенное в элемент управления.
  • Свойство ReadOnly позволяет получать и устанавливать доступность элемента управления для записи; при значении True элемент управления не доступен для записи и отображается неактивным.
  • Свойство IsValid позволяет получать и устанавливать "валидность" элемента управления; по умолчанию валидным элемент управления является в том случае, если введенное в него значение соответствует домену соответствующего параметра подпрограммы с учетом наложенного на него условия отбора.
  • Свойство IsEmpty имеет значение True в случае, если в элемент управления не введено никакого значения (элемент управления пустой), в противном случае имеет значение False.

6. Интерфейс IButton
1  IButton = interface(IDispatch)
2    ['{1618406F-B9F1-4C5F-BC35-C2A154837CA9}']
3    function Name: WideString; safecall;
4    procedure Click; safecall;
5    property Enabled: WordBool;
6  end;

Моделирует командную кнопку на форме задания параметров. Позволяет управлять поведением кнопки на форме.

  • Функция Name возвращает имя кнопки.
  • Процедура Click эмулирует нажатие на кнопку.
  • Свойство Enabled позволяет получать и устанавливать доступность кнопки.

7. Интерфейс IBinaryData
01  IBinaryData = interface(IDispatch)
02    ['{8A9F7CB3-230A-4048-B938-852CBF6ADB2D}']
03    procedure Load(const Src: OleVariant);
04    procedure Append(const Src: OleVariant);
05    procedure Save(const Dst: OleVariant);
06    function Size: Cardinal;
07    function ToString(Encoding: WideString): WideString;
08    procedure FromString(Data: OleVariant);
09    procedure AppendString(Data: OleVariant);
10    function ToBase64: WideString;
11    procedure FromBase64(Data: OleVariant);

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

  • Процедура Load загружает двоичные данные из переданного источника. Источник может быть
    • Объектом, реализующим интерфейс IStream
    • Объектом, реализующим интерфейс ISequentialStream
    • Строкой, содержащей имя файла
  • Процедура Append добавляет двоичные данные из переданного источника. Источник может быть
    • Объектом, реализующим интерфейс IStream
    • Объектом, реализующим интерфейс ISequentialStream
    • Строкой, содержащей имя файла
  • Процедура Save сохраняет двоичные данные в переданный приемник. Приемник может быть
    • Объектом, реализующим интерфейс IStream
    • Объектом, реализующим интерфейс ISequentialStream
    • Строкой, содержащей имя файла
  • Функция ToString переводит данные в строку. Байты, содержашиеся в объекте, будут рассматриваться как содержащие строку в кодировке, заданной параметром Encoding. По умолчанию используется кодировка UTF-8
  • Процедура FromString загружает данные из строки, переданной в параметре Data, перекодировав ее в кодировку UTF-8
  • Процедура AppendString  добавляет данные из строки, переданной в параметре Data, перекодировав ее в кодировку UTF-8
  • Функция ToBase64 возвращает строку, полученную путем кодирования в формат Base64, данных содержащихся в объекте
  • Процедура FromBase64 загружает данные из строки, переданной в параметре Data, раскодировав ее из формата Base64

8. Интерфейс IContextExpressionInfo
1  IContextExpressionInfo = interface(IUnknown)
2    ['{C7518427-B515-4EB4-B698-88656E6CBF7C}']
3    function Count: Integer;
4    function ItemName(Index: Integer): WideString;
5    function ItemValue(Index: Integer): OleVariant;
6    function ItemDomain(Index: Integer): OleVariant;
7  end;

Через реализацию этого интерфейса передаются значения контекстных переменных при обращении к функции selectValueинтерфейса IContext.

  • Функция Count возвращает количество используемых контекстных переменных. Нумерация контекстных переменных начинается с нуля.
  • Функция ItemName возвращает имя контекстной переменной c номером, переданным в параметре Index.
  • Функция ItemValue возвращает значение контекстной переменной c номером, переданным в параметре Index.
  • Функция ItemDomain возвращает имя домена контекстной переменной c номером, переданным в параметре Index.

9. Интерфейс IExceptionHandler
1  IExceptionHandler = interface(IDispatch)
2    ['{3C3C7202-5ED5-4EB4-9CDD-A929C18CA8BD}']
3    procedure HandleException(ContextObject: OleVariant;
4      const Message: WideString;
5      const ExtentedInfo: WideString);
6  end;

Реализовав интерфейс IExceptionHandler разработчик решений может получать уведомления о возникающих при работе исключительных ситуациях. При возникновении исключения объект, реализующий интерфейс, получит текст сообщения об ошибке и расширенную информацию.

Для реализации интерфеса используется библиотека hse.tlb, входящая в состав поставки решения. Перед началом работы с ней, необходимо зарегистрировать ее в операционной системе.

Для установки настроек интерфейса необходимо открыть Системную форму раздела АДМИНИСТРАТОРУ, перейти на вкладку  Настройки и в столбце "Заголовок закладки" установить фильтр "Обработка ошибок".

После этого в качестве значения Идентификатора класса установить "IExceptionHandler" без кавычек.

Для Библиотеки кода указать значение HSE.tlb


10. Справочник по интерфейсам

10.1. Перечисление TQueryPart
1type
2  TQueryPart = (qpWhat, qpWhere, qpOrder, qpGroup, qpHaving, qpInnerJoin, 
3    qpOuterJoin);

Или

01type
02  TQueryPart = TOleEnum;
03const
04  qpWhat = $00000000;
05  qpWhere = $00000001;
06  qpOrder = $00000002;
07  qpGroup = $00000003;
08  qpHaving = $00000004;
09  qpInnerJoin = $00000005;
10  qpOuterJoin = $00000006;

Элементы перечисления:

Имя Значение Назначение
qpWhat 0

qpWhere 1

qpOrder 2

qpGroup 3

qpHaving 4

qpInnerJoin 5

qpOuterJoin 6


10.2. Перечисление TQuerySpecial
1type
2  TQuerySpecial = (qsNone, qsObjectID, qsParentID, qsHasChildren, 
3    qsFilterCondition, qsUplink, qsRootOnly, qsDescending, qsCount, qsSum, qsMin, 
4    qsMax, qsAverage, qsMasterLink, qsSelectedOnly, qsDistinct, qsViewCondition, 
5    qsCaseInsensitive, qsAsString, qsListed, qsName, qsDescription, qsFunction, 
6    qsCountDistinct, qsBoolean, qsExact, qsSearchIndex, qsOptimizationParameters);

Или

01type
02  TQuerySpecial = TOleEnum;
03const
04  qsNone = $00000000;
05  qsObjectID = $00000001;
06  qsParentID = $00000002;
07  qsHasChildren = $00000003;
08  qsFilterCondition = $00000004;
09  qsUplink = $00000005;
10  qsRootOnly = $00000006;
11  qsDescending = $00000007;
12  qsCount = $00000008;
13  qsSum = $00000009;
14  qsMin = $0000000A;
15  qsMax = $0000000B;
16  qsAverage = $0000000C;
17  qsMasterLink = $0000000D;
18  qsSelectedOnly = $0000000E;
19  qsDistinct = $0000000F;
20  qsViewCondition = $00000010;
21  qsCaseInsensitive = $00000011;
22  qsAsString = $00000012;
23  qsListed = $00000013;
24  qsName = $00000014;
25  qsDescription = $00000015;
26  qsFunction = $00000016;
27  qsCountDistinct = $00000017;
28  qsBoolean = $00000018;
29  qsExact = $00000019;
30  qsSearchIndex = $0000001A;
31  qsOptimizationParameters = $0000001B;

Элементы перечисления:

Имя Значение Назначение
qsNone 0

qsObjectID 1

qsParentID 2

qsHasChildren 3

qsFilterCondition 4

qsUplink 5

qsRootOnly 6

qsDescending 7

qsCount 8

qsSum 9

qsMin 10

qsMax 11

qsAverage 12

qsMasterLink 13

qsSelectedOnly 14

qsDistinct 15

qsViewCondition 16

qsCaseInsensitive 17

qsAsString 18

qsListed 19

qsName 20

qsDescription 21

qsFunction 22

qsCountDistinct 23

qsBoolean 24

qsExact 25

qsSearchIndex 26

qsOptimizationParameters 27


10.3. Интерфейс IButton

 Диаграмма

1type
2  IButton = interface(IDispatch)
3    ['{1618406F-B9F1-4C5F-BC35-C2A154837CA9}']
4    function Get_Enabled: WordBool; safecall;
5    procedure Set_Enabled(Value: WordBool); safecall;
6    function Name: WideString; safecall;
7    procedure Click; safecall;
8    property Enabled: WordBool read Get_Enabled write Set_Enabled;
9  end;

10.3.1. Свойства

Свойства интерфейса IButton :

Имя Тип Доступ Назначение
Enabled WordBool Чтение/Запись


10.3.2. Метод Click

Метод интерфейса IButton .

procedure IButton.Click;

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


10.3.3. Метод Name

Метод интерфейса IButton .

function IButton.Name: WideString;

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

Замечания:

Возвращает значение типа WideString.


10.4. Интерфейс IContext

 Диаграмма

001type
002  IContext = interface(IDispatch)
003    ['{79847D79-A3BE-408F-B59F-662B91BC6350}']
004    function Get_ContextObject: IDispatch; safecall;
005    function Get_UserName: WideString; safecall;
006    function Get_NegotiateAuth: WordBool; safecall;
007    function Get_Language: WideString; safecall;
008    procedure Set_Language(Value: WideString); safecall;
009    function Get_TimeBias: Double; safecall;
010    function getName(ID: OleVariant): WideString; safecall;
011    function getDescription(ID: OleVariant): WideString; safecall;
012    function getPropValue(const ClassName: WideString; const PropName: WideString; 
013      ID: OleVariant): OleVariant; safecall;
014    procedure setPropValue(const ClassName: WideString; const PropName: WideString; 
015      ID: OleVariant; Value: OleVariant); safecall;
016    procedure getPropValues(const ClassName: WideString; 
017      const PropName: WideString; IDS: OleVariant; OnValueEvent: OleVariant; 
018      ThreadCount: Integer; ThreadSafe: WordBool); safecall;
019    procedure setPropValues(const ClassName: WideString; 
020      const PropName: WideString; IDS: OleVariant; OnValueNeededEvent: OleVariant; 
021      ThreadCount: Integer; ThreadSafe: WordBool); safecall;
022    function createDataSet(const TargetClassName: WideString): IContextDataSet; safecall;
023    function select(const ClassName: WideString; QueryItems: OleVariant): IDispatch; safecall;
024    function executeMethod(const ClassName: WideString; 
025      const MethodName: WideString; Params: OleVariant): OleVariant; safecall;
026    function getClass(const ClassName: WideString): WideString; safecall;
027    function enumerationItem(ItemIdentifier: OleVariant): WideString; safecall;
028    function getResource(const Name: WideString): WideString; safecall;
029    procedure bulkInsert(const ClassName: WideString; const Data: IDispatch); safecall;
030    function PreProcessScript(const Script: WideString; Indent: WordBool; 
031      const CommentMark: WideString): WideString; safecall;
032    function executeReport(const ClassName: WideString; 
033      const TemplateName: WideString; Params: OleVariant): IDispatch; safecall;
034    procedure saveReport(const ClassName: WideString; 
035      const TemplateName: WideString; Params: OleVariant; const FileName: WideString); safecall;
036    function Get_Variable(const Name: WideString; Persistent: WordBool): OleVariant; safecall;
037    procedure Set_Variable(const Name: WideString; Persistent: WordBool; 
038      Value: OleVariant); safecall;
039    function DebugString(const Message: WideString): WideString; safecall;
040    procedure raiseManagedException(const ExceptionMessage: WideString); safecall;
041    function createGUID: WideString; safecall;
042    function getTempFileName(const Extension: WideString): WideString; safecall;
043    function HasUI: WordBool; safecall;
044    function Handle: Integer; safecall;
045    procedure processStart(const Description: WideString; ItemCount: Integer; 
046      CanAbort: WordBool); safecall;
047    function processStep: WordBool; safecall;
048    procedure processStop; safecall;
049    procedure Sleep(MSecs: Integer); safecall;
050    function executeConsoleProcess(const CommandLine: WideString; 
051      MaxDuration: Integer; const OutputData: OleVariant): Integer; safecall;
052    function downloadData(const Host: WideString; const Url: WideString; 
053      const UserName: WideString; const Password: WideString; 
054      NegotiateAuth: WordBool; PostData: OleVariant; 
055      const PostContentType: WideString; PostDataIsBinary: WordBool; 
056      CanCache: WordBool; NewSession: WordBool; TimeOut: Integer): OleVariant; safecall;
057    function LineBreak: WideString; safecall;
058    function Transliterate(const Value: WideString): WideString; safecall;
059    procedure CompareLists(var List1: OleVariant; var List2: OleVariant; 
060      const Delimiter: WideString; CaseSensitive: WordBool); safecall;
061    function parseJSON(const JSON: WideString): WideString; safecall;
062    function ConvertExcel(Source: OleVariant; const Format: WideString): IDispatch; safecall;
063    function createBinaryData: IDispatch; safecall;
064    function getCRC(Data: OleVariant): WideString; safecall;
065    function buildNamedFile(const Data: IDispatch; 
066      const StoredFileName: WideString; Propmpt: WordBool; 
067      Compress: WordBool): IDispatch; safecall;
068    procedure parseNamedFile(NamedFile: OleVariant; out FileName: OleVariant; 
069      out Data: OleVariant); safecall;
070    function createRaster: IDispatch; safecall;
071    function BinaryToBitmap(const Data: IDispatch): IDispatch; safecall;
072    function getOleObject(const ClassID: WideString; 
073      const AccessibleFileName: WideString): IDispatch; safecall;
074    function PlaceDataSet(const Range: IDispatch; const DataSet: IContextDataSet; 
075      ShiftRows: WordBool; ShiftColumns: WordBool): Integer; safecall;
076    procedure ExportObject(var Document: OleVariant; const ID: WideString; 
077      const ClassID: WideString); safecall;
078    function createZIPArchive: IDispatch; safecall;
079    function callRoutine(const ClassName: WideString; 
080      const RoutineName: WideString; var RetValue: OleVariant; 
081      const ScriptPart: OleVariant): WordBool; safecall;
082    function selectVaue(const ClassDomain: WideString; 
083      const ExpressionContext: IUnknown; var Value: OleVariant): WordBool; safecall;
084    function editValues(const ValuesList: WideString; const Title: WideString; 
085      UseTabs: WordBool; HideOKButton: WordBool; 
086      const ScriptPart: OleVariant): WordBool; safecall;
087    function MsgBox(const Prompt: WideString; Buttons: LongWord; 
088      const Title: WideString; const HelpFile: WideString; Context: LongWord): Integer; safecall;
089    function ShowMsgBox(const Prompt: WideString; Buttons: LongWord; 
090      const Title: WideString; const HelpFile: WideString; Context: LongWord): Integer; safecall;
091    procedure showView(const ViewName: WideString; Key: OleVariant; 
092      const DetailPropertyName: WideString); safecall;
093    procedure showDataSet(const DataSet: ContextDataSet; const Caption: WideString; 
094      ColumnCaptions: OleVariant; ColumnOnChangeHandlers: OleVariant; 
095      TakeActionsFromView: OleVariant); safecall;
096    procedure SaveExternalDataToFolder(const Resource: WideString; 
097      const Folder: WideString); safecall;
098    function PerformAsyncTask(ID: OleVariant): WordBool; safecall;
099    procedure RebuildTextIndex(ClassID: OleVariant; FieldID: OleVariant; 
100      ThreadCount: Integer); safecall;
101    function MainHandle: Integer; safecall;
102    property ContextObject: IDispatch read Get_ContextObject;
103    property UserName: WideString read Get_UserName;
104    property NegotiateAuth: WordBool read Get_NegotiateAuth;
105    property Language: WideString read Get_Language write Set_Language;
106    property TimeBias: Double read Get_TimeBias;
107    property Variable[const Name: WideString; Persistent: WordBool]: OleVariant 
108      read Get_Variable write Set_Variable;
109  end;

10.4.1. Свойства

Свойства интерфейса IContext :

Имя Тип Доступ Назначение
ContextObject IDispatch Только для чтения

Language WideString Чтение/Запись

NegotiateAuth WordBool Только для чтения

TimeBias Double Только для чтения

UserName WideString Только для чтения

Variable[const Name: WideString, Persistent: WordBool] OleVariant Чтение/Запись


10.4.2. Метод BinaryToBitmap

Метод интерфейса IContext .

function IContext.BinaryToBitmap(const Data: IDispatch): IDispatch;

Параметры:

Имя Тип Обязательно Значение
Data IDispatch Да

Замечания:

Возвращает значение типа IDispatch.


10.4.3. Метод buildNamedFile

Метод интерфейса IContext .

1function IContext.buildNamedFile(const Data: IDispatch; 
2  const StoredFileName: WideString; Propmpt: WordBool; 
3  Compress: WordBool): IDispatch;

Параметры:

Имя Тип Обязательно Значение
Data IDispatch Да

StoredFileName WideString Да

Propmpt WordBool Да

Compress WordBool Да

Замечания:

Возвращает значение типа IDispatch.


10.4.4. Метод bulkInsert

Метод интерфейса IContext .

1procedure IContext.bulkInsert(const ClassName: WideString; 
2  const Data: IDispatch);

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

Data IDispatch Да


10.4.5. Метод callRoutine

Метод интерфейса IContext .

1function IContext.callRoutine(const ClassName: WideString; 
2  const RoutineName: WideString; var RetValue: OleVariant; 
3  const ScriptPart: OleVariant): WordBool;

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

RoutineName WideString Да

RetValue OleVariant Нет

ScriptPart OleVariant Нет

Замечания:

Возвращает значение типа WordBool.


10.4.6. Метод CompareLists

Метод интерфейса IContext .

1procedure IContext.CompareLists(var List1: OleVariant; var List2: OleVariant; 
2  const Delimiter: WideString; CaseSensitive: WordBool);

Параметры:

Имя Тип Обязательно Значение
List1 OleVariant Да

List2 OleVariant Да

Delimiter WideString Да

CaseSensitive WordBool Да


10.4.7. Метод ConvertExcel

Метод интерфейса IContext .

1function IContext.ConvertExcel(Source: OleVariant; 
2  const Format: WideString): IDispatch;

Параметры:

Имя Тип Обязательно Значение
Source OleVariant Да

Format WideString Да

Замечания:

Возвращает значение типа IDispatch.


10.4.8. Метод createBinaryData

Метод интерфейса IContext .

function IContext.createBinaryData: IDispatch;

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

Замечания:

Возвращает значение типа IDispatch.


10.4.9. Метод createDataSet

Метод интерфейса IContext .

function IContext.createDataSet(const TargetClassName: WideString): IContextDataSet;

Параметры:

Имя Тип Обязательно Значение
TargetClassName WideString Да

Замечания:

Возвращает значение типа IContextDataSet.


10.4.10. Метод createGUID

Метод интерфейса IContext .

function IContext.createGUID: WideString;

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

Замечания:

Возвращает значение типа WideString.


10.4.11. Метод createRaster

Метод интерфейса IContext .

function IContext.createRaster: IDispatch;

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

Замечания:

Возвращает значение типа IDispatch.


10.4.12. Метод createZIPArchive

Метод интерфейса IContext .

function IContext.createZIPArchive: IDispatch;

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

Замечания:

Возвращает значение типа IDispatch.


10.4.13. Метод DebugString

Метод интерфейса IContext .

function IContext.DebugString(const Message: WideString): WideString;

Параметры:

Имя Тип Обязательно Значение
Message WideString Да

Замечания:

Возвращает значение типа WideString.


10.4.14. Метод downloadData

Метод интерфейса IContext .

1function IContext.downloadData(const Host: WideString; const Url: WideString; 
2  const UserName: WideString; const Password: WideString; 
3  NegotiateAuth: WordBool; PostData: OleVariant; 
4  const PostContentType: WideString; PostDataIsBinary: WordBool; 
5  CanCache: WordBool; NewSession: WordBool; TimeOut: Integer): OleVariant;

Параметры:

Имя Тип Обязательно Значение
Host WideString Да

Url WideString Да

UserName WideString Да

Password WideString Да

NegotiateAuth WordBool Да

PostData OleVariant Да

PostContentType WideString Да

PostDataIsBinary WordBool Да

CanCache WordBool Да

NewSession WordBool Да

TimeOut Integer Да

Замечания:

Возвращает значение типа OleVariant.


10.4.15. Метод editValues

Метод интерфейса IContext .

1function IContext.editValues(const ValuesList: WideString; 
2  const Title: WideString; UseTabs: WordBool; HideOKButton: WordBool; 
3  const ScriptPart: OleVariant): WordBool;

Параметры:

Имя Тип Обязательно Значение
ValuesList WideString Да

Title WideString Да

UseTabs WordBool Да

HideOKButton WordBool Да

ScriptPart OleVariant Нет

Замечания:

Возвращает значение типа WordBool.


10.4.16. Метод enumerationItem

Метод интерфейса IContext .

function IContext.enumerationItem(ItemIdentifier: OleVariant): WideString;

Параметры:

Имя Тип Обязательно Значение
ItemIdentifier OleVariant Да

Замечания:

Возвращает значение типа WideString.


10.4.17. Метод executeConsoleProcess

Метод интерфейса IContext .

1function IContext.executeConsoleProcess(const CommandLine: WideString; 
2  MaxDuration: Integer; const OutputData: OleVariant): Integer;

Параметры:

Имя Тип Обязательно Значение
CommandLine WideString Да

MaxDuration Integer Да

OutputData OleVariant Да

Замечания:

Возвращает значение типа Integer.


10.4.18. Метод executeMethod

Метод интерфейса IContext .

1function IContext.executeMethod(const ClassName: WideString; 
2  const MethodName: WideString; Params: OleVariant): OleVariant;

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

MethodName WideString Да

Params OleVariant Да

Замечания:

Возвращает значение типа OleVariant.


10.4.19. Метод executeReport

Метод интерфейса IContext .

1function IContext.executeReport(const ClassName: WideString; 
2  const TemplateName: WideString; Params: OleVariant): IDispatch;

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

TemplateName WideString Да

Params OleVariant Да

Замечания:

Возвращает значение типа IDispatch.


10.4.20. Метод ExportObject

Метод интерфейса IContext .

1procedure IContext.ExportObject(var Document: OleVariant; const ID: WideString; 
2  const ClassID: WideString);

Параметры:

Имя Тип Обязательно Значение
Document OleVariant Да

ID WideString Да

ClassID WideString Да


10.4.21. Метод getClass

Метод интерфейса IContext .

function IContext.getClass(const ClassName: WideString): WideString;

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

Замечания:

Возвращает значение типа WideString.


10.4.22. Метод getCRC

Метод интерфейса IContext .

function IContext.getCRC(Data: OleVariant): WideString;

Параметры:

Имя Тип Обязательно Значение
Data OleVariant Да

Замечания:

Возвращает значение типа WideString.


10.4.23. Метод getDescription

Метод интерфейса IContext .

function IContext.getDescription(ID: OleVariant): WideString;

Параметры:

Имя Тип Обязательно Значение
ID OleVariant Да

Замечания:

Возвращает значение типа WideString.


10.4.24. Метод getName

Метод интерфейса IContext .

function IContext.getName(ID: OleVariant): WideString;

Параметры:

Имя Тип Обязательно Значение
ID OleVariant Да

Замечания:

Возвращает значение типа WideString.


10.4.25. Метод getOleObject

Метод интерфейса IContext .

1function IContext.getOleObject(const ClassID: WideString; 
2  const AccessibleFileName: WideString): IDispatch;

Параметры:

Имя Тип Обязательно Значение
ClassID WideString Да

AccessibleFileName WideString Да

Замечания:

Возвращает значение типа IDispatch.


10.4.26. Метод getPropValue

Метод интерфейса IContext .

1function IContext.getPropValue(const ClassName: WideString; 
2  const PropName: WideString; ID: OleVariant): OleVariant;

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

PropName WideString Да

ID OleVariant Да

Замечания:

Возвращает значение типа OleVariant.


10.4.27. Метод getPropValues

Метод интерфейса IContext .

1procedure IContext.getPropValues(const ClassName: WideString; 
2  const PropName: WideString; IDS: OleVariant; OnValueEvent: OleVariant; 
3  ThreadCount: Integer; ThreadSafe: WordBool);

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

PropName WideString Да

IDS OleVariant Да

OnValueEvent OleVariant Да

ThreadCount Integer Да

ThreadSafe WordBool Да


10.4.28. Метод getResource

Метод интерфейса IContext .

function IContext.getResource(const Name: WideString): WideString;

Параметры:

Имя Тип Обязательно Значение
Name WideString Да

Замечания:

Возвращает значение типа WideString.


10.4.29. Метод getTempFileName

Метод интерфейса IContext .

function IContext.getTempFileName(const Extension: WideString): WideString;

Параметры:

Имя Тип Обязательно Значение
Extension WideString Да

Замечания:

Возвращает значение типа WideString.


10.4.30. Метод Handle

Метод интерфейса IContext .

function IContext.Handle: Integer;

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

Замечания:

Возвращает значение типа Integer.


10.4.31. Метод HasUI

Метод интерфейса IContext .

function IContext.HasUI: WordBool;

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

Замечания:

Возвращает значение типа WordBool.


10.4.32. Метод LineBreak

Метод интерфейса IContext .

function IContext.LineBreak: WideString;

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

Замечания:

Возвращает значение типа WideString.


10.4.33. Метод MainHandle

Метод интерфейса IContext .

function IContext.MainHandle: Integer;

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

Замечания:

Возвращает значение типа Integer.


10.4.34. Метод MsgBox

Метод интерфейса IContext .

1function IContext.MsgBox(const Prompt: WideString; Buttons: LongWord; 
2  const Title: WideString; const HelpFile: WideString; Context: LongWord): Integer;

Параметры:

Имя Тип Обязательно Значение
Prompt WideString Да

Buttons LongWord Нет

Title WideString Нет

HelpFile WideString Нет

Context LongWord Нет

Замечания:

Возвращает значение типа Integer.


10.4.35. Метод parseJSON

Метод интерфейса IContext .

function IContext.parseJSON(const JSON: WideString): WideString;

Параметры:

Имя Тип Обязательно Значение
JSON WideString Да

Замечания:

Возвращает значение типа WideString.


10.4.36. Метод parseNamedFile

Метод интерфейса IContext .

1procedure IContext.parseNamedFile(NamedFile: OleVariant; 
2  out FileName: OleVariant; out Data: OleVariant);

Параметры:

Имя Тип Обязательно Значение
NamedFile OleVariant Да

FileName OleVariant Да

Data OleVariant Да


10.4.37. Метод PerformAsyncTask

Метод интерфейса IContext .

function IContext.PerformAsyncTask(ID: OleVariant): WordBool;

Параметры:

Имя Тип Обязательно Значение
ID OleVariant Да

Замечания:

Возвращает значение типа WordBool.


10.4.38. Метод PlaceDataSet

Метод интерфейса IContext .

1function IContext.PlaceDataSet(const Range: IDispatch; 
2  const DataSet: IContextDataSet; ShiftRows: WordBool; 
3  ShiftColumns: WordBool): Integer;

Параметры:

Имя Тип Обязательно Значение
Range IDispatch Да

DataSet IContextDataSet Да

ShiftRows WordBool Нет

ShiftColumns WordBool Нет

Замечания:

Возвращает значение типа Integer.


10.4.39. Метод PreProcessScript

Метод интерфейса IContext .

1function IContext.PreProcessScript(const Script: WideString; Indent: WordBool; 
2  const CommentMark: WideString): WideString;

Параметры:

Имя Тип Обязательно Значение
Script WideString Да

Indent WordBool Да

CommentMark WideString Да

Замечания:

Возвращает значение типа WideString.


10.4.40. Метод processStart

Метод интерфейса IContext .

1procedure IContext.processStart(const Description: WideString; 
2  ItemCount: Integer; CanAbort: WordBool);

Параметры:

Имя Тип Обязательно Значение
Description WideString Да

ItemCount Integer Нет

CanAbort WordBool Нет


10.4.41. Метод processStep

Метод интерфейса IContext .

function IContext.processStep: WordBool;

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

Замечания:

Возвращает значение типа WordBool.


10.4.42. Метод processStop

Метод интерфейса IContext .

procedure IContext.processStop;

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


10.4.43. Метод raiseManagedException

Метод интерфейса IContext .

procedure IContext.raiseManagedException(const ExceptionMessage: WideString);

Параметры:

Имя Тип Обязательно Значение
ExceptionMessage WideString Да


10.4.44. Метод RebuildTextIndex

Метод интерфейса IContext .

1procedure IContext.RebuildTextIndex(ClassID: OleVariant; FieldID: OleVariant; 
2  ThreadCount: Integer);

Параметры:

Имя Тип Обязательно Значение
ClassID OleVariant Да

FieldID OleVariant Да

ThreadCount Integer Да


10.4.45. Метод SaveExternalDataToFolder

Метод интерфейса IContext .

1procedure IContext.SaveExternalDataToFolder(const Resource: WideString; 
2  const Folder: WideString);

Параметры:

Имя Тип Обязательно Значение
Resource WideString Да

Folder WideString Да


10.4.46. Метод saveReport

Метод интерфейса IContext .

1procedure IContext.saveReport(const ClassName: WideString; 
2  const TemplateName: WideString; Params: OleVariant; const FileName: WideString);

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

TemplateName WideString Да

Params OleVariant Да

FileName WideString Да


10.4.47. Метод select

Метод интерфейса IContext .

1function IContext.select(const ClassName: WideString; 
2  QueryItems: OleVariant): IDispatch;

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

QueryItems OleVariant Да

Замечания:

Возвращает значение типа IDispatch.


10.4.48. Метод selectVaue

Метод интерфейса IContext .

1function IContext.selectVaue(const ClassDomain: WideString; 
2  const ExpressionContext: IUnknown; var Value: OleVariant): WordBool;

Параметры:

Имя Тип Обязательно Значение
ClassDomain WideString Да

ExpressionContext IUnknown Да

Value OleVariant Да

Замечания:

Возвращает значение типа WordBool.


10.4.49. Метод setPropValue

Метод интерфейса IContext .

1procedure IContext.setPropValue(const ClassName: WideString; 
2  const PropName: WideString; ID: OleVariant; Value: OleVariant);

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

PropName WideString Да

ID OleVariant Да

Value OleVariant Да


10.4.50. Метод setPropValues

Метод интерфейса IContext .

1procedure IContext.setPropValues(const ClassName: WideString; 
2  const PropName: WideString; IDS: OleVariant; OnValueNeededEvent: OleVariant; 
3  ThreadCount: Integer; ThreadSafe: WordBool);

Параметры:

Имя Тип Обязательно Значение
ClassName WideString Да

PropName WideString Да

IDS OleVariant Да

OnValueNeededEvent OleVariant Да

ThreadCount Integer Да

ThreadSafe WordBool Да


10.4.51. Метод showDataSet

Метод интерфейса IContext .

1procedure IContext.showDataSet(const DataSet: ContextDataSet; 
2  const Caption: WideString; ColumnCaptions: OleVariant; 
3  ColumnOnChangeHandlers: OleVariant; TakeActionsFromView: OleVariant);

Параметры:

Имя Тип Обязательно Значение
DataSet ContextDataSet Да

Caption WideString Да

ColumnCaptions OleVariant Да

ColumnOnChangeHandlers OleVariant Да

TakeActionsFromView OleVariant Да


10.4.52. Метод ShowMsgBox

Метод интерфейса IContext .

1function IContext.ShowMsgBox(const Prompt: WideString; Buttons: LongWord; 
2  const Title: WideString; const HelpFile: WideString; Context: LongWord): Integer;

Параметры:

Имя Тип Обязательно Значение
Prompt WideString Да

Buttons LongWord Нет

Title WideString Нет

HelpFile WideString Нет

Context LongWord Нет

Замечания:

Возвращает значение типа Integer.


10.4.53. Метод showView

Метод интерфейса IContext .

1procedure IContext.showView(const ViewName: WideString; Key: OleVariant; 
2  const DetailPropertyName: WideString);

Параметры:

Имя Тип Обязательно Значение
ViewName WideString Да

Key OleVariant Да

DetailPropertyName WideString Да


10.4.54. Метод Sleep

Метод интерфейса IContext .

procedure IContext.Sleep(MSecs: Integer);

Параметры:

Имя Тип Обязательно Значение
MSecs Integer Да


10.4.55. Метод Transliterate

Метод интерфейса IContext .

function IContext.Transliterate(const Value: WideString): WideString;

Параметры:

Имя Тип Обязательно Значение
Value WideString Да

Замечания:

Возвращает значение типа WideString.


10.5. Интерфейс IContextDataSet

 Диаграмма

01type
02  IContextDataSet = interface(IDispatch)
03    ['{466F3AF7-F899-4BC1-869D-1B17DCB86159}']
04    procedure AddQueryItem(Part: TQueryPart; const Name: WideString; 
05      Value: OleVariant; Special: TQuerySpecial; Context: OleVariant); safecall;
06    function Eof: WordBool; safecall;
07    function Field(const Name: WideString): OleVariant; safecall;
08    function FieldCount: Integer; safecall;
09    function FieldName(Index: Integer): WideString; safecall;
10    procedure Next; safecall;
11    procedure Split(OnRowEvent: OleVariant; ChunkSize: Integer; 
12      ThreadCount: Integer; ThreadSafe: WordBool); safecall;
13    function AsJSON: WideString; safecall;
14    function AsXML: WideString; safecall;
15    function AsBinaryData: IDispatch; safecall;
16  end;

10.5.1. Метод AddQueryItem

Метод интерфейса IContextDataSet .

1procedure IContextDataSet.AddQueryItem(Part: TQueryPart; 
2  const Name: WideString; Value: OleVariant; Special: TQuerySpecial; 
3  Context: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Part TQueryPart Да

Name WideString Да

Value OleVariant Нет

Special TQuerySpecial Нет

Context OleVariant Нет


10.5.2. Метод AsBinaryData

Метод интерфейса IContextDataSet .

function IContextDataSet.AsBinaryData: IDispatch;

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

Замечания:

Возвращает значение типа IDispatch.


10.5.3. Метод AsJSON

Метод интерфейса IContextDataSet .

function IContextDataSet.AsJSON: WideString;

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

Замечания:

Возвращает значение типа WideString.


10.5.4. Метод AsXML

Метод интерфейса IContextDataSet .

function IContextDataSet.AsXML: WideString;

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

Замечания:

Возвращает значение типа WideString.


10.5.5. Метод Eof

Метод интерфейса IContextDataSet .

function IContextDataSet.Eof: WordBool;

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

Замечания:

Возвращает значение типа WordBool.


10.5.6. Метод Field

Метод интерфейса IContextDataSet .

function IContextDataSet.Field(const Name: WideString): OleVariant;

Параметры:

Имя Тип Обязательно Значение
Name WideString Да

Замечания:

Возвращает значение типа OleVariant.


10.5.7. Метод FieldCount

Метод интерфейса IContextDataSet .

function IContextDataSet.FieldCount: Integer;

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

Замечания:

Возвращает значение типа Integer.


10.5.8. Метод FieldName

Метод интерфейса IContextDataSet .

function IContextDataSet.FieldName(Index: Integer): WideString;

Параметры:

Имя Тип Обязательно Значение
Index Integer Да

Замечания:

Возвращает значение типа WideString.


10.5.9. Метод Next

Метод интерфейса IContextDataSet .

procedure IContextDataSet.Next;

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


10.5.10. Метод Split

Метод интерфейса IContextDataSet .

1procedure IContextDataSet.Split(OnRowEvent: OleVariant; ChunkSize: Integer; 
2  ThreadCount: Integer; ThreadSafe: WordBool);

Параметры:

Имя Тип Обязательно Значение
OnRowEvent OleVariant Да

ChunkSize Integer Да

ThreadCount Integer Да

ThreadSafe WordBool Да


10.6. Интерфейс IContextExpressionInfo

 Диаграмма

1type
2  IContextExpressionInfo = interface(IUnknown)
3    ['{C7518427-B515-4EB4-B698-88656E6CBF7C}']
4    function LookupExpressionContext(const Identifier: WideString; 
5      out DomainID: WideString; out Value: WideString): WordBool; safecall;
6    procedure SerializeExpressionContext(const RootNode: IDispatch); safecall;
7  end;

10.6.1. Метод LookupExpressionContext

Метод интерфейса IContextExpressionInfo .

1function IContextExpressionInfo.LookupExpressionContext(const Identifier: WideString; 
2  out DomainID: WideString; out Value: WideString): WordBool;

Параметры:

Имя Тип Обязательно Значение
Identifier WideString Да

DomainID WideString Да

Value WideString Да

Замечания:

Возвращает значение типа WordBool.


10.6.2. Метод SerializeExpressionContext

Метод интерфейса IContextExpressionInfo .

procedure IContextExpressionInfo.SerializeExpressionContext(const RootNode: IDispatch);

Параметры:

Имя Тип Обязательно Значение
RootNode IDispatch Да


10.7. Интерфейс IControl

 Диаграмма

01type
02  IControl = interface(IDispatch)
03    ['{0662001F-D3D5-4F28-98AC-9B499F70E856}']
04    function Name: WideString; safecall;
05    function Get_Value: OleVariant; safecall;
06    procedure Set_Value(Value: OleVariant); safecall;
07    function Get_ReadOnly: WordBool; safecall;
08    procedure Set_ReadOnly(Value: WordBool); safecall;
09    function Get_IsValid: WordBool; safecall;
10    procedure Set_IsValid(Value: WordBool); safecall;
11    function Get_IsEmpty: WordBool; safecall;
12    procedure SetHint(const Value: WideString); safecall;
13    procedure RefreshLinkedView; safecall;
14    function Get_Visible: WordBool; safecall;
15    property Value: OleVariant read Get_Value write Set_Value;
16    property ReadOnly: WordBool read Get_ReadOnly write Set_ReadOnly;
17    property IsValid: WordBool read Get_IsValid write Set_IsValid;
18    property IsEmpty: WordBool read Get_IsEmpty;
19    property Visible: WordBool read Get_Visible;
20  end;

10.7.1. Свойства

Свойства интерфейса IControl :

Имя Тип Доступ Назначение
IsEmpty WordBool Только для чтения

IsValid WordBool Чтение/Запись

ReadOnly WordBool Чтение/Запись

Value OleVariant Чтение/Запись

Visible WordBool Только для чтения


10.7.2. Метод Name

Метод интерфейса IControl .

function IControl.Name: WideString;

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

Замечания:

Возвращает значение типа WideString.


10.7.3. Метод RefreshLinkedView

Метод интерфейса IControl .

procedure IControl.RefreshLinkedView;

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


10.7.4. Метод SetHint

Метод интерфейса IControl .

procedure IControl.SetHint(const Value: WideString);

Параметры:

Имя Тип Обязательно Значение
Value WideString Да


10.8. Интерфейс IExceptionHandler

 Диаграмма

1type
2  IExceptionHandler = interface(IDispatch)
3    ['{3C3C7202-5ED5-4EB4-9CDD-A929C18CA8BD}']
4    procedure HandleException(ContextObject: OleVariant; const Message: WideString; 
5      const ExtentedInfo: WideString; SupportServiceData: OleVariant); safecall;
6  end;

10.8.1. Метод HandleException

Метод интерфейса IExceptionHandler .

1procedure IExceptionHandler.HandleException(ContextObject: OleVariant; 
2  const Message: WideString; const ExtentedInfo: WideString; 
3  SupportServiceData: OleVariant);

Параметры:

Имя Тип Обязательно Значение
ContextObject OleVariant Да

Message WideString Да

ExtentedInfo WideString Да

SupportServiceData OleVariant Да


10.9. Интерфейс IExternalContext

 Диаграмма

1type
2  IExternalContext = interface(IDispatch)
3    ['{EA2F1CDA-53F6-40E9-A2B7-0A80AB84D177}']
4    procedure Connect(const Database: WideString); safecall;
5  end;

10.9.1. Метод Connect

Метод интерфейса IExternalContext .

procedure IExternalContext.Connect(const Database: WideString);

Параметры:

Имя Тип Обязательно Значение
Database WideString Да


10.10. Интерфейс IFormContext

 Диаграмма

01type
02  IFormContext = interface(IDispatch)
03    ['{1944F1C8-CAEA-4CF9-9A4D-CE3423508FF7}']
04    function ID: WideString; safecall;
05    function RoutineID: WideString; safecall;
06    function ControlCount: Integer; safecall;
07    function Get_Controls(Name: OleVariant): IControl; safecall;
08    function ControlExists(const Name: WideString): WordBool; safecall;
09    function ButtonCount: Integer; safecall;
10    function Get_Buttons(Name: OleVariant): IButton; safecall;
11    function Get_Enabled: WordBool; safecall;
12    procedure Set_Enabled(Value: WordBool); safecall;
13    function ChangedControl: OleVariant; safecall;
14    function ChangedControlName: WideString; safecall;
15    procedure Cancel; safecall;
16    function ParentForm: OleVariant; safecall;
17    procedure PreInitControl(const Name: WideString; Value: OleVariant); safecall;
18    procedure NavigatorNext; safecall;
19    procedure NavigatorPrevious; safecall;
20    function NavigatorCanNext: WordBool; safecall;
21    function NavigatorCanPrevious: WordBool; safecall;
22    procedure RefreshView(RefreshAll: WordBool); safecall;
23    function ExpressionContextValue(const Name: WideString): OleVariant; safecall;
24    property Controls[Name: OleVariant]: IControl read Get_Controls;
25    property Buttons[Name: OleVariant]: IButton read Get_Buttons;
26    property Enabled: WordBool read Get_Enabled write Set_Enabled;
27  end;

10.10.1. Свойства

Свойства интерфейса IFormContext :

Имя Тип Доступ Назначение
Buttons[Name: OleVariant] IButton Только для чтения

Controls[Name: OleVariant] IControl Только для чтения

Enabled WordBool Чтение/Запись


10.10.2. Метод ButtonCount

Метод интерфейса IFormContext .

function IFormContext.ButtonCount: Integer;

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

Замечания:

Возвращает значение типа Integer.


10.10.3. Метод Cancel

Метод интерфейса IFormContext .

procedure IFormContext.Cancel;

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


10.10.4. Метод ChangedControl

Метод интерфейса IFormContext .

function IFormContext.ChangedControl: OleVariant;

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

Замечания:

Возвращает значение типа OleVariant.


10.10.5. Метод ChangedControlName

Метод интерфейса IFormContext .

function IFormContext.ChangedControlName: WideString;

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

Замечания:

Возвращает значение типа WideString.


10.10.6. Метод ControlCount

Метод интерфейса IFormContext .

function IFormContext.ControlCount: Integer;

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

Замечания:

Возвращает значение типа Integer.


10.10.7. Метод ControlExists

Метод интерфейса IFormContext .

function IFormContext.ControlExists(const Name: WideString): WordBool;

Параметры:

Имя Тип Обязательно Значение
Name WideString Да

Замечания:

Возвращает значение типа WordBool.


10.10.8. Метод ExpressionContextValue

Метод интерфейса IFormContext .

function IFormContext.ExpressionContextValue(const Name: WideString): OleVariant;

Параметры:

Имя Тип Обязательно Значение
Name WideString Да

Замечания:

Возвращает значение типа OleVariant.


10.10.9. Метод ID

Метод интерфейса IFormContext .

function IFormContext.ID: WideString;

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

Замечания:

Возвращает значение типа WideString.


10.10.10. Метод NavigatorCanNext

Метод интерфейса IFormContext .

function IFormContext.NavigatorCanNext: WordBool;

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

Замечания:

Возвращает значение типа WordBool.


10.10.11. Метод NavigatorCanPrevious

Метод интерфейса IFormContext .

function IFormContext.NavigatorCanPrevious: WordBool;

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

Замечания:

Возвращает значение типа WordBool.


10.10.12. Метод NavigatorNext

Метод интерфейса IFormContext .

procedure IFormContext.NavigatorNext;

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


10.10.13. Метод NavigatorPrevious

Метод интерфейса IFormContext .

procedure IFormContext.NavigatorPrevious;

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


10.10.14. Метод ParentForm

Метод интерфейса IFormContext .

function IFormContext.ParentForm: OleVariant;

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

Замечания:

Возвращает значение типа OleVariant.


10.10.15. Метод PreInitControl

Метод интерфейса IFormContext .

procedure IFormContext.PreInitControl(const Name: WideString; Value: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Name WideString Да

Value OleVariant Да


10.10.16. Метод RefreshView

Метод интерфейса IFormContext .

procedure IFormContext.RefreshView(RefreshAll: WordBool);

Параметры:

Имя Тип Обязательно Значение
RefreshAll WordBool Да


10.10.17. Метод RoutineID

Метод интерфейса IFormContext .

function IFormContext.RoutineID: WideString;

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

Замечания:

Возвращает значение типа WideString.


10.11. Интерфейс IRaster

 Диаграмма

01type
02  IRaster = interface(IDispatch)
03    ['{4F27D016-03C2-4D48-ABF7-FD547E859F79}']
04    function Get_Width: Integer; safecall;
05    procedure Set_Width(Value: Integer); safecall;
06    function Get_Height: Integer; safecall;
07    procedure Set_Height(Value: Integer); safecall;
08    function Get_DefaultColor: Integer; safecall;
09    procedure Set_DefaultColor(Value: Integer); safecall;
10    procedure Load(Src: OleVariant); safecall;
11    procedure SaveBitmap(Dst: OleVariant); safecall;
12    procedure SavePNG(Dst: OleVariant); safecall;
13    procedure SaveJPG(Dst: OleVariant; Quality: Integer); safecall;
14    procedure FlipVertical; safecall;
15    procedure FlipHorizontal; safecall;
16    procedure Rotate; safecall;
17    procedure Resize(NewWidth: Integer; NewHeight: Integer; Center: WordBool); safecall;
18    procedure Stretch(NewWidth: Integer; NewHeight: Integer); safecall;
19    procedure StretchToSize(MaxWidth: OleVariant; MaxHeight: OleVariant; 
20      MaxSize: OleVariant); safecall;
21    procedure Overlay(Src: OleVariant; X: Integer; Y: Integer; Width: Integer; 
22      Height: Integer); safecall;
23    property Width: Integer read Get_Width write Set_Width;
24    property Height: Integer read Get_Height write Set_Height;
25    property DefaultColor: Integer read Get_DefaultColor write Set_DefaultColor;
26  end;

10.11.1. Свойства

Свойства интерфейса IRaster :

Имя Тип Доступ Назначение
DefaultColor Integer Чтение/Запись

Height Integer Чтение/Запись

Width Integer Чтение/Запись


10.11.2. Метод FlipHorizontal

Метод интерфейса IRaster .

procedure IRaster.FlipHorizontal;

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


10.11.3. Метод FlipVertical

Метод интерфейса IRaster .

procedure IRaster.FlipVertical;

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


10.11.4. Метод Load

Метод интерфейса IRaster .

procedure IRaster.Load(Src: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Src OleVariant Да


10.11.5. Метод Overlay

Метод интерфейса IRaster .

1procedure IRaster.Overlay(Src: OleVariant; X: Integer; Y: Integer; 
2  Width: Integer; Height: Integer);

Параметры:

Имя Тип Обязательно Значение
Src OleVariant Да

X Integer Да

Y Integer Да

Width Integer Да

Height Integer Да


10.11.6. Метод Resize

Метод интерфейса IRaster .

1procedure IRaster.Resize(NewWidth: Integer; NewHeight: Integer; 
2  Center: WordBool);

Параметры:

Имя Тип Обязательно Значение
NewWidth Integer Да

NewHeight Integer Да

Center WordBool Да


10.11.7. Метод Rotate

Метод интерфейса IRaster .

procedure IRaster.Rotate;

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


10.11.8. Метод SaveBitmap

Метод интерфейса IRaster .

procedure IRaster.SaveBitmap(Dst: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Dst OleVariant Да


10.11.9. Метод SaveJPG

Метод интерфейса IRaster .

procedure IRaster.SaveJPG(Dst: OleVariant; Quality: Integer);

Параметры:

Имя Тип Обязательно Значение
Dst OleVariant Да

Quality Integer Да


10.11.10. Метод SavePNG

Метод интерфейса IRaster .

procedure IRaster.SavePNG(Dst: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Dst OleVariant Да


10.11.11. Метод Stretch

Метод интерфейса IRaster .

procedure IRaster.Stretch(NewWidth: Integer; NewHeight: Integer);

Параметры:

Имя Тип Обязательно Значение
NewWidth Integer Да

NewHeight Integer Да


10.11.12. Метод StretchToSize

Метод интерфейса IRaster .

1procedure IRaster.StretchToSize(MaxWidth: OleVariant; MaxHeight: OleVariant; 
2  MaxSize: OleVariant);

Параметры:

Имя Тип Обязательно Значение
MaxWidth OleVariant Да

MaxHeight OleVariant Да

MaxSize OleVariant Да


10.12. Интерфейс IScannerTools

 Диаграмма

1type
2  IScannerTools = interface(IDispatch)
3    ['{FC1B3C9F-7DE9-4909-B57D-6D33E3B0A87A}']
4    function AcquireImage(Silent: WordBool): IDispatch; safecall;
5    function AcquirePDF: IDispatch; safecall;
6  end;

10.12.1. Метод AcquireImage

Метод интерфейса IScannerTools .

function IScannerTools.AcquireImage(Silent: WordBool): IDispatch;

Параметры:

Имя Тип Обязательно Значение
Silent WordBool Да

Замечания:

Возвращает значение типа IDispatch.


10.12.2. Метод AcquirePDF

Метод интерфейса IScannerTools .

function IScannerTools.AcquirePDF: IDispatch;

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

Замечания:

Возвращает значение типа IDispatch.


10.13. Интерфейс ISetOfObjectsEditor

 Диаграмма

1type
2  ISetOfObjectsEditor = interface(IDispatch)
3    ['{6D3662A7-D9FF-4BD6-8D92-A4EA2058C74E}']
4    function Get_DomainName: WideString; safecall;
5    procedure Set_DomainName(Value: WideString); safecall;
6    function Get_SelectedCount: Integer; safecall;
7    property DomainName: WideString read Get_DomainName write Set_DomainName;
8    property SelectedCount: Integer read Get_SelectedCount;
9  end;

10.13.1. Свойства

Свойства интерфейса ISetOfObjectsEditor :

Имя Тип Доступ Назначение
DomainName WideString Чтение/Запись

SelectedCount Integer Только для чтения


10.14. Интерфейс IZIPArchive

 Диаграмма

01type
02  IZIPArchive = interface(IDispatch)
03    ['{11C9400F-F262-4F72-882F-5AA5A4531591}']
04    procedure Load(Src: OleVariant); safecall;
05    procedure Save(Src: OleVariant); safecall;
06    function Get_FileCount: Integer; safecall;
07    function Get_FileName(Index: Integer): WideString; safecall;
08    function Get_FileData(Index: Integer): OleVariant; safecall;
09    procedure AddFile(const FileName: WideString; Data: OleVariant); safecall;
10    function Get_FileSize(Index: Integer): Int64; safecall;
11    function Get_FileDateTime(Index: Integer): TDateTime; safecall;
12    function Get_FileCRC(Index: Integer): WideString; safecall;
13    function Get_UTF8Support: WordBool; safecall;
14    procedure Set_UTF8Support(Value: WordBool); safecall;
15    property FileCount: Integer read Get_FileCount;
16    property FileName[Index: Integer]: WideString read Get_FileName;
17    property FileData[Index: Integer]: OleVariant read Get_FileData;
18    property FileSize[Index: Integer]: Int64 read Get_FileSize;
19    property FileDateTime[Index: Integer]: TDateTime read Get_FileDateTime;
20    property FileCRC[Index: Integer]: WideString read Get_FileCRC;
21    property UTF8Support: WordBool read Get_UTF8Support write Set_UTF8Support;
22  end;

10.14.1. Свойства

Свойства интерфейса IZIPArchive :

Имя Тип Доступ Назначение
FileCRC[Index: Integer] WideString Только для чтения

FileCount Integer Только для чтения

FileData[Index: Integer] OleVariant Только для чтения

FileDateTime[Index: Integer] TDateTime Только для чтения

FileName[Index: Integer] WideString Только для чтения

FileSize[Index: Integer] Int64 Только для чтения

UTF8Support WordBool Чтение/Запись


10.14.2. Метод AddFile

Метод интерфейса IZIPArchive .

procedure IZIPArchive.AddFile(const FileName: WideString; Data: OleVariant);

Параметры:

Имя Тип Обязательно Значение
FileName WideString Да

Data OleVariant Да


10.14.3. Метод Load

Метод интерфейса IZIPArchive .

procedure IZIPArchive.Load(Src: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Src OleVariant Да


10.14.4. Метод Save

Метод интерфейса IZIPArchive .

procedure IZIPArchive.Save(Src: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Src OleVariant Да


11. Дополнительные интерфейсы

11.1. Интерфейс IBinaryData

 Диаграмма

01type
02  IBinaryData = interface(IDispatch)
03    ['{8A9F7CB3-230A-4048-B938-852CBF6ADB2D}']
04    procedure Append(Src: OleVariant); safecall;
05    procedure Load(Src: OleVariant); safecall;
06    procedure Save(Dst: OleVariant); safecall;
07    function Size: LongWord; safecall;
08    procedure AppendData(Data: OleVariant; DataSize: LongWord); safecall;
09    procedure SetData(Data: OleVariant; DataSize: LongWord); safecall;
10    procedure GetData(Data: OleVariant); safecall;
11    function ToString(const Encoding: WideString): WideString; safecall;
12    procedure FromString(Data: OleVariant); safecall;
13    procedure AppendString(Data: OleVariant); safecall;
14    function ToBase64(Width: Integer): WideString; safecall;
15    procedure FromBase64(Data: OleVariant); safecall;
16    function ContentIsText: WordBool; safecall;
17  end;

11.1.1. Метод Append

Метод интерфейса IBinaryData .

procedure IBinaryData.Append(Src: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Src OleVariant Да


11.1.2. Метод AppendData

Метод интерфейса IBinaryData .

procedure IBinaryData.AppendData(Data: OleVariant; DataSize: LongWord);

Параметры:

Имя Тип Обязательно Значение
Data OleVariant Да

DataSize LongWord Да


11.1.3. Метод AppendString

Метод интерфейса IBinaryData .

procedure IBinaryData.AppendString(Data: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Data OleVariant Да


11.1.4. Метод ContentIsText

Метод интерфейса IBinaryData .

function IBinaryData.ContentIsText: WordBool;

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

Замечания:

Возвращает значение типа WordBool.


11.1.5. Метод FromBase64

Метод интерфейса IBinaryData .

procedure IBinaryData.FromBase64(Data: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Data OleVariant Да


11.1.6. Метод FromString

Метод интерфейса IBinaryData .

procedure IBinaryData.FromString(Data: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Data OleVariant Да


11.1.7. Метод GetData

Метод интерфейса IBinaryData .

procedure IBinaryData.GetData(Data: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Data OleVariant Да


11.1.8. Метод Load

Метод интерфейса IBinaryData .

procedure IBinaryData.Load(Src: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Src OleVariant Да


11.1.9. Метод Save

Метод интерфейса IBinaryData .

procedure IBinaryData.Save(Dst: OleVariant);

Параметры:

Имя Тип Обязательно Значение
Dst OleVariant Да


11.1.10. Метод SetData

Метод интерфейса IBinaryData .

procedure IBinaryData.SetData(Data: OleVariant; DataSize: LongWord);

Параметры:

Имя Тип Обязательно Значение
Data OleVariant Да

DataSize LongWord Да


11.1.11. Метод Size

Метод интерфейса IBinaryData .

function IBinaryData.Size: LongWord;

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

Замечания:

Возвращает значение типа LongWord.


11.1.12. Метод ToBase64

Метод интерфейса IBinaryData .

function IBinaryData.ToBase64(Width: Integer): WideString;

Параметры:

Имя Тип Обязательно Значение
Width Integer Нет

Замечания:

Возвращает значение типа WideString.


11.1.13. Метод ToString

Метод интерфейса IBinaryData .

function IBinaryData.ToString(const Encoding: WideString): WideString;

Параметры:

Имя Тип Обязательно Значение
Encoding WideString Да

Замечания:

Возвращает значение типа WideString.