.. currentmodule:: TatInternalObject Интеграция ====================================================================== .. pas:function:: GetADOConnectionString(ID: Variant): String Метод возвращает строку соединения с внешней БД по идентификатору. Строки соединения хранятся в сущности INT\_ADOConnectionString. :param Variant ID: Идентификатор строки соединения :rtype: String .. warning:: |not_implemented| .. pas:function:: RunImport(SchemeName: String; SessionType: TbtkSessionType): String Метод запускает на выполнение настроенную ранее через приложение **Integrator** схему импорта данных. :param String SchemeName: Системное имя схемы импорта данных :param TbtkSessionType SessionType: Параметр определяет какую сессию использовать для импорта. Параметр является не обязательным, по умолчанию, если параметр не задан используется новая сессия. Возможны параметры: stNewSession новая сессия stCurrentSession текущая :rtype: String .. code-block:: sql :caption: Пример использования begin -- изменяем строку соединения с именем ExcelConnect -- если будут грузить несколько пользователей одновременно возможна блокировка -- в этом случае нужно к имени коннектора прибавлять имя пользователя -- и сделать по схеме импорта под каждого пользователя (можно размножать их и динамически путем копирования) INT_ADOCONNECTIONSTRINGAPI.Register('ExcelConnect', 'Provider=Microsoft.Jet.OLEDB.4.0 |image0| ata Source=' || :svNewPath || ';Extended Properties=Excel 8.0;Persist Security Info=False',''); end; .. code-block:: delphi // путь или имя файла по умолчанию path := ''; // выбираем файл s := AskFileNameForOpen(path); // если выбрали if not VarIsNull(s) then begin // изменяем строку соединения ExecSqlEx('ChangeConnectionStr', 'svNewPath', [ftString], [s]); // запускаем схему импорта 'TestImport' RunImport('TestImport'); end; .. warning:: |not_implemented| .. pas:function:: RunExport(SchemeName: String): String Метод запускает на выполнение настроенную ранее через приложение Integrator схему экспорта данных. :param String SchemeName: Системное имя схемы экспорта :rtype: String .. warning:: |not_implemented| .. pas:function:: SendMail(Address, Subject, Message, AttachFileNames, AttachFileCaptions: String) Метод формирует электронное письмо используя стандарт MAPI, и передаёт его в почтовый клиент, установленный по умолчанию для отправки. Почтовый клиент должен поддерживать стандарт MAPI. :param String Address: Адрес электронной почты получателя. Можно указать несколько адресов через точку с запятой. :param String Subject: Тема письма :param String Message: Текст письма :param String AttachFileNames: Имя прикрепляемого файла с путём к нему или массив имен файлов. Имя файла должно включать полный путь к нему. :param String AttachFileCaptions: Имя файла, отображаемое в почтовом клиенте или массив заголовков. Обычно, это - имя файла без пути. .. code-block:: delphi :caption: Пример использования. Формирует файл во временном каталоге Windows и прикрепляет его к создаваемому электронному письму. FileName := GetTempFileName('','.gsc'); MyFileContent := '[EXECPARAMS]' + #10 + 'Application=SEL_TESTAPPLICATION' + #10 + 'OPERATION=ShowMDIForm' + #10 + 'PARAMS=''FileName=C:\ffff\anyfilename.ext'';''SelectionName=SEL\_ANY\_Selection'';''RepName=AnyRep''' + #10 + 'NOSPLASH=1'; SaveToFile(FileName, MyFileContent); SendMail('mailbox@mail.ru', 'Тема письма', 'Сообщение', FileName, ExtractFileName(FileName)); //Отправка письма без вложений SendMail('mailbox@mail.ru', 'Тема письма', 'Сообщение', '', ''); // Для прикрепления нескольких файлов надо воспользоваться следующим синтаксисом: SendMail('mailbox@mail.ru', 'Тема письма', 'Сообщение', [FileName1,FileName2], [ExtractFileName(FileName1),ExtractFileName(FileName1)]); // Отправка письма нескольким адресатам SendMail('mailbox@mail.ru; mailbox2@mail.ru; mailbox3@mail.ru', 'Тема письма', 'Сообщение', FileName, ExtractFileName(FileName)); .. note:: Корректным значением аргумента ``AttachFileNames`` является непустая строка или непустой массив строк. Любые иные значения, такие как: пустая строка, ``Null``, ``nil``, пустой массив - игнорируются и метод считает, что прикрепляемые файлы отсутствуют. .. pas:attribute:: Classificator: TbtkClassificator Объект, реализующий доступ к системе "Классификаторы" компании ITSI :rtype: TbtkClassificator .. warning:: |not_supported| TbtkSessionType ---------------- .. pas:class:: TbtkSessionType Перечисление задает типы доступных сессий, обычно можно получить текущую сессию выборки, сессию приложения, и новую сессию(взять из пула свободных сессий или создавать новую). .. warning:: |not_supported| .. pas:attribute:: stMainSession Главная сессия приложения, сессия созданная при входе в приложение. .. pas:attribute:: stCurrentSession Текущая сессия выборки. .. pas:attribute:: stNewSession Новая сессия TbtkClassificator ---------------------------------------------------------------------- .. pas:class:: TbtkClassificator Класс предоставляющий методы для работы с базой данных системы "Классификаторы" компании ITSI Для работы необходимы библиотеки itsi\_m.dll, itsi\_tool.dll и ключ HASP .. warning:: |not_supported| .. pas:attribute:: Connected: Boolean Указывает, что соединение с базой данных "Классификаторы" установлено. :rtype: Boolean .. pas:method:: GetMaterial(code, msg, name, mix, grade: String): Boolean Функция поиска материала по коду :param String code: указатель на строку, содержащую полный код материала :param String msg: указатель на строку, в которую будет записано описание ошибки :param String name: указатель на строку, в которую будет записано «Наименование» материала :param String mix: указатель на строку, в которую будет записан «Сортамент» материала :param String grade: указатель на строку, в которую будет записана «Марка» материала :rtype: Boolean .. code-block:: delphi :caption: Пример использования msg := ''; if not Classificator.Connected then if not Classificator.Connect('QUALIFS', msg) then begin ShowMessage(Msg); Exit; end; code := '00234903627'; msg := ''; name := ''; mix := ''; grade := ''; if Classificator.GetMaterial(code, Msg, Name, mix, grade) then ShowMessage(code + ' - ' + Msg + ' - ' + Name + ' - ' + mix + ' - ' + grade) else ShowMessage(Msg); Classificator.Disconnect; .. pas:method:: Disconnect() Процедура отключения от базы данных системы «Классификаторы». .. code-block:: delphi :caption: Пример использования msg := ''; if not Classificator.Connected then if not Classificator.Connect('QUALIFS', msg) then begin ShowMessage(Msg); Exit; end; code := '00234903627'; msg := ''; name := ''; mix := ''; grade := ''; if Classificator.GetMaterial(code, Msg, Name, mix, grade) then ShowMessage(code + ' - ' + Msg + ' - ' + Name + ' - ' + mix + ' - ' + grade) else ShowMessage(Msg); Classificator.Disconnect; .. pas:method:: Connect(dsn, msg: String): Boolean Функция подключения к базе данных системы «Классификаторы» :param String dsn: строка, содержащая имя источника данных, который используется для подключения системы «Классификаторы» к базе данных :param String msg: строка, в которую будет записано описание ошибки, в случает её возникновения :rtype: Boolean .. code-block:: delphi :caption: Пример использования msg := ''; if not Classificator.Connected then if not Classificator.Connect('QUALIFS', msg) then begin ShowMessage(Msg); Exit; end; code := '00234903627'; msg := ''; name := ''; mix := ''; grade := ''; if Classificator.GetMaterial(code, Msg, Name, mix, grade) then ShowMessage(code + ' - ' + Msg + ' - ' + Name + ' - ' + mix + ' - ' + grade) else ShowMessage(Msg); Classificator.Disconnect; .. pas:attribute:: Outlook: TbtkOutlookApplication Объект реализующий вспомогательные методы работы с MS Outlook. :rtype: TbtkOutlookApplication TbtkOutlookApplication ---------------------------------------------------------------------- .. pas:class:: TbtkOutlookApplication TbtkOutlookApplication .. warning:: |not_supported| .. pas:attribute:: Application: Variant Свойство содержит ссылку на COM-сервер MS Outlook, к которому осуществлено подключение. :rtype: Variant .. code-block:: delphi :caption: Пример использования if Outlook.ActiveExplorerExists then begin ActiveExplorer := Outlook.Application.ActiveExplorer; if ActiveExplorer.Selection.Count > 0 then begin if ActiveExplorer.Selection.Item(1).Class = 43 then ShowMessage('Выделенный элемент является письмом') else ShowMessage('Выделенный элемент не является письмом'); end; end; .. pas:attribute:: Connected: Boolean Свойство указывает осуществлено ли подключение к COM-серверу MS Outlook :rtype: Boolean .. pas:attribute:: ActiveExplorerExists: Variant Свойство указывает на существование активной рабочей области у приложения MS Outlook, к которому осуществлено подключение. Это свойство создано из-за невозможности проверки существования объекта ``Outlook.Application.ActiveExplorer`` методами скриптера. :rtype: Variant .. pas:attribute:: Visible: Boolean Свойство указывает видимо ли в данный момент приложение MS Outlook :rtype: Boolean .. pas:method:: Disconnect() Метод подключает объект Outlook от COM-сервера приложения MS Outlook. .. pas:method:: Connect() Метод подключает объект Outlook к COM-серверу приложения MS Outlook. .. pas:method:: UnRegisterNewMailEvent(Selection: TbtkScriptSelectionObject; OpName: String) Метод разрегистрирует операцию, зарегистрированную ранее в качестве обработчика события ``OnNewMail`` :param TbtkScriptSelectionObject Selection: Выборка с операцией обработчиком. :param String OpName: Имя операции обработчика. .. pas:method:: RegisterNewMailEvent(Selection: TbtkScriptSelectionObject; OpName: String) Метод регистрирует операцию, которая будет вызываться при возникновении события ``OnNewMail`` в MS Outlook. :param TbtkScriptSelectionObject Selection: Выборка с операцией обработчиком. :param String OpName: Имя операции обработчика. .. code-block:: delphi :caption: Пример использования Outlook.RegisterNewMailEvent(Selection, 'OnAfterNewMail'); .. pas:method:: Show() Делает приложение MS Outlook видимым.