Отчеты могут брать данные из нескольких источников. Создадим отчет «Прибыль по месяцам». Вот такой будет отбор. Как известно Прибыль = Приход - Расход. Для вычисления прибыли используется функция «Баланс». Кроме этого нужно указать к какому типу относится источник, т. е. чем по сути являются данные, приходом или расходом. Тип источника выбирается в строке «Тип». Также выбираем группировку по дате и устанавливаем период «Месяц». Порядок источников отличается от приведенной выше формулы. Программе без разницы в каком порядке идут приход и расход, результат будет рассчитан правильно. Если нужно видеть отдельно приход и расход, то делаем следующее. В каждом источнике мы добавили поле «Сумма» с функцией «Сумма». При этом в соседнем столбце ячейка остается пустой. Функция будет вычислять итог в тех источниках, в которых поле указано. Я уже не буду писать, что кроме отбора нужно настроить табличную часть отчета, чтобы получить результат как на рисунке. Это можно сделать самостоятельно.
Когда вы объединяете несколько источников в отборе, нужно учитывать типы полей. Если поле одного источника является числом, то и поля других источников должны быть числовыми. Если поле источника хранит текст, то и поля других источников должны быть текстовыми. К текстовым полям относятся: текст, заметка, список. Поля других типов не имеют совместимых с ними типов: дата, время, счетчик, объект и и. д. На рисунке показан пример, когда во втором источнике выбрано несовместимое поле. Применяя ту или иную функцию также нужно учитывать тип полей. Функции «Сумма», «Среднее» и «Баланс» принимают только числовые поля. Для остальных функций тип поля может быть любой.
При объединении нескольких источников в отборе допускается не указывать поля для некоторых источников. Это было показано в отчете «Прибыль по месяцам». В зависимости от условий вместо значений полей программа будет подставлять 0 или NULL. Если к полям не применяется функция, то программа подставляет NULL. Если к полям применяется функция, то действия программы зависят от применяемой функции. Если применяются функции «Сумма» и «Баланс», программа подставляет 0. В остальных случаях программа подставляет NULL. Отдельного внимания заслуживает функция «Количество». Если для этой функции не указано ни одного поля, то функция вычисляет общее количество записей в источниках. Если указано хотя бы одно поле, то функция вычисляет общее количество значений полей в тех источниках, в которых поле указано. Источники, в которых поле не указано, игнорируются.
Тут все просто. Все пустые поля игнорируются функциями. Это нужно учитывать, когда вы вычисляете количество значений в полях (для функции «Количество» указаны поля) или среднее. К примеру, вы вычисляете среднее в 10 записях. В двух из них числовое поле пустое (содержит NULL). Тогда среднее будет рассчитано для 8 записей.