Добрый день!
Подскажите, пожалуйста, как реализовать следующий отчет в FastReport:
есть таблица tbl_Contracts:
есть таблица tbl_Payments:
___________________________________________________________________
| 1 | 100 р. | 01.01.2000
| 1 | 200 р. | 15.01.2000
| 1 | 500 р. | 25.02.2000
| 2 | 150 р. | 13.01.2000
| 2 | 250 р. | 13.02.2000
Нужно вот такой отчет:
... | ID договора | Сумма платежей за месяц первого платежа | ...
Т.е. если у нас у договора Дата первого платежа 01.01.2000 - то первым платежом считать все оплаты за январь, и в отчете вывести сумму всех платежей за январь одной строчкой.
Мне кажется как-то можно использовать Expressions у поля, но я могу ошибаться.
Заранее спасибо!
Нравится
Здравствуйте, Алексей.
Как вариант, Вы можете в sq выбрать дату платежа в формате "месяц.год" и в отчете использовать группировку (http://www.community.terrasoft.ua/forum/topic/8512) платежей по дате. А группировать Вы будете суммы платежей, что-то вроде:
[code]
[SUM(,mdPayment)]
[/code]
Максим, спасибо! Так все получилось. Но есть одна проблема - как избавиться от ненужных записей теперь? (выводимых в отчете)
Т.е. чтобы записи с другими месяцами не выводились в отчет, а выводилась ТОЛЬКО группа, у которой месяц и год = месяц и год поля "Дата первого платежа"? Что посоветуете?
Т.е. если совсем просто как сделать так, чтобы выводились только те записи, у которых, например, "Дата первого платежа" = '01.01.2013' ?
Здравствуйте, Алексей.
Воспользуйтесь фильтрами. В sq добавьте колонку даты платежа, добавьте это поле в ds отчета и в дизайнере воспользуйтесь функцией определения фильтра (Ctrl+R) и задайте фильтрацию по дате первого платежа.
Максим, здравствуйте.
Я сделал по-другому - в обработчике события MasterData1OnBeforePrint написал следующий код:
[javascript]
if ( = )
and ( <> '')
and ( <> 0) then
begin
MasterData1.Visible := true;
GroupHeader2.Visible := true;
GroupFooter2.Visible := true;
end else
begin
MasterData1.Visible := false;
GroupHeader2.Visible := false;
GroupFooter2.Visible := false;
end;
[/javascript]
и это оказалось именно тем, что было нужно! Может, поможет, кому-нибудь.