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

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

Antony41 16.02.2015 08:42

csistra, это сообщение для SK
Цитата:

Сообщение от SK (Сообщение 99662)
Сообщение от Antony41
Я Вас понял, но почему же TfrxDataSet не наполнен такими значениями для проверки существует ли датчик.
А какие критерии "существования" датчика ?
Вы еще, кстати, забыли про наследование незаданных индивидуальных свойств ТС из "общих свойств".

Например можно уточнить если не один из датчиков топлива не задан то считать это критерием, или создать отдельный дополнительный CheckBox
http://pikucha.ru/iebmX
http://pikucha.ru/iebn7

http://pikucha.ru/iebmY
http://pikucha.ru/iebn8

Про наследование свойств можно по подробней?

SK 16.02.2015 09:04

Цитата:

Сообщение от Antony41 (Сообщение 99695)
Например можно уточнить если не один из датчиков топлива не задан

Таких переменных нет в ПО.
Впрочем, именно такие вещи легко отлавливаются через сравнение с 0. В реальной жизни абсолютный ноль - штука практически нереальная в уровне.

csistra 16.02.2015 12:39

Цитата:

Сообщение от Antony41 (Сообщение 99695)
csistra, это сообщение для SK

а я... а как жеж я :(

Antony41 16.02.2015 13:12

Как то это не совсем логично, например представим, Пробег тс 250км, а общий расход топлива в баках 0л, это что означает либо дут установленный на тс не работает либо он не задан в настройках, тоесть точно ответить нельзя что именно, а представим что там вместо пробега "звезда", "путь", как там её еще называют, тоесть надо будет зайти в настройки и всё равно посмотреть что же там на самом деле не задан датчик бака или он всё таки сломался и передаёт 0 литров

SK 16.02.2015 13:49

Antony41, там все гораздо сложнее. Может быть задан ДУТ, но не задан дискретный датчик фильтра ДУТа. Т.е. для бака или ДУТа он задан, как датчик, по которому производится фильтрация, но его логика не задана на вкладке дискретных датчиков. Либо один из ДУТов, составляющих в сумме Бак может быть не задан.
Получается, что простой контроль "задан / не задан" конечный параметр - несколько не совсем применим к ситуации. Поэтому, в свое время, такой упрощенный контроль был признан бесперспективным и иногда запутывающим пользователя.
Т.е. по-хорошему, надо проверять все переменные и параметры, участвующие в формировании, расчете и фильтрации значения конечного параметра.

Antony41 16.02.2015 16:06

SK, Эх ну что я могу сказать... печально это всё конечно. Ну нет значит нет. Поделюсь созданным мной отчётом и завтра буду пробовать объяснять это диспетчеру заказчика, а она ой какая упрямая... нас это не устраивает... нас это не устраивает...:aaaa:

https://yadi.sk/d/ST7UHNZAeiELY

SK 16.02.2015 16:38

Почему печально ? Это еще сущие мелочи. Предыдущее поколение ПО с фиксированным количеством датчиков, двигателей и т.п.
В новой версии ПО - таких ограничений просто нет. Может быть создано любое количество параметров, датчиков, двигателей, ДУТов, баков и чего угодно.
Причем эти "датчики" могут иметь не только имя, но и псевдоним для удобства группировки с другими такими же датчиками, но с другими именами. Обращение может идти и по имени и по псевдониму.

chaser 16.02.2015 17:01

Antony41, почему бы вам не забить в параметры двигателя расход топлива на тех ТС, где ДУТ не установлен, тогда у вас в расходе не будет 0

SK 16.02.2015 18:15

Я предложил решение с произвольными параметрами ТС.
Это по сути тот же чекбокс "ДУТ установлен", только не на вкладке ДУТа или бака.
Опять же, у меня возникает впечатление, что Antony41 не совсем понимает, что такое датасет, сиречь БД с которой работает компонент отчетов. Т.е. это таблица записей базы данных, а не объекты, к которым можно обращаться с различными методами или читать их свойства. БД можно только проверить на наличие или отсутствие полей или значений в них.
Работа через датасеты, по сути, это двухступенчатая схема:
1. Сначала из ПО выгружается датасет (таблица данных) с заданными полями в файл или в память.
2. Потом модуль отчетов работает с этим файлом или виртуальной таблицей из памяти. При этом, модуль работает уже только с таблицей, а не с самим АГ или его объектами. Это позволяет быстро выгрузить некий объем данных и освободить ПО для других запросов и задач. Модуль отчетов потом работает с этими данными по сути практически изолированно от самого ПО.

Работать с объектными переменными АвтоГРАФ-а тоже можно (я так работал с АГ в отчетах для 1С), но это совсем другой тип работы, нежели через датасеты.

Antony41 16.02.2015 23:56

Цитата:

Сообщение от chaser (Сообщение 99759)
Antony41, почему бы вам не забить в параметры двигателя расход топлива на тех ТС, где ДУТ не установлен, тогда у вас в расходе не будет 0

Общий расход топлива складывается из сумм уровней топлива баков (начальный-конечный+заправка-слив)
Расчет расхода по норме это не то что нам нужно.

Цитата:

Сообщение от SK (Сообщение 99754)
В новой версии ПО - таких ограничений просто нет.

Это вы наверное про Автограф NET?

Цитата:

Сообщение от SK (Сообщение 99761)
Antony41 не совсем понимает, что такое датасет

Я сам программист и сам для решения задач использую FastReport, работал как с промежуточным компонентом связи исходных данных TfrxDBDataSet+исходная БД, так и с TfrxDBDataSet+TdxMemData(сформированн я БД в памяти)
Цитата:

Сообщение от SK (Сообщение 99761)
1. Сначала из ПО выгружается датасет (таблица данных) с заданными полями в файл или в память.

Предполагаю что перед построением отчета это именно так это и реализовано, тоесть используется связка TfrxDBDataSet+например TdxMemData
более того специально для таких целей FastReport поддерживает передачу переменных различных типов
ничего не мешает добавить в него переменную или поле с настройкой датчика, которую мы будем далее считывать уже в репорте
Цитата:

Сообщение от SK (Сообщение 99761)
Т.е. это таблица записей базы данных, а не объекты, к которым можно обращаться с различными методами или читать их свойства

на момент формирования отчета настройки датчиков поместить в мемдатасет и передать его в отчёт.

Вот реализация одного из проектов другого разработчика, тут используется StiReport не совсем FastReport но это сути не меняет
Есть источники данных, а так же переменные в которые программа поместит нужные значения в момент формирования отчета
http://pikucha.ru/iebxt
и вот как потом выглядит построенный отчёт
http://pikucha.ru/iebxu
Помимо этого можно сделать проверку любого датчика (задан /не задан)

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

Небольшой пример, предположим что я хочу узнать задан ли датчик моточасов
Я смотрю пробег и моточасы, тс проехало 100 км и моточасов больше 0,
значит датчик моточасов задан и работает, а если тс стояло на месте или его мотало по боксу (звезда)? получается если там звезда значит пробег не верный (и возможно должен быть равен 0), по логике выходит что пробег > 0 и моточасы = 0, значит датчик моточасов не исправен или не работает. Что можно еще подключить к логике топливный датчик я тоже не могу, он тоже может работать может не работать? Скорость не могу она тоже может равняться 0 на что опереться, от сюда всё и вытекает. А так бы можно было с увеностью посмотреть задан ли датчик и иметь точное понятие можно ли вобще смотреть на данные топлива или датчик моточасов

Добавлено через 39 минут
я предложил вариант не для того чтобы проверять работает не работает датчик, а для того чтобы иметь визуальное представление установлен на тс датчик топлива или другой датчик или нет при построении отчёта для диспетчеров клиентов, они звонят и спрашивают почему у нас пробег есть, а расход топлива 0л, мы объясняем что на баке тс не установлен дут, а они нам ну тогда и ставте прочерки, или в примечании отчёта пишите, что вы нам нули то шлете...

PS. Это же только плюс, если данный функционал будет реализован он откроет дополнительные возможности для разработки отчётов и упростит их логику


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

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