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 происходит в один шаг: нужно просто запустить исполняемый файл. При этом объект VBS?).
TMMgr зарегистрируется в списке приложений DCOM через службу компонентов, и его можно использовать для вызова методов из стороннего приложения (например, из скриптаСоздание объекта
Создание объекта в вашей программе происходит довольно просто. Пример на 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 .
- базы данных. Путь должен быть указан полностью, включая имя диска. Например, C:\Program Files\TMEnterprise\tme_db.fdb . FilePath — строка, обозначающая путь к файлу
- 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 на сайте автора.