Format
возвращает строку, поэтому вы не пытаетесь вычесть две даты, вы пытаетесь вычесть две строки, что приводит к ошибке.
Во-первых, используйте вычисление даты для выражения Value
:
=DateAdd("s", Sum(Fields!TalkTime.Value) / Sum(Fields!EmployeesWorked.Value), "00:00:00")
Это вычисляет Sum
TalkTime за Sum
времени EmployeesWorked для области действия текстового поля.
Поместите форматирование в свойство Format
: HH:mm:ss
Это отделяет значение текстового поля (время) от его представления. Теперь вы можете сделать свой расчет:
=ReportItems!Textbox2625.Value - ReportItems!Textbox29.Value
Опять поместите форматирование в свойство Format
: HH:mm:ss
, чтобы оно отображалось как время.
Если это не сработает, приведите расчет полностью (исключая функции Format
, но см. Примечание ниже о том, почему вы не можете правильно использовать функцию Previous
):
=DateAdd("s", Sum(Fields!TalkTime.Value) / Sum(Fields!EmployeesWorked.Value), "00:00:00")
- PREVIOUS(DateAdd("s", Sum(Fields!TalkTime.Value) / Sum(Fields!EmployeesWorked.Value), "00:00:00"), "Quarter1")
Обратите внимание, что для агрегирования в функции Previous
и указания области (в данном случае «Quarter1») требуется, чтобы указанная область («Quarter1») была содержащей областью для текущей области этого ReportItem.
Например, у вас может быть таблица с тремя вложенными уровнями группировки: по году, затем по месяцу, затем по дню. Выражение =Previous(Sum(Fields!Sales.Value, "Day"), "Year")
в строке, связанной с группой Day
, вернет значение продаж за тот же день и месяц для объема предыдущего года.
Если выражение содержит агрегатную функцию, которая задает область, отличную от области по умолчанию, параметр области для предыдущей функции должен быть содержащей область для области, указанной в вызове статистической функции - другими словами, текстовые поля должны находиться в дочерняя область действия "Quarter1". Хотя я не знаю, какую область вы используете, из вашей формулировки похоже, что вы пытаетесь получить расчет из набора данных, который имеет значение за первый квартал, а не из области видимости группы? Если это так, вам не нужна функция Previous
, вы можете просто рассчитать агрегат по всему набору данных "Quarter1" в функции Sum
следующим образом:
=DateAdd("s", Sum(Fields!TalkTime.Value, "Quarter1") / Sum(Fields!EmployeesWorked.Value, "Quarter1"), "00:00:00"))