Ответ
 
Опции темы
Старый 07.07.2016, 10:11    | »»» |  #1
SahatoshL
Опытный пользователь
 
Аватар для SahatoshL
 
Павлодар
Регистрация: 27.01.2015
Сообщений: 308
SahatoshL is on a distinguished road
По умолчанию Получение данных из Delphi

В соответствии с документацией «Описание COM-сервера АвтоГРАФ.doc» а так же веткой «http://board.tk-chel.ru/index.php?t=1103&o=0&st=10», дополнительно изучили пример для MS Excel.
Разрабатываем ПО для получения данных из системы AutoGRAPH.
Для разработки используем Embarcadero® Delphi® 2010 Version 14.0.3593.25826, ОС Win7x64, АвтоГРАФ 4.0.6
Стоит задача в получении израсходованного за период топлива и пробег.
Пишем:
var
Autograph : IAutoGRAPHAutomation;
Begin
Autograph := CoAutoGRAPHAutomation.Create ;
Autograph.StartComputing(SysAllocString(PChar('Car sList.ini')), 3001539, WideString(PChar('01.07.2016 00:00:00')), WideString(PChar('07.07.2016 00:00:00')), WideString(PChar('GSM')), 1);
//ждем пока Autograph.ComputingPercents
//тут же видем в АвтоГРАФе что указатель позиционируется на нужном нам транспорте и считает данные
//Пробуем получить данные
ListCars.Items.Add(FloatToStr(Autograph.TripsNum)) ; // возвращает количество рейсов, вопросов нет.

ListCars.Items.Add(Autograph.TripRealCont) ;
ListCars.Items.Add(FloatToStr(Autograph.TripTank1S tartLevel)) ;
ListCars.Items.Add(FloatToStr(Autograph.TripDistan ce)) ;
// ничего не возвращает
End ;

Подскажите пожалуйста что мы делаем не так?
SahatoshL вне форума   Ответить с цитированием
Старый 07.07.2016, 10:18    | »»» |  #2
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

SahatoshL,
у вас есть количество рейсов Autograph.TripsNum, чтобы запросить информацию по конкретному рейсу - вам нужно выставить индекс нужного вам рейса, например Autograph.TripIndex := 1;

PS: нумерация рейсов начинается с 1; можно сделать цикл по всем рейсам

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Старый 07.07.2016, 10:23    | »»» |  #3
SahatoshL
Опытный пользователь
 
Аватар для SahatoshL
 
Павлодар
Регистрация: 27.01.2015
Сообщений: 308
SahatoshL is on a distinguished road
По умолчанию

Сообщение от storm Посмотреть сообщение
SahatoshL,
у вас есть количество рейсов Autograph.TripsNum, чтобы запросить информацию по конкретному рейсу - вам нужно выставить индекс нужного вам рейса, например Autograph.TripIndex := 1;

PS: нумерация рейсов начинается с 1; можно сделать цикл по всем рейсам
Да, спасибо получилось. А как быть если мне нужна инфа за период не учитывая рейсы, а просто вся сумма?
SahatoshL вне форума   Ответить с цитированием
Старый 07.07.2016, 10:27    | »»» |  #4
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

Сообщение от SahatoshL Посмотреть сообщение
Да, спасибо получилось. А как быть если мне нужна инфа за период не учитывая рейсы, а просто вся сумма?
запускаете расчет без разбивки на рейсы - последний параметр в Autograph.StartComputing ставьте равным 0

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Старый 07.07.2016, 10:53    | »»» |  #5
SahatoshL
Опытный пользователь
 
Аватар для SahatoshL
 
Павлодар
Регистрация: 27.01.2015
Сообщений: 308
SahatoshL is on a distinguished road
По умолчанию

Сообщение от storm Посмотреть сообщение
Сообщение от SahatoshL Посмотреть сообщение
Да, спасибо получилось. А как быть если мне нужна инфа за период не учитывая рейсы, а просто вся сумма?
запускаете расчет без разбивки на рейсы - последний параметр в Autograph.StartComputing ставьте равным 0
не выходит, выводит 0
SahatoshL вне форума   Ответить с цитированием
Старый 07.07.2016, 10:58    | »»» |  #6
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

Сообщение от SahatoshL Посмотреть сообщение
не выходит, выводит 0
куда выводит?
вот так вызываете расчет
Autograph.StartComputing(SysAllocString(PChar('Car sList.ini')), 3001539, WideString(PChar('01.07.2016 00:00:00')), WideString(PChar('07.07.2016 00:00:00')), WideString(PChar('GSM')), 0);
если были данные за выбранный промежуток времени, то должен быть один рейс
(проверяете, что Autograph.TripsNum больше 0, то есть есть рейсы)
потом устанавливаете индекс рейса Autograph.TripIndex := 1;
и запрашиваете нужные вам данные за этот рейс

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Старый 07.07.2016, 10:58    | »»» |  #7
SahatoshL
Опытный пользователь
 
Аватар для SahatoshL
 
Павлодар
Регистрация: 27.01.2015
Сообщений: 308
SahatoshL is on a distinguished road
По умолчанию

Ну это решаемо на раз:for I := 1 to Autograph.TripsNum do
Еще вопрос, а как посчитать количество потраченного топлива?
SahatoshL вне форума   Ответить с цитированием
Старый 07.07.2016, 11:00    | »»» |  #8
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

Сообщение от SahatoshL Посмотреть сообщение
Еще вопрос, а как посчитать количество потраченного топлива?
все параметры описаны в документе «Описание COM-сервера АвтоГРАФ.doc»
вам нужен TripMotor1Fuel - Расход топлива двигателем 1

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Старый 07.07.2016, 11:02    | »»» |  #9
SahatoshL
Опытный пользователь
 
Аватар для SahatoshL
 
Павлодар
Регистрация: 27.01.2015
Сообщений: 308
SahatoshL is on a distinguished road
По умолчанию

все разобрался.
SahatoshL вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 06:15. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot