TMManager (Архив) — различия между версиями
м (→Ссылки) |
м (→Возможные проблемы) |
||
| Строка 251: | Строка 251: | ||
| {{table/td}} | | | {{table/td}} | | ||
COM-объект не установлен в системе, поэтому невозможно создать его экземпляр. | COM-объект не установлен в системе, поэтому невозможно создать его экземпляр. | ||
| − | Чтобы иметь возможность использовать объект, установите его (см. выше). | + | Чтобы иметь возможность использовать объект, установите его (см. [[#Установка TMManager|выше]]). |
|} | |} | ||
Версия 15:09, 20 октября 2009
TMManager — это COM-приложение, позволяющее какому-либо программному средству взаимодействовать с системой Такси-Мастер с помощью технологии COM.
Содержание
Установка TMManager
Установка COM-объекта TMManager происходит в один шаг: нужно просто запустить исполняемый файл. При этом объект TMMgr зарегистрируется в списке приложений DCOM через службу компонентов, и его можно использовать для вызова методов из стороннего приложения (например, из скрипта VBS?).
Создание объекта
Создание объекта в вашей программе происходит довольно просто. Пример на VBS:
dim mgrInstance
mgrInstance = WScript.CreateObject("TMMgr.TMManager")
Методы TMManager
Объект TMManager имеет несколько методов, которые могут быть использованы сторонними приложениями.
DBConnect
С помощью метода DBConnect организуется подключение к базе данных Такси-Мастер.
Синтаксис
Синтаксис метода DBConnect:
HRESULT DBConnect (BSTR ServerName, BSTR FilePath, BSTR Login, BSTR Password);
- ServerName — это строка, обозначающая имя сервера, например, LOCALHOST.
- FilePath — строка, обозначающая путь к файлу базы данных. Путь должен быть указан полностью, включая имя диска. Например, C:\Program Files\TMEnterprise\tme_db.fdb.
- Login обозначает имя пользователя, под которым производится вход в базу данных. Например, SYSDBA.
- Password — строка, обозначающая пароль для подключения к базе. Например, masterkey.
DBDisconnect
Вызов метода DBDisconnect закрывает подключение к базе данных Такси-Мастер.
Синтаксис
Синтаксис метода DBDisconnect:
HRESULT DBDisconnect();
Метод вызывается без параметров.
OpenNewOrder
Метод OpenNewOrder создает в списке заказов Такси-Мастер новый заказ. Один вызов этого метода создает один пустой заказ.
Синтаксис
Синтаксис метода OpenNewOrder:
HRESULT OpenNewOrder();
Метод вызывается без параметров.
SetOrderField
Метод SetOrderField играет очень важную роль в создании заказа: с его помощью задаются значения полям карточки заказа. Метод вызывается столько раз, сколько полей нужно заполнить.
Синтаксис
Синтаксис метода SetOrderField:
HRESULT SetOrderField(BSTR FieldName, Variant Value);
- FieldName — строка, обозначающая имя поля. Список допустимых полей см. ниже.
- Value — объект, обозначающий значение, передаваемое в поле.
Допустимые значения параметров
Параметр FiledName определяет имя поля карточки заказа, а параметр Value — его значение. Набор полей строго определен, как и имя каждого из них, поэтому вызов метода будет успешным в том случае, когда значение FieldName соответствует одному из полей, описанных ниже, а Value имеет соответствующий полю тип. При несоблюдении правильности названия поля или типа вы можете получить исключительную ситуацию.
| Поле | Тип | Описание | Пример |
|---|---|---|---|
| STATE | NUMERIC(18,0) | Идентификатор состояния заказа. | |
| NAME | VARCHAR(80) | Наименование заказа. | Заказ с телефона 305723 на Ленина, 24-68 |
| PHONE | VARCHAR(12) | Номер телефона, с которого принят заказ. | |
| CUSTOMER | VARCHAR(80) | Имя заказчика | Булкин |
| SOURCE | VARCHAR(80) | Полный адрес подачи такси. | Ленина, 24-68 |
| DESTINATION | VARCHAR(80) | Полный адрес назначения. | Пушкинская, 114-8 |
| CREWID | NUMERIC(18,0) | Идентификатор экипажа-исполнителя. | 68 |
| SUMM | NUMERIC(10,2) | Сумма за заказ. | 500 |
| STARTUSER | NUMERIC(18,0) | Идентификатор оператора, принявшего заказ. | 4 |
| STARTTIME | TIMESTAMP | Время приема заказа. | |
| SOURCE_STREET | NUMERIC(18,0) | Идентификатор улицы подачи. | |
| SOURCE_POINT | NUMERIC(18,0) | Идентификатор пункта подачи. | |
| SOURCE_HOUSE | VARCHAR(10) | Номер дома подачи. | 24 |
| SOURCE_FLAT | VARCHAR(10) | Номер квартиры подачи. | 68 |
| SOURCE_TIME | TIMESTAMP | Время подачи. | |
| DESTINATION_STREET | NUMERIC(18,0) | Идентификатор улицы назначения. | |
| DESTINATION_POINT | NUMERIC(18,0) | Идентификатор пункта назначения. | |
| DESTINATION_HOUSE | VARCHAR(10) | Номер дома назначения. | |
| DESTINATION_FLAT | VARCHAR(10) | Номер квартиры назначения. | |
| CLIENTID | NUMERIC(18,0) | Идентификатор клиента. | |
| IS_PRIOR | NUMERIC(1,0) | Признак предварительного заказа. | 1 |
| IS_LOCKED | SMALLINT | Признак блокировки заказа. | 1 |
| MONEY_RECEIVE | SMALLINT | Признак принятия оплаты водителем. | 1 |
CloseNewOrder
Метод CloseNewOrder завершает редактирование полей заказа и добавляет его в список заказов Такси-Мастер. Этот метод необходимо вызвать для того, чтобы созданный заказ появился в списке.
Синтаксис
Синтаксис метода CloseNewOrder:
HRESULT CloseNewOrder();
Метод вызывается без параметров.
BeginCoordsSending
Метод BeginCoordsSending создает объект для передачи в Такси-Мастер ряда координат.
Синтаксис
Синтаксис метода BeginCoordsSending:
HRESULT BeginCoordsSending();
Метод вызывается без параметров.
SendCoords
Метод SendCoords добавляет в объект координаты и время их передачи.
Синтаксис
Синтаксис метода SendCoords:
HRESULT SendCoords(INT Identifier, SINGLE Latitude, SINGLE Longitude);
- Identifier — идентификатор водителя (см. поле Идентификатор в карточке экипажа. Для удобства можно использовать ИД водителя, его можно посмотреть в карточке водителя.
- Latitude — число с плавающей запятой, обозначающее широту.
- Longitude — число с плавающей запятой, обозначающее долготу.
EndCoordsSending
Метод EndCoordsSending завершает набор координат и отправляет объект с координатами в Такси-Мастер.
Синтаксис
Синтаксис метода EndCoordsSending:
HRESULT EndCoordsSending();
Метод вызывается без параметров.
Пример
См. пример сценария на языке Basic.
Возможные проблемы
Проблемы, которые могут возникнуть, описаны? в таблице:
| Проблема | Картинка
(нажмите, чтобы посмотреть) |
Решение |
|---|---|---|
| Невозможно создать объект | |
COM-объект не установлен в системе, поэтому невозможно создать его экземпляр. Чтобы иметь возможность использовать объект, установите его (см. выше). |
Ссылки
- Справочный пример работы с TMManager.
- http://ru.wikipedia.org/wiki/Windows_Script_Host — о Windows Script Host, под управлением которой работают примеры.
- http://ru.wikipedia.org/wiki/DCOM — о DCOM на Википедии.
- http://www.microsoft.com/com — описание технологии COM на сайте автора.