ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ»

ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ» (http://forum.tk-chel.ru/index.php)
-   Система «АвтоГРАФ»: Программное обеспечение (http://forum.tk-chel.ru/forumdisplay.php?f=4)
-   -   Отчет по топливозаправщику (http://forum.tk-chel.ru/showthread.php?t=2751)

altskeb 19.02.2013 08:54

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

Если это возможно, то подскажите как??????

SK 19.02.2013 13:11

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

plex 19.02.2013 13:36

Цитата:

Сообщение от SK (Сообщение 50293)
Точнее, даже не столь сложный, сколь будет достаточно медленным + требует отдельного написания кода его работы.

Если ключами тыкать в заправщика и заправляемую машину то будет быстрый))) где-то я это уже слышал:thumbup:

Добавлено через 4 минуты
Цитата:

Сообщение от SK (Сообщение 50293)
не столь сложный, сколь будет достаточно медленным

всяко быстрее чем составить несколько отчетов и перенести их в ексель ну если машин так 10+

SK 19.02.2013 14:15

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

altskeb 20.02.2013 03:52

Запрос написать не проблема, вся сложность состоит в доступе к данным. Модуль отчетов требует чтобы в него сразу добавили шаблон, а в шаблоне два десятка наборов данных (dataset1, dataset2 ...) и к какому мне обращаться из них:aaaa:. В своих программах на 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»), с номером равным порядковому номеру таблицы.


Почему должно совпадать:aaaa:. а если мне нужно создать вспомогательную выборку (как я делаю в своих программах если в БД не предусмотрены хранимые процедуры). Так значит пользоваться массивами, записями что ведет к ненужному раздуванию кода

csistra 20.02.2013 06:40

Цитата:

Сообщение от plex (Сообщение 50295)
Если ключами тыкать в заправщика и заправляемую машину то будет быстрый))) где-то я это уже слышал

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

SK 20.02.2013 13:46

Цитата:

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

Это служебные временные таблицы. Какой набор данных запросит тот или иной отчет, тот туда и пишется... Эти файлы не для доступа извне.
А вообще, все поля для всех типов запросов есть в OLE-спецификации.
Кроме того, FastReport позволяет использовать полностью свой код в отчете - от запроса на получение любых наборов данных, до его вывода.
Порядок получения данных - см. в документации по OLE.

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

atc52 20.02.2013 19:42

Цитата:

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


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

altskeb 21.02.2013 04:19

Цитата:

Сообщение от SK (Сообщение 50427)
Цитата:

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

Это служебные временные таблицы. Какой набор данных запросит тот или иной отчет, тот туда и пишется... Эти файлы не для доступа извне.
А вообще, все поля для всех типов запросов есть в OLE-спецификации.
Кроме того, FastReport позволяет использовать полностью свой код в отчете - от запроса на получение любых наборов данных, до его вывода.
Порядок получения данных - см. в документации по OLE.
.

То есть я смогу из внешнего модуля отчетов (который идет вместе с Автографом) запустить свой отчет или нужно писать свой код в другой системе программирования с использованием OLE и уже в нем формировать обработку данных? Дело в том что модуль внешних отчетов требует сразу выбрать шаблон и полностью "рулит" им - начиная с выборки данных и заканчивая расположением шапки и тп.
При создании нового отчета модуль требует выбрать шабло из уже существующих в системе - я не могу создать свой простой отчет. А составной требует выбрать шаблон из простых и все - не залезешь.
Допустим я создам свой шаблон(файл FastReport) и подсуну его вместо файла, идущего с простым отчетом, и что - модуль внешних отчетов будет его форматировать под свои вшитые шаблоны. Я так понимаю - вся обработка данных идет в модуле отчетов, а FastReport только для отображения информации. Получается я не смогу из модуля запустить свой шаблон(например я захочу сделать кросс отчет, кардинально отличающийся от идущих в отчете шаблонов).Проясните пожалуйста мне это.

plex 21.02.2013 04:34

Цитата:

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

В модуле отчетов можете написать свой код (с нуля), который будет выполнятся.


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

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