Акт сверки?

Добрый день. Появилась задача реализовать акт сверки по договору. Выводить счета и оплаты в хронологическом порядке без привязки оплаты к счету. Проблема в том что некоторые оплаты за старые счета попадают в период выставленный для сверки а счет не попадает в этот период.Примерный шаблон в прикрепленном файле. shablon_akta_sverki4.docx

Нравится

8 комментариев

Иван, насколько я поняла Вы пытаетесь создать отчет Word. Опишите подробнее в чем заключается проблема, желательно со скриншотами. Какая структура запроса, используемого для построения отчета?

Наталия не совсем правильно. В Word сложно будет реализовать такой отчет как я предполагаю. Сложность в том что нудно вывести все операции и счета в хронологическом порядке за определенную дату по договору. Тоесть нужно реализовать акт сверки как в 1С

Иван, в данном случае Вам необходимо вытянуть в запрос для отчета Таблицу Договора и изее обратных связей - таблицу Операции.

contract

Фильтровать необходимо по дате операции, а для каждой операции из той же таблицы операции подтягивать информацию о Счете.

operation

Не так конечно можно. Только если например был счет но оплаты по нему не было тогда он не попадет в данный отчет а по идее надо.

Иван, уточните пожалуйста, как Вам нужно, чтобы оно работало?

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

И реализовал логику отображения уже в самом отчете

Показать все комментарии