1. Имеется колонка с нарастающими данными. Как получить в итоговой ячейке разницу между последней ячейкой колонки и первой? 
Для этого нужно вставить в ячейку итога следующее выражение:
{(double)Last(DataДанные, Данные.Value) - (double)First(DataДанные, Данные.Value)}
, где "DataДанные" - имя бэнда данных. "Данные" - имя источника данных. "Value" - имя колонки в источнике данных, по которой нужно вычислить разницу.
|
2. Как написать выражение для разности значений времени (текущего и предыдущего)? 
Для этого нужно в бэнде данных разместить компонент "Текст", дважды кликнуть его для редактирования и использовать следующее выражение:
{DateDiff(Данные.Время, (System.DateTime)Previous(Данные, "Время"))}
, данный код получает разницу во времени между текущей и предыдущей строкой. Далее, необходимо установить у компонента "Текст" формат "Время" (иначе ячейки будут пустыми). Для этого нужно кликнуть по компоненту "Текст" ПКМ и выбрать пункт "Формат".
|
3. Как округлить время до ближайшей секунды? 
Для этого нужно в бэнде данных разместить компонент "Текст", дважды кликнуть по нему для редактирования и использовать следующее выражение:
{
DateSerial(0).AddSeconds(
Math.Round(
((DateTime)Данные.Время - DateSerial(0)).TotalSeconds
))
}
, в результате время будет округляться следующим образом:
12:00:00.001 -> 12:00:00.000
12:00:00.500 -> 12:00:00.000
12:00:00.501 -> 12:00:01.000
12:00:00.999 -> 12:00:01.000
|
4. Формат времени в итоге отчета 
Допустим в отчете имеется столбец с временем наработки оборудования. В бэнде "Итог отчета" через функцию SumTime вычисляется суммарное значение наработки, которое необходимо отображать в формате "часы:минуты" или "дни.часы:минуты". Для этого у ячейки итога нужно установить формат "Стандарт" и использовать следующее выражение:
Формат "часы:минуты" (например "26:05"):
{((int)SumTime(DataДанные, Данные.Value).TotalHours) +
":" + (SumTime(DataДанные, Данные.Value).Minutes).ToString("00")}
Формат "дни.часы:минуты" (например "01.12:05"):
{SumTime(DataДанные, Данные.Value).ToString("dd\.hh\:mm")}
, где "DataДанные" - имя бэнда данных. "Данные" - имя источника данных. "Value" - имя колонки в источнике данных.
|
5. Преобразование секунд в формат времени более 24 часов 
Допустим в отчете имеется столбец с количеством секунд и требуется преобразовать значение секунд в формат "часы:минуты:секунды". При этом, количество часов может быть более 24. Для этого можно использовать следующее выражение:
{(int)TimeSpan.FromSeconds(Данные.Value).TotalHours + ":" +
TimeSpan.FromSeconds(Данные.Value).ToString("mm\:ss")}
, где "Данные" - имя источника данных. "Value" - имя колонки в источнике данных. Пример результата: "26:15:48".
Если нужно получить формат "дни.часы:минуты:секунды", то можно использовать выражение:
{TimeSpan.FromSeconds(Данные.Value).ToString("dd\.hh\:mm\:ss")}
Пример результата: "01.12:15:00".
|