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

ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ» (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)

AntoShik86 14.07.2015 09:06

Оказывается отрабатывает. Только другая беда. Если делаешь предварительный просмотр возникает ошибка.
FastReport.Net v2014.2.1
Text39: Error in expression: [StartTime].ToString("dd.mm.yyyy HH:mm")
System.Exception: Text39: Error in expression: [StartTime].ToString("dd.mm.yyyy HH:mm") ---> System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в FastReport.ReportScript.CalcExpression(String expression, Variant Value)
--- Конец трассировки внутреннего стека исключений ---
в FastReport.TextObjectBase.CalcAndFormatExpression( String expression, Int32 expressionIndex)
в FastReport.TextObject.GetData()
в FastReport.BandBase.GetData()
в FastReport.Engine.ReportEngine.PrepareBand(BandBas e band, Boolean getData)
в FastReport.Engine.ReportEngine.ShowBandToPreparedP ages(BandBase band, Boolean getData)
в FastReport.Engine.ReportEngine.ShowBand(BandBase band, Boolean getData)
в FastReport.Engine.ReportEngine.StartFirstPage()
в FastReport.Engine.ReportEngine.RunReportPage(Repor tPage page)
в FastReport.Engine.ReportEngine.RunReportPages()
в FastReport.Engine.ReportEngine.RunReportPages(Repo rtPage page)
в FastReport.Engine.ReportEngine.Run(Boolean runDialogs, Boolean append, Boolean resetDataState, ReportPage page)
в FastReport.Report.Prepare(Boolean append)
в FastReport.Report.Prepare()
в FastReport.Design.ReportTab.Preview()

https://yadi.sk/i/GDpMOc7VhrJCL

Видимо переменная не инициализированна.



Кроме того странность итоговых формул смущает
https://yadi.sk/i/KXCqfrxYhrKqW

https://yadi.sk/d/YU6Z6ZlbhrKy8
к примеру [SumDistance] [TotalDistance] идут накопительным итогом по всем ТС.
хотя они в подвале группы расположены, т.е. должны брать обнуляться с каждым новым ТС в рейсе. (Стоят обе галочки разбивка по рейсам и по всем ТС итоги).

storm 14.07.2015 09:12

AntoShik86,
почитайте руководство по фастрепортс, особенно про итоги

ak_alexander 14.07.2015 09:41

[quote=storm;110132]
Цитата:

Сообщение от ak_alexander (Сообщение 110129)
В стандартном рейсе отчёта нужно отсюда: [DS_trip.I7_S_TIME] вытащить только часы и минуты

Цитата:

Сообщение от storm (Сообщение 110132)
[DateTime.Parse([DS_trip.I7_S_TIME]).ToString("HH:mm")]

Спасибо :thumbup:

Цитата:

Сообщение от ak_alexander (Сообщение 110129)
Затем нужна функция, которая преобразует часы и минуты в минуты.

Цитата:

Сообщение от storm (Сообщение 110132)
уточните

Нужно время "HH:mm" перевести в mm, т.е. (HH*60)+mm = mm. Мне это нужно, чтобы вычислить длину рабочего дня (выключение Д7-Включение Д7). Затем от полученных минут я отниму Общие моточасы, переведённые в минуты. И получу время простоя, которое надо перевести в HH:mm :confused:

Цитата:

Сообщение от ak_alexander (Сообщение 110129)
[ConvertMHoursToTimeSpan([DS_trip.M1_HOURS])]. Вот тут надо убрать секунды.

Цитата:

Сообщение от storm (Сообщение 110132)
нужен текст самой функции

Я по-другому задам вопрос. Нужно, чтобы этот оператор выдавал часы и минуты: [DS_trip.M1_HOURS]

Цитата:

Сообщение от ak_alexander (Сообщение 110129)
Можно исправить вот эту функцию [DS_trip.T1_S_LEVEL] так, чтобы она показывала количество литров, когда включился 7-й датчик?

Цитата:

Сообщение от storm (Сообщение 110132)
опишите подробнее что и зачем

Нужна функция в отчёте по рейсам, которая покажет количество топлива в момент первого включения Д7 (т.е. на начало раб. дня) и в момент последнего выключения Д7 (т.е. на конец раб. дня)

storm 14.07.2015 11:33

Цитата:

Сообщение от ak_alexander (Сообщение 110245)
Нужно время "HH:mm" перевести в mm, т.е. (HH*60)+mm = mm. Мне это нужно, чтобы вычислить длину рабочего дня (выключение Д7-Включение Д7). Затем от полученных минут я отниму Общие моточасы, переведённые в минуты. И получу время простоя, которое надо перевести в HH:mm

зачем вычитать по строкам и мучаться, когда для вычисления продолжительностей (разностей времен) есть TimeSpan и его можно уже функцией ToString("hh\:mm") вывести в нужном вам формате hh:mm

Цитата:

Сообщение от ak_alexander (Сообщение 110245)
Я по-другому задам вопрос. Нужно, чтобы этот оператор выдавал часы и минуты: [DS_trip.M1_HOURS]

также ToString("hh\:mm") добавить внутри функции вашей

AntoShik86 15.07.2015 01:50

Цитата:

Сообщение от storm (Сообщение 110243)
AntoShik86,
почитайте руководство по фастрепортс, особенно про итоги

Благодарю за наводку. Почитал руководство тут
https://www.fast-report.com/public_d...rManual-ru.pdf

Получается в итоговых значениях, мне надо указать что они считаются для подвала группы
https://yadi.sk/i/sthDEYo_hsSsL
Проделал эту настройку для всех итогов заработало.

ak_alexander 15.07.2015 08:02

[quote=storm;110260]
Цитата:

Сообщение от ak_alexander (Сообщение 110245)
Нужно время "HH:mm" перевести в mm, т.е. (HH*60)+mm = mm. Мне это нужно, чтобы вычислить длину рабочего дня (выключение Д7-Включение Д7). Затем от полученных минут я отниму Общие моточасы, переведённые в минуты. И получу время простоя, которое надо перевести в HH:mm

Цитата:

Сообщение от storm (Сообщение 110260)
зачем вычитать по строкам и мучаться, когда для вычисления продолжительностей (разностей времен) есть TimeSpan и его можно уже функцией ToString("hh\:mm") вывести в нужном вам формате hh:mm

А покажите пример, пожалуйста для DS_trip.I7_S_TIME и DS_trip.I7_Е_TIME

storm 15.07.2015 08:11

Цитата:

Сообщение от ak_alexander (Сообщение 110291)
А покажите пример, пожалуйста для DS_trip.I7_S_TIME и DS_trip.I7_Е_TIME

[(DateTime.Parse([DS_trip.I7_Е_TIME]) - DateTime.Parse([DS_trip.I7_S_TIME])).ToString("hh\:mm")]
ну и желательно еще проверку сделать, на то что эти времена не пустые

ak_alexander 15.07.2015 08:39

Цитата:

Сообщение от storm (Сообщение 110292)
Цитата:

Сообщение от ak_alexander (Сообщение 110291)
А покажите пример, пожалуйста для DS_trip.I7_S_TIME и DS_trip.I7_Е_TIME

[(DateTime.Parse([DS_trip.I7_Е_TIME]) - DateTime.Parse([DS_trip.I7_S_TIME]))ToString("hh\:mm")]
ну и желательно еще проверку сделать, на то что эти времена не пустые

Спасибо) А я имела ввиду пример с функцией TimeSpan)

storm 15.07.2015 08:53

Цитата:

Сообщение от ak_alexander (Сообщение 110296)
Спасибо) А я имела ввиду пример с функцией TimeSpan)

разница двух DateTime дает в итоге TimeSpan

ak_alexander 15.07.2015 09:17

Цитата:

Сообщение от storm (Сообщение 110298)
Цитата:

Сообщение от ak_alexander (Сообщение 110296)
Спасибо) А я имела ввиду пример с функцией TimeSpan)

разница двух DateTime дает в итоге TimeSpan

Написала я вот так: [(DateTime.Parse([DS_trip.I7_Е_TIME]) - DateTime.Parse([DS_trip.I7_S_TIME]))ToString("hh\:mm")]

Ошибка CS1009: Нераспознанная управляющая последовательность


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

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