Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Readme.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
378 Кб
Скачать
☆

7.Сервер автоматизации

7.1.Краткое описание

Сервер автоматизации (ClassName – Declension) содержит все те же функции оформленные в как методы интефейса, в которых отсуствуют паразитные параметры (pResult и nLen) и преобразования возвращаются как результат функций.

Большинство методов сервера автоматизации реализовано в виде функций у которых типом входных строковых данных и типом результата является тип WideString. Таким же типом передается в метод информация о роде в виде одного из символов: ‘’ (пустая строка), ‘м’ или ‘ж’ (в любом регистре). Передача в качестве параметра рода пустой строки означает требование выполнить автоматическое определение рода перед преобразованием. Если род определить невозможно (выполняется попытка склонять фамилию с инициалами, «китайского» типа или входные данные имеют формат "Фамилия Имя [Имя]") метод возвращает исходные данные без изменения. Аналогично и при указании явно ошибочного рода. Имена методов совпадают с именами соответствующих экспортируемых функций.

При некорректном задании падежа или рода генерируется исключение EOleException. Значение поля ErrorCode в этом случае равно -1 для неверного падежа и -2 – для неверного рода. Поле Message содержит описание ошибки с указанием значения неверного параметра.

Кроме того, сервер имеет свойство Dictionary, являющееся, в свою очередь, сервером и предоставляющим доступ к своему методу Update и свойству FileName, так же имеющему тип WideString. Свойство FileName доступно как по чтению, так и по записи. Это позволяет не только получить имя словаря исключений в приложении для выполнения некоторых действий с ним, но и устанавливать словарь в процессе работы приложения.3

Следует обратить внимание, что объекта Dictionary начиная с версии 4 в сервере автоматизации не существует, для упрощения три его функции по работе со словарем исключений перенесены в объекте Declension.

Ниже приводится список методов сервера автоматизации с перечислением параметров и их типов.

Declension:

// определение пола

function GetSex(const cMiddleName: WideString): Integer; stdcall;

// функции склонения

function GetFIOPadegFS(const cFIO, cSex: WideString; nPadeg: Integer): WideString; safecall;

procedure SeparateFIO(const cFIO: WideString; out cLastName, cFirstName, cMiddleName: WideString); safecall;

function GetFIOPadeg(const cLastName, cFirstName, cMiddleName, cSex: WideString; nPadeg: Integer): WideString; safecall;

function GetIFPadeg(const cFirstName, cLastName, cSex: WideString; nPadeg: Integer): WideString; safecall;

function GetIFPadegFS(const cIF, cSex: WideString; nPadeg: Integer): WideString; safecall;

function GetNominativePadeg(const cFIO: WideString): WideString; safecall;

function GetAppointmentPadeg(const cAppointment: WideString; nPadeg: Integer): WideString; safecall;

function GetOfficePadeg(const cOffice: WideString; nPadeg: Integer): WideString; safecall;

function GetFullAppointmentPadeg(const cAppointment, cOffice: WideString; nPadeg: Integer): WideString; safecall;

// работа со словарем исключений

function SetDictionary(const DicName: WideString): WordBool; safecall;

function Update_Exceptions: WordBool; safecall;

function GetExceptionsFileName: WideString; safecall;

function NumberToString(Quantity: Double; iSex, Decimal: Integer; RemoveZero, CnvtFrac: WordBool): WideString; safecall;

// преобразование и склонение числительных

function DoubleToVerbal(Quantity: Double): WideString; safecall;

function DeclNumeral(const Value: WideString; nPadeg, iSex: Integer; Order, Soul: WordBool): WideString; safecall;

function DeclCurrency(Quantity: Currency; const CurrName: WideString; nPadeg, Forms: Integer): WideString; safecall;

function SumInWords(const Quantity: WideString; iSex, Decimal: Integer; RemoveZero, CnvtFrac: WordBool): WideString; safecall;

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

Хотя Библиотека с СOM сервером и содержит стандартные вызовы функций (не важно какую компоновку вы применяете, статическую или динамическую) авторы настоятельно рекомендуют не смешивать в одном приложении стандартные вызовы и COM обращения, следует применять либо одно, либо другое. Связано это с реализацией загрузки и выгрузки DLL операционной системой Windows.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]