19.02.2013, 08:54
|
| »»» |
#1
|
Начинающий
Бородино Красноярский СУЭК
Регистрация: 19.02.2013
Сообщений: 4
|
Отчет по топливозаправщику
Добрый день.
На данный момент ускоренными темпами внедряем Автограф, машин с каждым днем все больше и больше, становится труднее делать постоянный анализ отклонений по заправке (т.к. он делается вручную). Проблема: возможно ли объединить отчет по топливозаправщику и отчет по заправкам и сливам ТС в один отчет , конкретнее - добавить данные о заправке с ДУТа заправляемого ТС в отчет по топливозаправщику, ну и соответственно разницу показаний. Пример на рисунке
Procent.pdf
Если это возможно, то подскажите как??????
|
|
|
|
19.02.2013, 13:11
|
| »»» |
#2
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,956
|
Интересный отчет. Хороший. Сложный в исполнении только. Точнее, даже не столь сложный, сколь будет достаточно медленным + требует отдельного написания кода его работы.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
Последний раз редактировалось SK; 19.02.2013 в 13:14.
|
|
|
|
19.02.2013, 13:36
|
| »»» |
#3
|
Дилер
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 15,022
|
Сообщение от SK
|
Точнее, даже не столь сложный, сколь будет достаточно медленным + требует отдельного написания кода его работы.
|
Если ключами тыкать в заправщика и заправляемую машину то будет быстрый))) где-то я это уже слышал
Добавлено через 4 минуты
Сообщение от SK
|
не столь сложный, сколь будет достаточно медленным
|
всяко быстрее чем составить несколько отчетов и перенести их в ексель ну если машин так 10+
ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
|
|
|
|
19.02.2013, 14:15
|
| »»» |
#4
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,956
|
Просто нужно опросить заправщик + N его "ТС-клиентов" на некоем временном интервале (это и займет время, как отчет по N+1 машинам), потом каждый отпуск ГСМ заправщиком - сопоставить с "заправками" "ТС-клиентов".
SQL-выборка по заданным условиям...
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
20.02.2013, 03:52
|
| »»» |
#5
|
Начинающий
Бородино Красноярский СУЭК
Регистрация: 19.02.2013
Сообщений: 4
|
Запрос написать не проблема, вся сложность состоит в доступе к данным. Модуль отчетов требует чтобы в него сразу добавили шаблон, а в шаблоне два десятка наборов данных (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»), с номером равным порядковому номеру таблицы.
|
Почему должно совпадать. а если мне нужно создать вспомогательную выборку (как я делаю в своих программах если в БД не предусмотрены хранимые процедуры). Так значит пользоваться массивами, записями что ведет к ненужному раздуванию кода
|
|
|
|
20.02.2013, 06:40
|
| »»» |
#6
|
Дилер
Москва, Липецк, Воронеж, Тамбов, Пенза, Орел
Регистрация: 29.06.2011
Сообщений: 6,755
|
Сообщение от plex
|
Если ключами тыкать в заправщика и заправляемую машину то будет быстрый))) где-то я это уже слышал
|
знаю где
1-Если есть идентификация тс (и водителей) при заправке с бензовоза это сильно облегчит задачу.
2-Я бы подключил 2 датасета для отчета.т.е. разбил таблицу на левое и правое значение. Левое от бенза, правое от тс.
Соглашусь с SK данный отчет достаточно сложен в реализации...
И не факт, что будет работать дотстаточно хорошо.
Но соглашусьс топикстартером -очень нужный.
Консалтинговая Компания ITEGRA (ООО «Айтегра») г. Москва
Мартыненко Сергей Владимирович, эксперт
|
|
|
|
20.02.2013, 13:46
|
| »»» |
#7
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,956
|
Сообщение от altskeb
|
Мне не понятно как формируется и "живет" таблица ''temp0.dbf'' . Открываю - она чистая, значит во время выполнения программы что-то туда пишется , как - не понятно.
Еще один пример из отчетов (заправки и сливы баков)
|
Это служебные временные таблицы. Какой набор данных запросит тот или иной отчет, тот туда и пишется... Эти файлы не для доступа извне.
А вообще, все поля для всех типов запросов есть в OLE-спецификации.
Кроме того, FastReport позволяет использовать полностью свой код в отчете - от запроса на получение любых наборов данных, до его вывода.
Порядок получения данных - см. в документации по OLE.
Работать отчет будет хорошо - чего бы ему не работать... Просто надо написать его... Отчет весьма нужный и полезный.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
20.02.2013, 19:42
|
| »»» |
#8
|
экс-Дилер
Регистрация: 08.02.2011
Сообщений: 489
|
Сообщение от SK
|
Просто нужно опросить заправщик + N его "ТС-клиентов" на некоем временном интервале (это и займет время, как отчет по N+1 машинам), потом каждый отпуск ГСМ заправщиком - сопоставить с "заправками" "ТС-клиентов".
SQL-выборка по заданным условиям...
|
Делал я такой отчет на SQL в другом ПО, SQL Запрос не сложный, были лишь проблемы с расчетными временными интервалами начала и конца заправки и слива, скажем так, в том ПО в котором я это делал, временной интервал мог быть больше на 5 - 10 минут от реального, что не давало возможности определить их сближение по крайним точкам, приходилось выбирать координату по времени равной середине интервала. Но результат был просто потрясающий, столько людей наказал!!!)))
ООО «АвтоТрансСервис» (ООО «АТС-Мониторинг»), г.Нижний Новгород, Нижегородская область, Россия
Тарасов Роман Юрьевич, генеральный директор
|
|
|
|
21.02.2013, 04:19
|
| »»» |
#9
|
Начинающий
Бородино Красноярский СУЭК
Регистрация: 19.02.2013
Сообщений: 4
|
Сообщение от SK
|
Сообщение от altskeb
|
Мне не понятно как формируется и "живет" таблица ''temp0.dbf'' . Открываю - она чистая, значит во время выполнения программы что-то туда пишется , как - не понятно.
Еще один пример из отчетов (заправки и сливы баков)
|
Это служебные временные таблицы. Какой набор данных запросит тот или иной отчет, тот туда и пишется... Эти файлы не для доступа извне.
А вообще, все поля для всех типов запросов есть в OLE-спецификации.
Кроме того, FastReport позволяет использовать полностью свой код в отчете - от запроса на получение любых наборов данных, до его вывода.
Порядок получения данных - см. в документации по OLE.
.
|
То есть я смогу из внешнего модуля отчетов (который идет вместе с Автографом) запустить свой отчет или нужно писать свой код в другой системе программирования с использованием OLE и уже в нем формировать обработку данных? Дело в том что модуль внешних отчетов требует сразу выбрать шаблон и полностью "рулит" им - начиная с выборки данных и заканчивая расположением шапки и тп.
При создании нового отчета модуль требует выбрать шабло из уже существующих в системе - я не могу создать свой простой отчет. А составной требует выбрать шаблон из простых и все - не залезешь.
Допустим я создам свой шаблон(файл FastReport) и подсуну его вместо файла, идущего с простым отчетом, и что - модуль внешних отчетов будет его форматировать под свои вшитые шаблоны. Я так понимаю - вся обработка данных идет в модуле отчетов, а FastReport только для отображения информации. Получается я не смогу из модуля запустить свой шаблон(например я захочу сделать кросс отчет, кардинально отличающийся от идущих в отчете шаблонов).Проясните пожалуйста мне это.
|
|
|
|
21.02.2013, 04:34
|
| »»» |
#10
|
Дилер
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 15,022
|
Сообщение от altskeb
|
То есть я смогу из внешнего модуля отчетов (который идет вместе с Автографом) запустить свой отчет или нужно писать свой код в другой системе
|
В модуле отчетов можете написать свой код (с нуля), который будет выполнятся.
ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 19:02. Часовой пояс GMT.
|
|