Ответ
 
Опции темы
Старый 19.02.2013, 08:54    | »»» |  #1
altskeb
Начинающий
 
Аватар для altskeb
 
Бородино Красноярский СУЭК
Регистрация: 19.02.2013
Сообщений: 4
altskeb is on a distinguished road
Exclamation Отчет по топливозаправщику

Добрый день.
На данный момент ускоренными темпами внедряем Автограф, машин с каждым днем все больше и больше, становится труднее делать постоянный анализ отклонений по заправке (т.к. он делается вручную). Проблема: возможно ли объединить отчет по топливозаправщику и отчет по заправкам и сливам ТС в один отчет , конкретнее - добавить данные о заправке с ДУТа заправляемого ТС в отчет по топливозаправщику, ну и соответственно разницу показаний. Пример на рисунке
Procent.pdf

Если это возможно, то подскажите как??????
altskeb вне форума   Ответить с цитированием
Старый 19.02.2013, 13:11    | »»» |  #2
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,970
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Интересный отчет. Хороший. Сложный в исполнении только. Точнее, даже не столь сложный, сколь будет достаточно медленным + требует отдельного написания кода его работы.

ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности

Последний раз редактировалось SK; 19.02.2013 в 13:14.
SK вне форума   Ответить с цитированием
Старый 19.02.2013, 13:36    | »»» |  #3
plex
Дилер
 
Аватар для plex
 
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 14,952
plex is on a distinguished road
Отправить сообщение для plex с помощью ICQ Отправить сообщение для plex с помощью Skype™
По умолчанию

Сообщение от SK Посмотреть сообщение
Точнее, даже не столь сложный, сколь будет достаточно медленным + требует отдельного написания кода его работы.
Если ключами тыкать в заправщика и заправляемую машину то будет быстрый))) где-то я это уже слышал

Добавлено через 4 минуты
Сообщение от SK Посмотреть сообщение
не столь сложный, сколь будет достаточно медленным
всяко быстрее чем составить несколько отчетов и перенести их в ексель ну если машин так 10+

ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
plex вне форума   Ответить с цитированием
Старый 19.02.2013, 14:15    | »»» |  #4
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,970
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Просто нужно опросить заправщик + N его "ТС-клиентов" на некоем временном интервале (это и займет время, как отчет по N+1 машинам), потом каждый отпуск ГСМ заправщиком - сопоставить с "заправками" "ТС-клиентов".
SQL-выборка по заданным условиям...

ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
SK вне форума   Ответить с цитированием
Старый 20.02.2013, 03:52    | »»» |  #5
altskeb
Начинающий
 
Аватар для altskeb
 
Бородино Красноярский СУЭК
Регистрация: 19.02.2013
Сообщений: 4
altskeb is on a distinguished road
По умолчанию

Запрос написать не проблема, вся сложность состоит в доступе к данным. Модуль отчетов требует чтобы в него сразу добавили шаблон, а в шаблоне два десятка наборов данных (dataset1, dataset2 ...) и к какому мне обращаться из них. В своих программах на Delphi я часто использую компонент FastReport, но при формировании набора данных я четко знаю где лежит БД, какие у нее поля и что я передаю в этот компонент(или если запрос в самом компоненте то обращаюсь напрямую к БД). Здесь же, исходя из уже существующих шаблонов, набор данных создает сам модуль отчетов и тут начинаются проблемы - приведу текст одного из существующих отчетов:
Код:
 
procedure FastReportOnStartReport(Sender: TfrxComponent);
begin
  BDEQuery2.Sql.Clear();
  BDEQuery2.Sql.Add('SELECT t1.S_LATITUDE as LAT,' +   //широта                                            
  ' t1.S_LONGITUDE as LON,'+      // долгота                       
  ' t1.S_NAME as SNAME, ' +       //   Контрольная точка                                                   
  't1.S_REAL_TIME as S_TIME,'+    //   начало заправки                                               
  ' t1.E_REAL_TIME as E_TIME,'+   //    конец заправки                                     
  ' t1.REAL_CONT as CONT,'+       //   продолжительность заправки                                                         
  ' t1.T3_E_LEVEL as E_LEVEL,'+   //  конечный уровень топлива                                                                      
  ' t1.T3_S_LEVEL as S_LEVEL, ' + //   начальный уровень топлива                                                        
  ' t2.NUMBER as Number1,'+       // название машины
  ' t1.SERNUM as SERNUM,' +                
  ' t2.id as id1 FROM ''temp0.dbf'' t1 LEFT JOIN ''Соответствие.dbf'' t2 on t1.DRIVER_ID = t2.id order by S_TIME');  // берет название машины по ID в файле "соответствие"                                                                                               
  BDEQuery2.Open();                        
end;
Мне не понятно как формируется и "живет" таблица ''temp0.dbf'' . Открываю - она чистая, значит во время выполнения программы что-то туда пишется , как - не понятно.
Еще один пример из отчетов (заправки и сливы баков)
Код:
 
[(IIF(<Dataset1."S_NAME"> <>'', <Dataset1."S_NAME">, 'N/A'))]
Этот код записан в разделе "Masterdata"
Шаблон заполнен данными и работает, но в нем не видно как и откуда мы получили Dataset1.
Мне бы хотелось знать порядок обработки данных в модуле отчетов.
И еще меня смущает комментарий в описании модуля
Код:
1.     Кол-во таблиц в шаблоне должно совпадать с кол-вом отчетов добавленных в состав отчета.
2.     В отчет должны быть добавлены столько датасетов с номерами по порядку (Меню «Отчет -> Данные»), сколько таблиц в шаблоне и каждой таблице должен быть назначен свой датасет (сво-во таблицы «Dataset»), с номером равным порядковому номеру таблицы.

Почему должно совпадать. а если мне нужно создать вспомогательную выборку (как я делаю в своих программах если в БД не предусмотрены хранимые процедуры). Так значит пользоваться массивами, записями что ведет к ненужному раздуванию кода
altskeb вне форума   Ответить с цитированием
Старый 20.02.2013, 06:40    | »»» |  #6
csistra
ЭКСПЕРТ
 
Аватар для csistra
 
Москва, Липецк, Воронеж, Тамбов, Пенза, Орел
Регистрация: 29.06.2011
Сообщений: 6,754
csistra is on a distinguished road
По умолчанию

Сообщение от plex Посмотреть сообщение
Если ключами тыкать в заправщика и заправляемую машину то будет быстрый))) где-то я это уже слышал
знаю где
1-Если есть идентификация тс (и водителей) при заправке с бензовоза это сильно облегчит задачу.
2-Я бы подключил 2 датасета для отчета.т.е. разбил таблицу на левое и правое значение. Левое от бенза, правое от тс.
Соглашусь с SK данный отчет достаточно сложен в реализации...
И не факт, что будет работать дотстаточно хорошо.
Но соглашусьс топикстартером -очень нужный.

Консалтинговая Компания ITEGRA (ООО «Айтегра») г. Москва
Мартыненко Сергей Владимирович, эксперт
csistra вне форума   Ответить с цитированием
Старый 20.02.2013, 13:46    | »»» |  #7
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,970
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Сообщение от altskeb Посмотреть сообщение
Мне не понятно как формируется и "живет" таблица ''temp0.dbf'' . Открываю - она чистая, значит во время выполнения программы что-то туда пишется , как - не понятно.
Еще один пример из отчетов (заправки и сливы баков)
Это служебные временные таблицы. Какой набор данных запросит тот или иной отчет, тот туда и пишется... Эти файлы не для доступа извне.
А вообще, все поля для всех типов запросов есть в OLE-спецификации.
Кроме того, FastReport позволяет использовать полностью свой код в отчете - от запроса на получение любых наборов данных, до его вывода.
Порядок получения данных - см. в документации по OLE.

Работать отчет будет хорошо - чего бы ему не работать... Просто надо написать его... Отчет весьма нужный и полезный.

ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
SK вне форума   Ответить с цитированием
Старый 20.02.2013, 19:42    | »»» |  #8
atc52
экс-Дилер
 
Аватар для atc52
 
Регистрация: 08.02.2011
Сообщений: 489
atc52 is on a distinguished road
По умолчанию

Сообщение от SK Посмотреть сообщение
Просто нужно опросить заправщик + N его "ТС-клиентов" на некоем временном интервале (это и займет время, как отчет по N+1 машинам), потом каждый отпуск ГСМ заправщиком - сопоставить с "заправками" "ТС-клиентов".
SQL-выборка по заданным условиям...

Делал я такой отчет на SQL в другом ПО, SQL Запрос не сложный, были лишь проблемы с расчетными временными интервалами начала и конца заправки и слива, скажем так, в том ПО в котором я это делал, временной интервал мог быть больше на 5 - 10 минут от реального, что не давало возможности определить их сближение по крайним точкам, приходилось выбирать координату по времени равной середине интервала. Но результат был просто потрясающий, столько людей наказал!!!)))

ООО «АвтоТрансСервис» (ООО «АТС-Мониторинг»), г.Нижний Новгород, Нижегородская область, Россия
Тарасов Роман Юрьевич, генеральный директор
atc52 вне форума   Ответить с цитированием
Старый 21.02.2013, 04:19    | »»» |  #9
altskeb
Начинающий
 
Аватар для altskeb
 
Бородино Красноярский СУЭК
Регистрация: 19.02.2013
Сообщений: 4
altskeb is on a distinguished road
По умолчанию

Сообщение от SK Посмотреть сообщение
Сообщение от altskeb Посмотреть сообщение
Мне не понятно как формируется и "живет" таблица ''temp0.dbf'' . Открываю - она чистая, значит во время выполнения программы что-то туда пишется , как - не понятно.
Еще один пример из отчетов (заправки и сливы баков)
Это служебные временные таблицы. Какой набор данных запросит тот или иной отчет, тот туда и пишется... Эти файлы не для доступа извне.
А вообще, все поля для всех типов запросов есть в OLE-спецификации.
Кроме того, FastReport позволяет использовать полностью свой код в отчете - от запроса на получение любых наборов данных, до его вывода.
Порядок получения данных - см. в документации по OLE.
.
То есть я смогу из внешнего модуля отчетов (который идет вместе с Автографом) запустить свой отчет или нужно писать свой код в другой системе программирования с использованием OLE и уже в нем формировать обработку данных? Дело в том что модуль внешних отчетов требует сразу выбрать шаблон и полностью "рулит" им - начиная с выборки данных и заканчивая расположением шапки и тп.
При создании нового отчета модуль требует выбрать шабло из уже существующих в системе - я не могу создать свой простой отчет. А составной требует выбрать шаблон из простых и все - не залезешь.
Допустим я создам свой шаблон(файл FastReport) и подсуну его вместо файла, идущего с простым отчетом, и что - модуль внешних отчетов будет его форматировать под свои вшитые шаблоны. Я так понимаю - вся обработка данных идет в модуле отчетов, а FastReport только для отображения информации. Получается я не смогу из модуля запустить свой шаблон(например я захочу сделать кросс отчет, кардинально отличающийся от идущих в отчете шаблонов).Проясните пожалуйста мне это.
altskeb вне форума   Ответить с цитированием
Старый 21.02.2013, 04:34    | »»» |  #10
plex
Дилер
 
Аватар для plex
 
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 14,952
plex is on a distinguished road
Отправить сообщение для plex с помощью ICQ Отправить сообщение для plex с помощью Skype™
По умолчанию

Сообщение от altskeb Посмотреть сообщение
То есть я смогу из внешнего модуля отчетов (который идет вместе с Автографом) запустить свой отчет или нужно писать свой код в другой системе
В модуле отчетов можете написать свой код (с нуля), который будет выполнятся.

ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
plex вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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