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

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

vovicande 13.04.2015 04:18

Нужна помощь по отчету
 
Добрый день, уважаемые форумчане!

требуется Ваша помощь в составлении отчета. Форму создал, данные, какие смог собрать - собрал, однако остается несколько моментов, которые я хочу доработать

я переделал стандартный отчет из группы Контрольные точки "Прохождение точек и отрезков".

Вот такой получается отчет через Reports.Net:
https://yadi.sk/i/clw_dknmfwKbe

Я же хочу получить вот такой отчет, если это возможно:
https://yadi.sk/i/Padxhh7cfwKfz

Вот картинка с исходным и желаемым отчетом сразу:
https://yadi.sk/i/WMYzE69PfwLDx
Красным на отчете справа выделил то, что нужно изменить

Что нужно изменить:
1. Формат времени 00:15:20 >>> 15:20. Через форматирование у меня не получается
2. Формат продолжительности 00:15:20 >>> 15:20с (буква с необязательна) Либо 01:15:20 >>> 01:15м Через форматирование у меня не получается
3. Убрать нулевые ячейки, даты Через [IsNull(,)] у меня не получается
4. Убрать дату из формата 01.01.2015 15:20:19 >>> 15:20, Если значение даты повторяется и одинаковое в отчете (в рамках одних суток)
5. Возможно ли перевести МЧ из дроби в формат ЧЧ:мм? Не могу понять, как делать умножение в ячейке? можно было бы умножить на 60... как вариант
6. не показывает в печатной форме значения I2_Cont и I2_Counter, хотя в предварительно просмотре выводит на экран
7. Итоговые значения по датчикам: Общая прод-ть I2_Cont и Сумма I2_Counter
8. Итоговые значения: Расход в движении, расход на стоянке
9. Итоговые значения: Время в движении, время на стоянке

Необязательные, но желательно
- Итоговые значения: холостой/груженый по возможности
- шапка: выезд с базы/заезд на базу (БАЗА - КТ) по возможности
- шапка: прод-ть смены (разница между выездом/заездом на базу) по возможности
- шапка: первое включ/после отключ двигателя. У нас двигаетель - это д1. [DS_chp_all.I1_S_TIME] и [DS_chp_all.I1_E_TIME] не выводит

Вопросы:
- Можно ли сделать формирование этого отчета вне зависимости от настроек АвтоГРАФа? Параметр новой строки определяется настройками программы АвтоГРАФ. Для моего отчета я установил мин. значения движение-остановка 2 мин. https://yadi.sk/i/Av1n0duOfwKyx
- Можно ли группировать строки?
- Можно выделять строки не черезстрочно, а, например при включении датчиков 2 и 3?

Пока это все. Буду благодарен помощи, поскольку я не силен в языках программировании, только так, ячейки по мануалу умею двигать))

storm 13.04.2015 05:37

Цитата:

Сообщение от vovicande (Сообщение 104308)
1. Формат времени 00:15:20 >>> 15:20. Через форматирование у меня не получается

на вкладку код нужно добавить функцию
private string GetFormatedDateTime(string dt)
{
if (String.IsNullOrEmpty(dt)) return "-";
return DateTime.Parse(dt).ToString("HH:mm");
}
и вызывать ее в нужной ячейке, передавая параметром нужное время, пример [GetFormatedDateTime([DS_chp_all.S_REAL_TIME])]

storm 13.04.2015 05:40

Цитата:

Сообщение от vovicande (Сообщение 104308)
2. Формат продолжительности 00:15:20 >>> 15:20с (буква с необязательна) Либо 01:15:20 >>> 01:15м Через форматирование у меня не получается

на вкладку код нужно добавить функцию
private string GetFormatedTimeSpan(string dt)
{
if (String.IsNullOrEmpty(dt)) return "-";
return TimeSpan.Parse(dt).ToString("hh\:mm");
}
и вызывать ее в нужной ячейке, передавая параметром продолжительность, пример [GetFormatedTimeSpan([DS_chp_all.REAL_CONT])]

storm 13.04.2015 05:44

Цитата:

Сообщение от vovicande (Сообщение 104308)
3. Убрать нулевые ячейки, даты Через [IsNull(,)] у меня не получается

не понял, что имеется ввиду

Цитата:

Сообщение от vovicande (Сообщение 104308)
4. Убрать дату из формата 01.01.2015 15:20:19 >>> 15:20, Если значение даты повторяется и одинаковое в отчете (в рамках одних суток)

если у вас отчет за сутки, то просто вызывайте функцию из п.1

Цитата:

Сообщение от vovicande (Сообщение 104308)
5. Возможно ли перевести МЧ из дроби в формат ЧЧ:мм? Не могу понять, как делать умножение в ячейке? можно было бы умножить на 60... как вариант

функция
public TimeSpan ConvertMHoursToTimeSpan(double MH)
{
return new TimeSpan((int)MH, (int)((MH - (int)MH) * 60), 0);
}
пример вызова
[ConvertMHoursToTimeSpan([DS_chp_all.M1_HOURS])]

storm 13.04.2015 05:55

Цитата:

Сообщение от vovicande (Сообщение 104308)
6. не показывает в печатной форме значения I2_Cont и I2_Counter, хотя в предварительно просмотре выводит на экран

тоже требует уточнения, что вы имели ввиду

Цитата:

Сообщение от vovicande (Сообщение 104308)
7. Итоговые значения по датчикам: Общая прод-ть I2_Cont и Сумма I2_Counter
8. Итоговые значения: Расход в движении, расход на стоянке
9. Итоговые значения: Время в движении, время на стоянке

читайте в документации как создать новый итог, для времен и продолжительностей нужно в качестве выражения подставлять цифровой вид времени и прод-ти:
для времени DateTime.Parse([DS_chp_all.S_REAL_TIME])
для продолжительности TimeSpan.Parse([DS_chp_all.REAL_CONT])

Цитата:

Сообщение от vovicande (Сообщение 104308)
- Можно ли группировать строки?

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

Цитата:

Сообщение от vovicande (Сообщение 104308)
- Можно выделять строки не черезстрочно, а, например при включении датчиков 2 и 3?

да, раздел условное выделение в документации, см. внизу

для понимания многих моментов рекомендую вам изучить руководство пользователя, которую можно скачать по адресу
https://www.fast-report.com/ru/download/documentation/
раздел FastReport.Net - генератор отчётов для .Net

PS: все остальные вопросы не отвеченные вопросы потребуют уточнения, но для начала ознакомтесь с руководством - возможно они отпадут сами собой

storm 13.04.2015 05:57

PPS: все функции нужно вставлять между фигурными скобками
public class ReportScript
{
...........вставлять функции в это место...........
}
друг за другом

vovicande 13.04.2015 12:04

Алексей, спасибо за ответы, буду пробовать. Отпишусь по ходу выполнения

pavlovich35 21.08.2015 08:23

Пытаюсь сделать отчет по времени в движении, но ничего не получается. Подскажите как???

plex 21.08.2015 08:28

pavlovich35, используйте параметр MOVE_CONT


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

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