TMManager (Архив): различия между версиями
Нет описания правки |
|||
| Строка 3: | Строка 3: | ||
== Установка TMManager == | == Установка TMManager == | ||
Установка COM-объекта TMManager происходит в один шаг: нужно просто запустить исполняемый файл. | Установка COM-объекта TMManager происходит в один шаг: нужно просто запустить исполняемый файл. | ||
При этом объект | При этом объект {{code|TMMgr}} зарегистрируется в списке приложений DCOM через службу компонентов, и его можно использовать для вызова методов из стороннего приложения (например, из скрипта {{коммент|VBS|Visual Basic script}}). | ||
{{url|http://taximaster.ru/ftp/tm/Utilities/TMMgr.zip}} | {{url|http://taximaster.ru/ftp/tm/Utilities/TMMgr.zip}} | ||
| Строка 19: | Строка 19: | ||
Объект TMManager имеет несколько методов, которые могут быть использованы сторонними приложениями. | Объект TMManager имеет несколько методов, которые могут быть использованы сторонними приложениями. | ||
=== | === {{code|DBConnect}} === | ||
С помощью метода | С помощью метода {{code|DBConnect}} организуется подключение к [[База данных|базе данных Такси-Мастер]]. | ||
==== Синтаксис ==== | ==== Синтаксис ==== | ||
Синтаксис метода | Синтаксис метода {{code|DBConnect}}: | ||
HRESULT DBConnect (BSTR ServerName, BSTR FilePath, BSTR Login, BSTR Password); | HRESULT DBConnect (BSTR ServerName, BSTR FilePath, BSTR Login, BSTR Password); | ||
# | # {{code|ServerName}} — это строка, обозначающая имя сервера, например, {{путь|LOCALHOST}}. | ||
# | # {{code|FilePath}} — строка, обозначающая путь к файлу [[База данных|базы данных]]. Путь должен быть указан полностью, включая имя диска. Например, {{путь|C:\Program Files\TMEnterprise\tme_db.fdb}}. | ||
# | # {{code|Login}} обозначает имя пользователя, под которым производится вход в базу данных. Например, {{code|SYSDBA}}. | ||
# | # {{code|Password}} — строка, обозначающая пароль для подключения к базе. Например, {{code|masterkey}}. | ||
=== | === {{code|DBDisconnect}} === | ||
Вызов метода DBDisconnect закрывает подключение к базе данных Такси-Мастер. | Вызов метода {{code|DBDisconnect}} закрывает подключение к базе данных Такси-Мастер. | ||
==== Синтаксис ==== | ==== Синтаксис ==== | ||
Синтаксис метода | Синтаксис метода {{code|DBDisconnect}}: | ||
HRESULT DBDisconnect(); | HRESULT DBDisconnect(); | ||
| Строка 42: | Строка 42: | ||
Метод вызывается без параметров. | Метод вызывается без параметров. | ||
=== | === {{code|OpenNewOrder}} === | ||
Метод | Метод {{code|OpenNewOrder}} создает в [[Список заказов|списке заказов]] Такси-Мастер новый [[заказ]]. | ||
Один вызов этого метода создает один пустой заказ. | Один вызов этого метода создает один пустой заказ. | ||
==== Синтаксис ==== | ==== Синтаксис ==== | ||
Синтаксис метода | Синтаксис метода {{code|OpenNewOrder}}: | ||
HRESULT OpenNewOrder(); | HRESULT OpenNewOrder(); | ||
| Строка 53: | Строка 53: | ||
Метод вызывается без параметров. | Метод вызывается без параметров. | ||
=== | === {{code|SetOrderField}} === | ||
Метод | Метод {{code|SetOrderField}} играет очень важную роль в создании заказа: с его помощью задаются значения полям карточки заказа. | ||
Метод вызывается столько раз, сколько полей нужно заполнить. | Метод вызывается столько раз, сколько полей нужно заполнить. | ||
==== Синтаксис ==== | ==== Синтаксис ==== | ||
Синтаксис метода | Синтаксис метода {{code|SetOrderField}}: | ||
HRESULT SetOrderField(BSTR FieldName, Variant Value); | HRESULT SetOrderField(BSTR FieldName, Variant Value); | ||
# | # {{code|FieldName}} — строка, обозначающая имя поля. Список допустимых полей см. ниже. | ||
# | # {{code|Value}} — объект, обозначающий значение, передаваемое в поле. | ||
==== Допустимые значения параметров ==== | ==== Допустимые значения параметров ==== | ||
Параметр | Параметр {{code|FiledName}} определяет имя поля карточки заказа, а параметр {{code|Value}} — его значение. | ||
Набор полей строго определен, как и имя каждого из них, поэтому вызов метода будет успешным в том случае, когда значение | Набор полей строго определен, как и имя каждого из них, поэтому вызов метода будет успешным в том случае, когда значение {{code|FieldName}} соответствует одному из полей, описанных ниже, а {{code|Value}} имеет соответствующий полю тип. | ||
При несоблюдении правильности названия поля или типа вы можете получить исключительную ситуацию. | При несоблюдении правильности названия поля или типа вы можете получить исключительную ситуацию. | ||
{|{{table}} | {|{{table}} | ||
! Поле | ! {{table/th}} | Поле | ||
! Тип | ! {{table/th}} | Тип | ||
! Описание | ! {{table/th}} | Описание | ||
! Пример | ! {{table/th}} | Пример | ||
|- | |- | ||
| | | {{table/td}} | {{code|STATE}} | ||
| | | {{table/td}} | {{code|NUMERIC(18,0)}} | ||
| Идентификатор состояния заказа. | | {{table/td}} | Идентификатор состояния заказа. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|NAME}} | ||
| | | {{table/td}} | {{code|VARCHAR(80)}} | ||
| Наименование заказа. | | {{table/td}} | Наименование заказа. | ||
| Заказ с телефона 305723 на Ленина, 24-68 | | {{table/td}} | Заказ с телефона 305723 на Ленина, 24-68 | ||
|- | |- | ||
| | | {{table/td}} | {{code|PHONE}} | ||
| | | {{table/td}} | {{code|VARCHAR(12)}} | ||
| Номер телефона, с которого принят заказ. | | {{table/td}} | Номер телефона, с которого принят заказ. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|CUSTOMER}} | ||
| | | {{table/td}} | {{code|VARCHAR(80)}} | ||
| Имя заказчика | | {{table/td}} | Имя заказчика | ||
| Булкин | | {{table/td}} | Булкин | ||
|- | |- | ||
| | | {{table/td}} | {{code|SOURCE}} | ||
| | | {{table/td}} | {{code|VARCHAR(80)}} | ||
| Полный адрес подачи такси. | | {{table/td}} | Полный адрес подачи такси. | ||
| Ленина, 24-68 | | {{table/td}} | Ленина, 24-68 | ||
|- | |- | ||
| | | {{table/td}} | {{code|DESTINATION}} | ||
| | | {{table/td}} | {{code|VARCHAR(80)}} | ||
| Полный адрес назначения. | | {{table/td}} | Полный адрес назначения. | ||
| Пушкинская, 114-8 | | {{table/td}} | Пушкинская, 114-8 | ||
|- | |- | ||
| | | {{table/td}} | {{code|CREWID}} | ||
| | | {{table/td}} | {{code|NUMERIC(18,0)}} | ||
| Идентификатор экипажа-исполнителя. | | {{table/td}} | [[ИД экипажа|Идентификатор экипажа-исполнителя]]. | ||
| 68 | | {{table/td}} | 68 | ||
|- | |- | ||
| | | {{table/td}} | {{code|SUMM}} | ||
| | | {{table/td}} | {{code|NUMERIC(10,2)}} | ||
| Сумма за заказ. | | {{table/td}} | Сумма за заказ. | ||
| 500 | | {{table/td}} | 500 | ||
|- | |- | ||
| | | {{table/td}} | {{code|STARTUSER}} | ||
| | | {{table/td}} | {{code|NUMERIC(18,0)}} | ||
| Идентификатор оператора, принявшего заказ. | | {{table/td}} | Идентификатор оператора, принявшего заказ. | ||
| 4 | | {{table/td}} | 4 | ||
|- | |- | ||
| | | {{table/td}} | {{code|STARTTIME}} | ||
| | | {{table/td}} | {{code|TIMESTAMP}} | ||
| Время приема заказа. | | {{table/td}} | Время приема заказа. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|SOURCE_STREET}} | ||
| | | {{table/td}} | {{code|NUMERIC(18,0)}} | ||
| Идентификатор улицы подачи. | | {{table/td}} | Идентификатор улицы подачи. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|SOURCE_POINT}} | ||
| | | {{table/td}} | {{code|NUMERIC(18,0)}} | ||
| Идентификатор пункта подачи. | | {{table/td}} | Идентификатор пункта подачи. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|SOURCE_HOUSE}} | ||
| | | {{table/td}} | {{code|VARCHAR(10)}} | ||
| Номер дома подачи. | | {{table/td}} | Номер дома подачи. | ||
| 24 | | {{table/td}} | 24 | ||
|- | |- | ||
| | | {{table/td}} | {{code|SOURCE_FLAT}} | ||
| | | {{table/td}} | {{code|VARCHAR(10)}} | ||
| Номер квартиры подачи. | | {{table/td}} | Номер квартиры подачи. | ||
| 68 | | {{table/td}} | 68 | ||
|- | |- | ||
| | | {{table/td}} | {{code|SOURCE_TIME}} | ||
| | | {{table/td}} | {{code|TIMESTAMP}} | ||
| Время подачи. | | {{table/td}} | Время подачи. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|DESTINATION_STREET}} | ||
| | | {{table/td}} | {{code|NUMERIC(18,0)}} | ||
| Идентификатор улицы назначения. | | {{table/td}} | Идентификатор улицы назначения. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|DESTINATION_POINT}} | ||
| | | {{table/td}} | {{code|NUMERIC(18,0)}} | ||
| Идентификатор пункта назначения. | | {{table/td}} | Идентификатор пункта назначения. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|DESTINATION_HOUSE}} | ||
| | | {{table/td}} | {{code|VARCHAR(10)}} | ||
| Номер дома назначения. | | {{table/td}} | Номер дома назначения. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|DESTINATION_FLAT}} | ||
| | | {{table/td}} | {{code|VARCHAR(10)}} | ||
| Номер квартиры назначения. | | {{table/td}} | Номер квартиры назначения. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|CLIENTID}} | ||
| | | {{table/td}} | {{code|NUMERIC(18,0)}} | ||
| Идентификатор клиента. | | {{table/td}} | Идентификатор клиента. | ||
| | | {{table/td}} | | ||
|- | |- | ||
| | | {{table/td}} | {{code|IS_PRIOR}} | ||
| | | {{table/td}} | {{code|NUMERIC(1,0)}} | ||
| Признак предварительного заказа. | | {{table/td}} | Признак предварительного заказа. | ||
| 1 | | {{table/td}} | 1 | ||
|- | |- | ||
| | | {{table/td}} | {{code|IS_LOCKED}} | ||
| | | {{table/td}} | {{code|SMALLINT}} | ||
| Признак блокировки заказа. | | {{table/td}} | Признак блокировки заказа. | ||
| 1 | | {{table/td}} | 1 | ||
|- | |- | ||
| | | {{table/td}} | {{code|MONEY_RECEIVE}} | ||
| | | {{table/td}} | {{code|SMALLINT}} | ||
| Признак принятия оплаты водителем. | | {{table/td}} | Признак принятия оплаты водителем. | ||
| 1 | | {{table/td}} | 1 | ||
|} | |} | ||
=== | === {{code|CloseNewOrder}} === | ||
Метод | Метод {{code|CloseNewOrder}} завершает редактирование полей заказа и добавляет его в [[список заказов]] Такси-Мастер. | ||
Этот метод необходимо вызвать для того, чтобы созданный заказ появился в списке. | Этот метод необходимо вызвать для того, чтобы созданный заказ появился в списке. | ||
==== Синтаксис ==== | ==== Синтаксис ==== | ||
Синтаксис метода | Синтаксис метода {{code|CloseNewOrder}}: | ||
HRESULT CloseNewOrder(); | HRESULT CloseNewOrder(); | ||
| Строка 203: | Строка 203: | ||
Метод вызывается без параметров. | Метод вызывается без параметров. | ||
=== | === {{code|BeginCoordsSending}} === | ||
Метод | Метод {{code|BeginCoordsSending}} создает объект для передачи в Такси-Мастер ряда координат. | ||
==== Синтаксис ==== | ==== Синтаксис ==== | ||
Синтаксис метода | Синтаксис метода {{code|BeginCoordsSending}}: | ||
HRESULT BeginCoordsSending(); | HRESULT BeginCoordsSending(); | ||
| Строка 213: | Строка 213: | ||
Метод вызывается без параметров. | Метод вызывается без параметров. | ||
=== | === {{code|SendCoords}} === | ||
Метод | Метод {{code|SendCoords}} добавляет в объект координаты и время их передачи. | ||
==== Синтаксис ==== | ==== Синтаксис ==== | ||
Синтаксис метода | Синтаксис метода {{code|SendCoords}}: | ||
HRESULT SendCoords(INT Identifier, SINGLE Latitude, SINGLE Longitude); | HRESULT SendCoords(INT Identifier, SINGLE Latitude, SINGLE Longitude); | ||
# | # {{code|Identifier}} — идентификатор водителя (см. поле {{field|Идентификатор}} в [[Справочник «Экипажи»|карточке экипажа]]. Для удобства можно использовать [[ИД водителя]], его можно посмотреть в [[Справочник «Водители»|карточке водителя]]. | ||
# | # {{code|Latitude}} — число с плавающей запятой, обозначающее широту. | ||
# | # {{code|Longitude}} — число с плавающей запятой, обозначающее долготу. | ||
=== | === {{code|EndCoordsSending}} === | ||
Метод | Метод {{code|EndCoordsSending}} завершает набор координат и отправляет объект с координатами в Такси-Мастер. | ||
==== Синтаксис ==== | ==== Синтаксис ==== | ||
Синтаксис метода | Синтаксис метода {{code|EndCoordsSending}}: | ||
HRESULT EndCoordsSending(); | HRESULT EndCoordsSending(); | ||
| Строка 242: | Строка 242: | ||
{| {{table}} | {| {{table}} | ||
! Проблема | ! {{table/th}} | Проблема | ||
! Картинка | ! {{table/th}} |Картинка | ||
<small>(нажмите, чтобы посмотреть)</small> | <small>(нажмите, чтобы посмотреть)</small> | ||
! Решение | ! {{table/th}} |Решение | ||
|- | |- | ||
| Невозможно создать объект | | {{table/td}} | Невозможно создать объект | ||
| [[Image:Tmmanager-exception-on-create.png|150px]] | | {{table/td}} | [[Image:Tmmanager-exception-on-create.png|150px]] | ||
| | | {{table/td}} | | ||
COM-объект не установлен в системе, поэтому невозможно создать его экземпляр. | COM-объект не установлен в системе, поэтому невозможно создать его экземпляр. | ||
Чтобы иметь возможность использовать объект, установите его (см. выше). | Чтобы иметь возможность использовать объект, установите его (см. выше). | ||
| Строка 255: | Строка 255: | ||
== Ссылки == | == Ссылки == | ||
* | * {{code|http://ru.wikipedia.org/wiki/DCOM}} — о DCOM на Википедии. | ||
* | * {{code|http://www.microsoft.com/com}} — описание технологии COM на сайте автора. | ||
[[Категория:COM-приложения]] | [[Категория:COM-приложения]] | ||
[[Категория:Установка]] | [[Категория:Установка]] | ||
[[Категория:Подключающиеся к базе данных]] | [[Категория:Подключающиеся к базе данных]] | ||
Версия от 10:25, 14 октября 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.
Возможные проблемы
Проблемы, которые могут возникнуть, описаны? в таблице:
Ссылки
- http://ru.wikipedia.org/wiki/DCOM — о DCOM на Википедии.
- http://www.microsoft.com/com — описание технологии COM на сайте автора.