TMManager (Архив) — различия между версиями
м (→Установка 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 на сайте автора.