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

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

07.09.2011 03:47

Стандартный отчёт
 
стандартный отчёт выглядит так


печатается так


а хотелось бы выводить на печать вот такую информацию


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

LOOK 07.09.2011 04:18

Т.е. из-за того что у Вас
Цитата:

Сообщение от satp (Сообщение 14992)
в диспетчерской сидят люди, которым трудно даётся копм. им проще распечатать отчёт с программы, чем открывать модули

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

07.09.2011 04:25

Цитата:

Сообщение от LOOK (Сообщение 14993)
при подготовке отчета в разделе оформление/заголовок или текст под заголовком.

спасибо, добавил. а вот н.уровень и к. уровень как?

LOOK 07.09.2011 04:45

Цитата:

Сообщение от satp (Сообщение 14994)
спасибо, добавил. а вот н.уровень и к. уровень как?

К сожалению - никак. Для этого и был написан внешний модуль отчетов, который можно лопатить как душе угодно.

csistra 07.09.2011 05:24

Ничего не перепутали ????
Помоему если первый вопрошающий не может нажать на данных по тс пкм \экспортировать спеисок рейсов\настройка экспорта и выбрать то что ему нужно видеть в отчете.
Выбор кстати запоминается.... Достаточно 1 раз выбрать и не менять и будет вам счастье....
LOOK вроде бы диллер..... Поинтересуюсь! А из какого вы региона ?

07.09.2011 05:55

Цитата:

Сообщение от csistra (Сообщение 14999)
Достаточно 1 раз выбрать и не менять и будет вам счастье....

выбрал. отчёт поменялся в "Групповая обработка данных", а в основном отчёте ничего не поменялось.
а было бы не плохо редактировать стандартный отчёт.

LOOK 07.09.2011 06:14

Цитата:

Сообщение от csistra (Сообщение 14999)
Ничего не перепутали ????

Цитата:

Сообщение от satp (Сообщение 15003)
а в основном отчёте ничего не поменялось.
а было бы не плохо редактировать стандартный отчёт

Речь шла про основной отчет, а не про экспорт данных во внешние программы.

csistra 07.09.2011 06:16

Или мы говорим о разных вещах или вы что то делаете....
Стандартный отчет ( не внешний модуль) данные редактируются полностью...
Может Вам мануал стоит почитать ? там все вроде бы подробно на этот счет описано...

plex 07.09.2011 06:22

Наверно перепутали стандартный отчет и внешний модуль отчетов.

SK 07.09.2011 06:33

Да, похоже речь про технологические отчеты в Excel.
Необходимо использовать модуль отчетов.

07.09.2011 06:39

речь идёт о стандартном отчёте. видно же на картинке.

csistra 07.09.2011 07:25

тогда настройка экспорта данных вам в помощ

SK 07.09.2011 08:15

Господа, встроенные технологические отчеты - они изначально предполагались для быстрого просмотра и анализа, а не для красивого шаблонного вывода.
Модуль отчетов со встроенным редактором форм и данных - входит в состав инсталлятора ПО АвтоГРАФ.
Этот модуль давно пришел на ЗАМЕНУ встроенных отчетов - они более не развиваются (нет смысла дублировать функционал) и оставлены только по просьбам тех, кто к ним привык.

http://forum.tk-chel.ru/showthread.p...4985#post14985

csistra 07.09.2011 13:03

Ну не знаю как все. Нам проще работать со встроеными отчетами нежели с внешними..
Ну это мнение мое ...

SK 07.09.2011 13:33

Цитата:

Сообщение от csistra (Сообщение 15053)
Ну не знаю как все. Нам проще работать со встроеными отчетами нежели с внешними..
Ну это мнение мое ...

Я же сказал, что данные отчеты оставлены как атавизм.
Могу их вовсе потребовать убрать из системы, чтоб больше не смущали никого.
Допиливать их не получится - т.к. они делались чисто для вывода помеченных столбиков и не содержат никакой обработки данных.
А закат солнца вручную - это не вариант.
Сделали многофункциональный модуль отчетов с массой фич и форматов - это ЗАМЕНА старого.

csistra 07.09.2011 14:00

Не надо их убирать они удобные... и главное быстрые...
Не знаю как другие считают. Я думаю не стоит упиратся в модуль внешних отчетов. Это стандартизация "под всех" стандартные отчеты очень гибкие и достаточно удобно выпонлены. Да некоторых вещей не хватает которые есть во внешних отчетах.. Но как говорится, что есть.
Кстати когда выбирали систему автомониторинга, стандартные отчеты были одним из плюсов Вашей системы. по след признакам:
1-Настраиваются очень быстро и просто
2-Содержат лишь ту информацию которая необходима нам, т.е. лишних куч цифр нет.
3-Формирование отчетов достаточно быстрое ( по сравнению с другими ПО)

Добавлено через 50 секунд
кстати.... А есть библиотека у Вас где есть шаблоны отчетов... Я бы честно посмотрел может чего еще себе подобрал бы :)

SK 07.09.2011 19:16

Цитата:

Сообщение от csistra (Сообщение 15063)
Не надо их убирать они удобные... и главное быстрые...
Не знаю как другие считают. Я думаю не стоит упиратся в модуль внешних отчетов. Это стандартизация "под всех" стандартные отчеты очень гибкие и достаточно удобно выпонлены. Да некоторых вещей не хватает которые есть во внешних отчетах.. Но как говорится, что есть.

В том то и дело, что они есть, но... это всё... финиш... тупик... дальнейшая работа над ними требует кардинального переписывания программы. Из-за этого и было решено перейти на FastReports, раз уж все равно писать отчеты с нуля... Скорость - она имеет свою цену...
Цитата:

Кстати когда выбирали систему автомониторинга, стандартные отчеты были одним из плюсов Вашей системы. по след признакам:
1-Настраиваются очень быстро и просто
2-Содержат лишь ту информацию которая необходима нам, т.е. лишних куч цифр нет.
3-Формирование отчетов достаточно быстрое ( по сравнению с другими ПО)

Добавлено через 50 секунд
кстати.... А есть библиотека у Вас где есть шаблоны отчетов... Я бы честно посмотрел может чего еще себе подобрал бы :)
Нет. К сожалению. Но, будет. Т.к. мы пришли к тем же выводам, что и Вы. Надо создавать репозиторий форм отчетов.
Только нужно понимать, что мы иногда меняем и сам движок отчетов и не переделываем все отчеты, которые НЕ входят в базовый набор модуля.

csistra 14.09.2011 11:04

Я думаю как запустица у меня веб сервер то в принципе отчеты смогу делать любые и любой формы вне зависимости от внешнего отчета .
Все ведь складывается в скл базу..... соответственно и набор отчетов по условию и т.п. можно скриптами навешать тьму.

SK 14.09.2011 13:20

Цитата:

Сообщение от csistra (Сообщение 15371)
Я думаю как запустица у меня веб сервер то в принципе отчеты смогу делать любые и любой формы вне зависимости от внешнего отчета .
Все ведь складывается в скл базу..... соответственно и набор отчетов по условию и т.п. можно скриптами навешать тьму.

Уважаемый csistra... Вы так и не поняли архитектуру построения системы АвтоГРАФ. В базе хранятся сырые неотфильтрованные данные.
Практика показывает - написать свой собственный более-менее адекватно работающий движок обработки - от 2-х лет и более... Проверено не на одной компании.
Чем Вас не устраивает модуль отчетов ? Ну нам удобнее было прикрутить его ехе-шником. Был бы он DLL (тот же ехе-шник, только в профиль) - это бы в корне перевернуло Ваше отношение к нему ?

SK 14.09.2011 13:22

csistra, кстати, обратите внимание на тему: http://forum.tk-chel.ru/showthread.php?t=1024

plex 15.09.2011 11:32

Цитата:

Сообщение от csistra (Сообщение 15454)
есть СКЛ бд для веб сервера куда падает информация)

Вы даже не разобрались как это работает. ничто не куда не падает, все данные лежат в бинах, и это огромный плюс системы.

Talyana 16.09.2011 15:51

А есть в модуле внешних отчетов отчет по времени в пути за месяц общий и по каждому дню итоговый?

SK 16.09.2011 16:05

Цитата:

Сообщение от Talyana (Сообщение 15535)
А есть в модуле внешних отчетов отчет по времени в пути за месяц общий и по каждому дню итоговый?

Поясните, что Вы подразумеваете под Вашим запросом ?

Обычный отчет: Группа "Рейсы", вид отчета - либо "Рейсы" либо "Рейсы(Все ТС)" - (из Вашего запроса непонятно, какой именно) с итоговой строкой и разбивкой на рейсы посуточно - вроде и есть нужный Вам отчет.
Или чего-то не хватает ?

Talyana 19.09.2011 10:13

1.Контрольные точки-Прохождение каждой точки.
Смущает колонка " продолжительность" - 24 часа в моем подсчете не могло уложиться в промежуток с 11 утра до 15.00. :(
(рис 5)
2.Контрольные точки- Прохождение контрольный отрезков.
Нет итого по времени в пути и общего пройденного расстояния в км .

SK 19.09.2011 11:51

Talyana, а можно еще мельче сделать рисунки ? А то там все еще можно разобрать заголовок отчета...

Talyana 19.09.2011 11:58

Цитата:

Сообщение от SK (Сообщение 15599)
Talyana, а можно еще мельче сделать рисунки ? А то там все еще можно разобрать заголовок отчета...

простите, исправляюсь.

SK 19.09.2011 12:03

Цитата:

Сообщение от Talyana (Сообщение 15586)
Смущает колонка " продолжительность" - 24 часа в моем подсчете не могло уложиться в промежуток с 11 утра до 15.00.

Это же продолжительность РЕЙСА, а не движения.
У Вас скорее всего установлена посуточная разбивка на рейсы. См. время начала и время окончания.
Можно, конечно, также задействовать в отчете и другие параметры: время начала движения, время окончания движения, продолжительность движения.

Talyana 19.09.2011 12:37

Цитата:

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

Сообщение от Talyana (Сообщение 15586)
Смущает колонка " продолжительность" - 24 часа в моем подсчете не могло уложиться в промежуток с 11 утра до 15.00.

Это же продолжительность РЕЙСА, а не движения.
У Вас скорее всего установлена посуточная разбивка на рейсы. См. время начала и время окончания.
Можно, конечно, также задействовать в отчете и другие параметры: время начала движения, время окончания движения, продолжительность движения.

В редакторе отчета изменить колонку "продолжительность" ?
[IIF(<Line> = 1, <Trip_RegCont>, '')]?
Как просуммировать колонку "время прохождения"?
есть список полей или структура именования полей?

Talyana 19.09.2011 12:56

Выбираю данные-подготовить отчет по контрольным точкам.
в строке "время движения"= 2:51 (понимаю, что 2 часа 51 минута).
тоже не получается по сумме с моими суммированиями данной колонки.

SK 19.09.2011 12:57

Цитата:

Сообщение от Talyana (Сообщение 15604)
Цитата:

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

Сообщение от Talyana (Сообщение 15586)
Смущает колонка " продолжительность" - 24 часа в моем подсчете не могло уложиться в промежуток с 11 утра до 15.00.

Это же продолжительность РЕЙСА, а не движения.
У Вас скорее всего установлена посуточная разбивка на рейсы. См. время начала и время окончания.
Можно, конечно, также задействовать в отчете и другие параметры: время начала движения, время окончания движения, продолжительность движения.

В редакторе отчета изменить колонку "продолжительность" ?
[IIF(<Line> = 1, <Trip_RegCont>, '')]?
Как просуммировать колонку "время прохождения"?
есть список полей или структура именования полей?

Конечно есть. В инсталляторе ПО содержатся файлы с описанием экспортных OLE-функций и полей данных (см. в правом верхнем углу главной страницы офсайта).
Чтобы просуммировать продолжительность - надо сначала ее перетащить скриптом отчета в секунды, потом просуммировать.
На это Вам ответит наш специалист по модулю отчетов - Алексей Ахмедьянов aka Storm.

SK 19.09.2011 13:04

Код:

var                               
  CurrCont: TDateTime = 0;         
  Str: String;         
   
procedure SumCont(Cont: String);
begin
  if Length(Cont) > 8 then CurrCont := CurrCont + StrToDateTime(Copy(Cont, Length(Cont) - 7, 8)) + StrToFloat(Copy(Cont, 0, Length(Cont) - 9))
  else CurrCont := CurrCont + StrToDateTime(Copy(Cont, Length(Cont) - 7, 8));
 
end;
 
function GetSumCont(): String;
begin
  if CurrCont >= 1 then
  begin             
      Str := DateTimeToStr(CurrCont);
      Str := IntToStr(Trunc(CurrCont)) + 'сут. ' + Copy(Str, Length(Str) - 7, 8);
      //Str := IntToStr(Trunc(CurrCont) * 24 + StrToInt(Copy(Str, Length(Str) - 7, 2))) + Copy(Str, Length(Str) - 5, 6);
  end               
  else
  begin
      Str := DateTimeToStr(CurrCont);                                   
      Str := Copy(Str, Length(Str) - 7, 8);
  end; 
  result := Str;
end;

в процедуру SumCont передаем продолжительность, которую приплюсовываем к общей
функцией GetSumCont выводит суммарный итог продолжительности
------------------------------
• во вкладку код вставляете эти функции
• в мастердате вызываете первую функцию, в нее параметром передаете время для суммирования

в вашем случае как-то так [SumCont(<Dataset1."Trip_RegCont">)], ее можно засунуть в невидимую ячейку или в любую ячейку в мастердате

а затем в бенде с итогами, там где идет итог по времени вставить ячейку с текстом [GetSumCont()]

Talyana 21.09.2011 09:03

Цитата:

Сообщение от SK (Сообщение 15611)
Код:

var                               
  CurrCont: TDateTime = 0;         
  Str: String;         
   
procedure SumCont(Cont: String);
begin
  if Length(Cont) > 8 then CurrCont := CurrCont + StrToDateTime(Copy(Cont, Length(Cont) - 7, 8)) + StrToFloat(Copy(Cont, 0, Length(Cont) - 9))
  else CurrCont := CurrCont + StrToDateTime(Copy(Cont, Length(Cont) - 7, 8));
 
end;
 
function GetSumCont(): String;
begin
  if CurrCont >= 1 then
  begin             
      Str := DateTimeToStr(CurrCont);
      Str := IntToStr(Trunc(CurrCont)) + 'сут. ' + Copy(Str, Length(Str) - 7, 8);
      //Str := IntToStr(Trunc(CurrCont) * 24 + StrToInt(Copy(Str, Length(Str) - 7, 2))) + Copy(Str, Length(Str) - 5, 6);
  end               
  else
  begin
      Str := DateTimeToStr(CurrCont);                                   
      Str := Copy(Str, Length(Str) - 7, 8);
  end; 
  result := Str;
end;

в процедуру SumCont передаем продолжительность, которую приплюсовываем к общей
функцией GetSumCont выводит суммарный итог продолжительности
------------------------------
• во вкладку код вставляете эти функции
• в мастердате вызываете первую функцию, в нее параметром передаете время для суммирования

в вашем случае как-то так [SumCont(<Dataset1."Trip_RegCont">)], ее можно засунуть в невидимую ячейку или в любую ячейку в мастердате

а затем в бенде с итогами, там где идет итог по времени вставить ячейку с текстом [GetSumCont()]



Выбираю «Групповая обработка данных» -список контрольных точек - прохождение точек и отрезков - выбрала ряд полей.
С определением, которых у меня возникли вопросы:


Время движения - это время ТС с учетом пробок?


Какую смысловую нагрузку несут поля: продолжительность и моточасы?
И в чем может быть проблема если при добавлении параметра "моточасы"-пустая колонка?

SK 21.09.2011 12:29

Цитата:

Сообщение от Talyana (Сообщение 15699)
Время движения - это время ТС с учетом пробок?

Терминал не знает - едет ли машина в пробках или просто водила развлекается.
Он фиксирует перемещения машины и время, затраченное на эти перемещения.
Есть время движения и есть время остановок.
Цитата:

Сообщение от Talyana (Сообщение 15699)
Какую смысловую нагрузку несут поля: продолжительность и моточасы?
И в чем может быть проблема если при добавлении параметра "моточасы"-пустая колонка?

а) Продолжительность - она продолжительность и есть. Если деление на рейсы делается не посуточно (когда для Вас и так очевидно, что это будет 24 часа), а, например, по карточке водителя-дальнобойщика или по датчику - то рейс может быть длиной в несколько суток (тот же дальнобойный рейс из Екатеринбурга в Москву). Конечно, у Вас есть дата и время начала и конца рейса, но многие не любят высчитывать продолжительность на калькуляторе.
б) Моточасы могут быть как временем работы двигателя, так и рассчитанными по сложным алгоритмам и взятыми с бортового компьютера (например, по шине CAN).
в) Если моточасы не отображаются в отчетах - значит их учет надо настроить в диспетчерском ПО (вкладка "Двигатель").

Talyana 21.09.2011 14:14

Цитата:

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

Сообщение от Talyana (Сообщение 15699)
Время движения - это время ТС с учетом пробок?

Терминал не знает - едет ли машина в пробках или просто водила развлекается.
Он фиксирует перемещения машины и время, затраченное на эти перемещения.
Есть время движения и есть время остановок.
Цитата:

Сообщение от Talyana (Сообщение 15699)
Какую смысловую нагрузку несут поля: продолжительность и моточасы?
И в чем может быть проблема если при добавлении параметра "моточасы"-пустая колонка?

а) Продолжительность - она продолжительность и есть. Если деление на рейсы делается не посуточно (когда для Вас и так очевидно, что это будет 24 часа), а, например, по карточке водителя-дальнобойщика или по датчику - то рейс может быть длиной в несколько суток (тот же дальнобойный рейс из Екатеринбурга в Москву). Конечно, у Вас есть дата и время начала и конца рейса, но многие не любят высчитывать продолжительность на калькуляторе.
б) Моточасы могут быть как временем работы двигателя, так и рассчитанными по сложным алгоритмам и взятыми с бортового компьютера (например, по шине CAN).
в) Если моточасы не отображаются в отчетах - значит их учет надо настроить в диспетчерском ПО (вкладка "Двигатель").

понятно.

Марина 10.12.2011 17:58

Нужна помощь
 
Доброго времени суток! Месяц как посадили на автограф. Мне необходимо сформировать отчет так, чтобы был указан расход топлива в пути и при простое. Формирую отчет (групповая обработка данных). Время в пути есть, общий расход есть, много чего есть))), а колонки с расходом в пути и простое пустые. Может, что то не так делаю? (если не в той теме пишу, сильно не ругайте)

SK 10.12.2011 19:54

Цитата:

Сообщение от Марина (Сообщение 20552)
Доброго времени суток! Месяц как посадили на автограф. Мне необходимо сформировать отчет так, чтобы был указан расход топлива в пути и при простое. Формирую отчет (групповая обработка данных). Время в пути есть, общий расход есть, много чего есть))), а колонки с расходом в пути и простое пустые. Может, что то не так делаю? (если не в той теме пишу, сильно не ругайте)

Обязательно указывайте версию ПО вместе со сборкой.

11.12.2011 06:05

Марина,
вот такой отчёт у меня

Марина 13.12.2011 18:19

Цитата:

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

Сообщение от Марина (Сообщение 20552)
Доброго времени суток! Месяц как посадили на автограф. Мне необходимо сформировать отчет так, чтобы был указан расход топлива в пути и при простое. Формирую отчет (групповая обработка данных). Время в пути есть, общий расход есть, много чего есть))), а колонки с расходом в пути и простое пустые. Может, что то не так делаю? (если не в той теме пишу, сильно не ругайте)

Обязательно указывайте версию ПО вместе со сборкой.

Версия 3.4.9 сборка 1893. спасибо

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

Сообщение от satp (Сообщение 20559)
Марина,
вот такой отчёт у меня

а у меня общий расход есть, а колонка расход на стоянке пустая...

14.12.2011 01:57

Марина, [Dataset1."M1_FUEL_PRK"] отредактируйте шаблон.

Марина 14.12.2011 16:24

Я так понимаю, что это надо КУДА-ТО вставить? Еще поясните, куда, пожалуйста!

plex 14.12.2011 17:45

Марина, Надо нажать кнопку изменить в разделе редактирования шаблона.

Playmaker05 16.12.2011 18:43

Возможно не в ту тему пишу, но все же... У меня почему то не открывается модуль внешних отчетов, выскакивает ошибка. Точнее модуль открывается, уже после того как ошибка выскочила, но списка авто в нем нет. Тупо форма открывается. В чем может быть дело? Может, windows7 тому причина? на "ХРюшке" все работает

plex 16.12.2011 19:43

Playmaker05, вероятно автограф не зарегистрирован в системе. Запустите программу с правами администратора по правой кнопке.

SK 16.12.2011 21:21

BDE (Borland Database Engine) поставьте. В наших инсталляторах есть.

Надеюсь, скоро избавимся от него (BDE).
Прошу извинить за то что не была предусмотрена обработка данного исключения. Исправим.

Playmaker05 17.12.2011 17:58

SK, BDE устанавливал, результата не было.
plex, огромное спасибо, сам не догадался до это. Запустил от имени администратора и вуаля!

Всем спасибо :agree:

21.12.2011 10:37

в отчёте расход топлива указан л/100км. а как указать л/мч???

storm 21.12.2011 10:41

Цитата:

Сообщение от satp (Сообщение 21422)
в отчёте расход топлива указан л/100км. а как указать л/мч???

в отчете для л/100км поле выглядит примерно так
[IIF(<Dataset1."DISTANCE"> > 0, 100*<Dataset1."M1_FUEL"> / <Dataset1."DISTANCE">, 'N/A')]

вам нужно немного поменять на

[IIF(<Dataset1."M1_HOURS"> > 0, <Dataset1."M1_FUEL"> / <Dataset1."M1_HOURS">, 'N/A')]

то есть убираем множитель 100 и делим не на расстояние, а на моточасы и получаем то, что нужно

plex 21.12.2011 10:42

satp, Надо изменить шаблон отчета, в ячейку вписать
Код:

[IIF(<Dataset1."M1_HOURS"> > 0, <Dataset1."M1_FUEL"> / <Dataset1."M1_HOURS">, 'N/A')]
в подвале
Код:

[IIF(SUM(<Dataset1."M1_HOURS">) > 0, SUM(<Dataset1."M1_FUEL">) / SUM(<Dataset1."M1_HOURS">), 0)]

21.12.2011 11:08

storm, plex, спасибо, заработало!:thumbup:

Playmaker05 22.12.2011 14:06

Вложений: 1
И от меня тоже спасибо! Я себе тоже в отчет прописал.
Но у меня остался еще один вопрос: Можно ли хотя бы в отчете сделать так, чтобы он игнорировал минусовые значения, и писал вместо этого 0?
Бывает, трактор заводят на пару минут в день, а программа не видя уменьшения уровня топлива пишет минусовой расход. Например -0,35 или -1,4. Можно, конечно, не обращать внимания, но если это убирается какой то функцией, почему бы не убрать?
И второй вопрос: можно ли в отчете округлить значения заправок и пробега до десятых? много цифр и визуально информация не воспринимается беглым взглядом.
Для примера скину свой отчет

SK 22.12.2011 14:10

Конечно. И проверка на отрицательные значения и парметры округления прописываются в свойствах любой ячейки.

SK 22.12.2011 14:23

Например, было:
Код:

[(Round(10 * (<Dataset1."T1_E_LEVEL"> - <Dataset1."T1_S_LEVEL">)) / 10)]
Чтобы отбросить отрицательные, делаем:
Код:

[IIF((Round(10 * (<Dataset1."T1_E_LEVEL"> - <Dataset1."T1_S_LEVEL">)) / 10)>0,(Round(10 * (<Dataset1."T1_E_LEVEL"> - <Dataset1."T1_S_LEVEL">)) / 10),0)]
Т.е., конструкция типа:
[IIF((Логическое выражение),(что выводить если ИСТИНА),(что выводить если ЛОЖЬ))]

А форматом играйтесь в свойствах:


Playmaker05 22.12.2011 15:11

SK, с форматом разобрался, до десятых округлил. А вот с функцией не получается...
Было: [Dataset1."M1_FUEL"]
Как правильно написать, чтобы отбросились минусовые значения я не понял. Пробую вот так но не работает: [IIF(Dataset1."M1_FUEL")>0,(Dataset1."M1_FUEL"),0]

plex 22.12.2011 15:22

Playmaker05,
Примерно так, возможности проверить нет(((

[IIF(<Dataset1."M1_FUEL"> > 0, [IIF(<Dataset1."M1_HOURS"> > 0, <Dataset1."M1_FUEL"> / <Dataset1."M1_HOURS">, 'N/A')], 'N/A')]
Это про литры/мч1

Добавлено через 7 минут
И вот для просто расхода
1: [IIF(<Dataset1."M1_FUEL"> > 0, <Dataset1."M1_FUEL">, 'N/A')]

Playmaker05 22.12.2011 15:22

plex, первый вариант не работает, второй работает

SK 22.12.2011 19:33

Цитата:

Сообщение от Playmaker05 (Сообщение 21525)
SK, с форматом разобрался, до десятых округлил. А вот с функцией не получается...
Было: [Dataset1."M1_FUEL"]
Как правильно написать, чтобы отбросились минусовые значения я не понял. Пробую вот так но не работает: [IIF(Dataset1."M1_FUEL")>0,(Dataset1."M1_FUEL"),0]

Ну дак... блин...

[IIF(Dataset1."M1_FUEL")>0,(Dataset1."M1_FUEL"),0] - не должен работать...
[IIF((Dataset1."M1_FUEL")>0,(Dataset1."M1_FUEL"),0)] - должен работать...

[IIFx>0,'x больше нуля','x меньше или равен нулю'] - не будет работать...
[IIF(x>0,'x больше нуля','x меньше или равен нулю')] - будет работать... видите разницу ?

Я же привел пример... Там есть ВСЕ необходимые скобки... функция IIF(...)
И не просто привел, а написал в отчетах, проверил и скопировал АБСОЛЮТНО РАБОЧИЙ код.
Внимательнее надо быть все же...

Playmaker05 23.12.2011 07:16

Цитата:

Сообщение от SK (Сообщение 21539)
Ну дак... блин...

Вот именно))) Не работает ваш код!!! Работает тот, который прислал plex,
Ваш [IIF((Dataset1."M1_FUEL")>0,(Dataset1."M1_FUEL"),0)] -не работает, выскакивает буквально следующее: Были обнаружены следующие ошибки: Memo5: Ошибка в выражении 'IIF((Dataset1."M1_FUEL")>0,(Dataset1."M1_FUEL"),0 )': Identifier expected
Код который прислал plex [IIF(<Dataset1."M1_FUEL"> > 0, <Dataset1."M1_FUEL">, 'N/A')] - работает
Цитата:

Сообщение от SK (Сообщение 21539)
Внимательнее надо быть все же...

да пробовал я и со скобками и без.... Может у меня версия репорта не та или что то такое? Версия автографа 3.4.10 сборка 1932, версия модуля отчетов 1.5.3

SK 23.12.2011 07:30

Всё... всё... и правда - пропустил для поля датасета еще одни скобки <>

Александр 52 регион 16.01.2012 10:53

А мне нужно сделать "работу водителя" у нас она считается от начала пуска стартера, до последнего выключения двигателя - это по Вашему разница между I1_S_TIME и I1_E_TIME, т.е. в колонке надо вписать цифру равную I1_E_TIME минус I1_S_TIME :dontknow:

Можете написать такую формулу? :)

csistra 16.01.2012 14:52

и снова ЗДРАСТЕ!
Наконец-то дошли руки написать здесь что нить новенькое такое-эдакое.
Пока вся страна успешно употребляла горячительное и пыталась совершить мягкую посадку в салат оливье, я тоже этим занимался, но теперь пришла пора немного потрудится на благо вселенной и все такое.
Собсно суть вопросов....
в очередной раз открыл инструкцию под названием "Руководство по работе с программой AGReports". увидел там ФИГУ и обрадовался.
Захотелось мне в отчет добавить два столбца: "Расход 1 дв." и "Расход 1 ост.". Что это такое думаю всем понятно. Т.к. в мануале нет я решил что это будет выглядеть так:
[Dataset1."Trip_Motor1FuelMoveHours"] и [Dataset1."Trip_Motor1FuelParkHours"]
но это я так думал. Оказалось ФИГУШКИ! Подскажите КАК это написать то????
А! и еще!
есть у меня в отчете:
[IIF(<Dataset1."DISTANCE"> > 0, 100*<Dataset1."M1_FUEL"> / <Dataset1."DISTANCE">, 'N/A')]
хочу чтобы у меня выделялась ячейчка в красный цвет если значение больше 50.
для этого перехожу в "Выделение" гляжу туда.... и все! завис... а КАК написать то условие ????
поможыте!!!! люди добрые и не очень!

SK 16.01.2012 16:01

Цитата:

Сообщение от csistra (Сообщение 22479)
и снова ЗДРАСТЕ!
Наконец-то дошли руки написать здесь что нить новенькое такое-эдакое.
Пока вся страна успешно употребляла горячительное и пыталась совершить мягкую посадку в салат оливье, я тоже этим занимался, но теперь пришла пора немного потрудится на благо вселенной и все такое.
Собсно суть вопросов....
в очередной раз открыл инструкцию под названием "Руководство по работе с программой AGReports". увидел там ФИГУ и обрадовался.
Захотелось мне в отчет добавить два столбца: "Расход 1 дв." и "Расход 1 ост.". Что это такое думаю всем понятно. Т.к. в мануале нет я решил что это будет выглядеть так:
[Dataset1."Trip_Motor1FuelMoveHours"] и [Dataset1."Trip_Motor1FuelParkHours"]
но это я так думал. Оказалось ФИГУШКИ! Подскажите КАК это написать то????
А! и еще!
есть у меня в отчете:
[IIF(<Dataset1."DISTANCE"> > 0, 100*<Dataset1."M1_FUEL"> / <Dataset1."DISTANCE">, 'N/A')]
хочу чтобы у меня выделялась ячейчка в красный цвет если значение больше 50.
для этого перехожу в "Выделение" гляжу туда.... и все! завис... а КАК написать то условие ????
поможыте!!!! люди добрые и не очень!

csistra, не паникуйте. Всё хорошо.
Читайте сответствующий файл: Описание полей DBF для списков.doc
Он должен быть соответствующей свежести.



На всякий случай перезакачайте: http://www.tk-chel.ru/download/AutoGRAPH_OLE.zip

Но вообще - вроде как обновляется через инсталлятор...

SK 16.01.2012 16:15

Цитата:

Сообщение от Александр 52 регион (Сообщение 22460)
А мне нужно сделать "работу водителя" у нас она считается от начала пуска стартера, до последнего выключения двигателя - это по Вашему разница между I1_S_TIME и I1_E_TIME, т.е. в колонке надо вписать цифру равную I1_E_TIME минус I1_S_TIME :dontknow:

Можете написать такую формулу? :)

I1_CONT


Александр 52 регион 16.01.2012 17:18

SK спасибо, но вероятно я неправильно объяснил задачу.
Мне надо не работу двигателя, а весь промежуток времени прошедший от пуска двигателя до последней его остановки


SK 16.01.2012 18:27

Это несколько сложнее. Но...

Во вкладку "Код" между глобальным объявлением переменных и глобальной процедурой вставить функцию определения длины временного интервала по его началу и концу TimeMinus(Начало, Конец):
Нажмите для просмотра содержимого...

Код:

function TimeMinus(TimeBegin: String; TimeEnd: String): String;
var     
TEnd: TDateTime = 0;
TBegin: TDateTime = 0;
TRes: TDateTime = 0;
TResStr: String;
begin
    TBegin := StrToDateTime(TimeBegin);
    TEnd  := StrToDateTime(TimeEnd);
 
TRes := TEnd - TBegin;                   
 
if TRes >= 1 then
  begin
      TResStr := DateTimeToStr(TRes);
      TResStr := IntToStr(Trunc(TRes)) + ' сут. ' + Copy(TResStr, Length(TResStr) - 7, 8);
  end
else
  begin
      TResStr := DateTimeToStr(TRes);
      TResStr := Copy(TResStr, Length(TResStr) - 7, 8);
  end;
result := TResStr;
end;

Должно получиться что-то типа:



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

В Вашем случае:
Код:

[TimeMinus(<Dataset1."I1_S_TIME">,<Dataset1."I1_E_TIME">)]
всё...

SK 16.01.2012 18:32

Отпишитесь, получилось или нет.

Функцию можно применять и для расчета длин любых других временных отрезков... Вроде... )))

Еще можно в начале функции встроить защиту от перепутывания начала и конца временного отрезка.

Александр 52 регион 17.01.2012 09:27

SK, что-то не так.
Можно еще что нибудь придумать?


SK 17.01.2012 09:29

Цитата:

Сообщение от Александр 52 регион (Сообщение 22623)
SK, что-то не так.
Можно еще что нибудь придумать?


А какие переменные подставили ?

Скопируйте мне функцию из ячейки отчета.

Александр 52 регион 17.01.2012 09:39

Простите, я не понимаю, надо еще переменные вносить? Куда?

Я ввел в ячейку предложенную функцию: [TimeMinus(<Dataset1."I1_S_TIME">,<Dataset1."I1_E_T IME">)]

SK 17.01.2012 09:51

Александр 52 регион, зайдите, пожалуйста, в редактор отчета, сохраните его в отдельный файл "Сохранить как" и вышлите на support@tk-chel.ru для Самцова Константина.

SK 17.01.2012 10:48

Александр 52 регион, понятно что происходит.
У вас одна из переменных I1_S_TIME или I1_E_TIME отсутствует - содержит пустое значение. Или обе сразу. Соответственно, возникает ошибка конвертации типа.

Можно модифицировать немного код функции, чтоб в случае ошибки, он выдавал в отчет N/A.
Проверьте, пожалуйста. И отпишитесь здесь.

Код:

function TimeMinus(TimeBegin: String; TimeEnd: String): String;
var     
  TEnd: TDateTime = 0;
  TBegin: TDateTime = 0;
  TRes: TDateTime = 0;
  TResStr: String;
begin
      try
              TBegin := StrToDateTime(TimeBegin);
              TEnd  := StrToDateTime(TimeEnd);
          TRes := TEnd - TBegin;
          if TRes >= 1 then
              begin
                TResStr := DateTimeToStr(TRes);
                TResStr := IntToStr(Trunc(TRes)) + ' сут. ' + Copy(TResStr, Length(TResStr) - 7, 8);
              end
          else
              begin
                TResStr := DateTimeToStr(TRes);
                TResStr := Copy(TResStr, Length(TResStr) - 7, 8);
              end;
          result := TResStr;
        except
          result := 'N/A';
        end;         
end;

Для индикации и проверки, сделайте еще одну ячейку с содержимым, выводящем эти переменные переменные (если хотите):
[Dataset1."I1_S_TIME"]
[Dataset1."I1_E_TIME"]

storm 17.01.2012 12:39

Цитата:

Сообщение от csistra (Сообщение 22479)
в очередной раз открыл инструкцию под названием "Руководство по работе с программой AGReports". увидел там ФИГУ и обрадовался.
Захотелось мне в отчет добавить два столбца: "Расход 1 дв." и "Расход 1 ост.". Что это такое думаю всем понятно. Т.к. в мануале нет я решил что это будет выглядеть так:
[Dataset1."Trip_Motor1FuelMoveHours"] и [Dataset1."Trip_Motor1FuelParkHours"]

:letat:
открываем "Описание полей DBF для списков.doc" и смотрим
3.1.15. Расход топлива M1_FUEL
3.1.16. -»- путевой M1_FUEL_MOV
3.1.17. -»- за время простоя M1_FUEL_PRK


Цитата:

Сообщение от csistra (Сообщение 22479)
хочу чтобы у меня выделялась ячейчка в красный цвет если значение больше 50.

введите такое условие и проверяйте, не забудьте задать красный цвет для фона
IIF(<Dataset1."DISTANCE"> > 0, 100*<Dataset1."M1_FUEL"> / <Dataset1."DISTANCE">, 0) > 50

csistra 17.01.2012 14:15

СПАСИП

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

SK 17.01.2012 14:48

Цитата:

Сообщение от csistra (Сообщение 22650)
вопрос дополнительно M1_P_HOURS в чем измеряется ? а то я что то непойму...

В часах с десятичными долями... как и все остальные часы.

SK 17.01.2012 14:50

Цитата:

Сообщение от csistra (Сообщение 22650)
расход топлива на простое разделить на (время простоя умножить на 24)

А на 24 зачем умножать ? Вам нужен расход в литрах в сутки ?

csistra 17.01.2012 14:54

мне нужен расход литров в час

SK 17.01.2012 15:00

Цитата:

Сообщение от csistra (Сообщение 22653)
мне нужен расход литров в час

Общий: [<Dataset1."M1_FUEL">/<Dataset1."M1_HOURS">] л/ч
В движении: [<Dataset1."M1_FUEL_MOV">/<Dataset1."M1_M_HOURS">] л/ч
На остановке: [<Dataset1."M1_FUEL_PRK">/<Dataset1."M1_P_HOURS">] л/ч

С уточнением: проверку на 0 не делал, чтоб понятнее было. А вообще - надо делать, чтоб не было деления на 0.

csistra 17.01.2012 15:07

проверку сделаю...спасибо за советы..

csistra 18.01.2012 11:13

в добавочку

на картинку надо жмакнуть...
как убрать в составном отчете из списка лишние ??? я не нашел как это сделать.
подскажите плз.

Александр 52 регион 18.01.2012 17:42

SK огромное спасибо за помощь!:thumbup:
Все получилось!:eeee::eeee::eeee:

Вот такой отчет получился:


SK 18.01.2012 18:49

Не за что... Полезный отчет, кстати. Достоин включения в базовый набор отчетов...

csistra 20.01.2012 06:29

а есть где скачать стандартный набор ?

SK 20.01.2012 06:33

В комплекте с модулем отчетов.

30.01.2012 05:07

Вложений: 1
помогите создать отчёты. мучаюсь уже третий день. спасибо

csistra 30.01.2012 07:22

мало их там :)

SK 30.01.2012 09:58

Цитата:

Сообщение от satp (Сообщение 23409)
помогите создать отчёты. мучаюсь уже третий день. спасибо

Это каким-то образом относится к стандартному отчету ?

Заведите отдельную тему для своего запроса и впредь заводите отдельные тему под отдельные задачи - нашим программерам не хочется разгребать помойки и я их не осуждаю.
Кроме того, это сильно затрудняет поиск.
:menty:

t-nav 01.02.2012 12:42

Всем здравия!
Как в отчете вывести календарное колличество суток за запрашиваемый период?

SK 01.02.2012 14:28

Цитата:

Сообщение от t-nav (Сообщение 23732)
Всем здравия!
Как в отчете вывести календарное колличество суток за запрашиваемый период?

В Excel куча встроенных функций для работы с датой и временем + VBA.


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

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