Добрый день. Появилась задача реализовать акт сверки по договору. Выводить счета и оплаты в хронологическом порядке без привязки оплаты к счету. Проблема в том что некоторые оплаты за старые счета попадают в период выставленный для сверки а счет не попадает в этот период.Примерный шаблон в прикрепленном файле.
Нравится
Иван, насколько я поняла Вы пытаетесь создать отчет Word. Опишите подробнее в чем заключается проблема, желательно со скриншотами. Какая структура запроса, используемого для построения отчета?
Наталия не совсем правильно. В Word сложно будет реализовать такой отчет как я предполагаю. Сложность в том что нудно вывести все операции и счета в хронологическом порядке за определенную дату по договору. Тоесть нужно реализовать акт сверки как в 1С
Иван, в данном случае Вам необходимо вытянуть в запрос для отчета Таблицу Договора и изее обратных связей - таблицу Операции.
Фильтровать необходимо по дате операции, а для каждой операции из той же таблицы операции подтягивать информацию о Счете.
Не так конечно можно. Только если например был счет но оплаты по нему не было тогда он не попадет в данный отчет а по идее надо.
Иван, уточните пожалуйста, как Вам нужно, чтобы оно работало?
1. Отчет выводит все счета, оплаты за которые попадают в указанный период.
2. Отчет выводит все счета за указанный период и все оплаты в указанный период.
3. Отчет выводит все счета, которые относятся к данному договору (попадают во временные рамки договора)
4. Свой вариант.
Отчет выводит все счета и все оплаты в хронологическом порядке за указанный период по определенному договору.
Например
Период 10.01.2011 - 12.05.2011
Счет за 30.01.2011
Оплата за 30.01.2011
Оплата за 29.01.2011
Счет за 28.02.2011
Нужно как бы объединить таблицы и вывести просто оплаты и счета в хронологии за период.
В этом случае необходимо установить следующие фильтры в запросе отчета:
- по периоду для операций;
- по периоду для счетов;
- добавить условие ИЛИ.
Кроме того, должны быть следующие фильтры:
- по идентификатору договора для счетов;
- по идентификатору счета который относится к договору (можно реализовать через фильтр типа Exist)
Функционал отчета Word не позволяет передать переменную в фильтры, поэтому в данном случае придется использовать функционал пользовательских отчетов Fast Report.
Спасибо Анна. Я вот что придумал. Сделал следующий запрос
SELECT [Amount], [InvoiceNumber], [InvoiceDate], [ConstColumn1] FROM (SELECT [tbl_Invoice].[Amount] AS [Amount], [tbl_Invoice].[InvoiceNumber] AS [InvoiceNumber], [tbl_Invoice].[InvoiceDate] AS [InvoiceDate], 1 AS [ConstColumn1] FROM [dbo].[tbl_Invoice] AS [tbl_Invoice] WHERE([tbl_Invoice].[ContractID] = :ContractID AND [tbl_Invoice].[InvoiceDate] >= :StartDate AND [tbl_Invoice].[InvoiceDate] <= :EndDate) UNION ALL SELECT [tbl_Cashflow].[Amount] AS [Amount], [tbl_Cashflow].[Subject] AS [Subject], [tbl_Cashflow].[ActualDate] AS [ActualDate], 2 AS [ConstColumn1] FROM [dbo].[tbl_Cashflow] AS [tbl_Cashflow] WHERE([tbl_Cashflow].[ContractID] = :ContractID AND [tbl_Cashflow].[ActualDate] >= :StartDate AND [tbl_Cashflow].[ActualDate] <= :EndDate)) AS [U] ORDER BY 3 ASC
И реализовал логику отображения уже в самом отчете