Я разрабатываю db (MS access 2010) для поддержки школы с четко определенной моделью для цитаты обучения. Список продуктов собирается для каждой цитаты, затем применяются различные скидки. Скидки могут составлять процент или абсолютную сумму в долларах. Пока что так просто. Проблема заключается в том, что их бизнес-логика требует:Использование итоговых итогов в отчете о доступе MS в совокупности
- Ограничений по количеству скидок.
- Конкретные скидки, которые должны применяться в определенной последовательности (реализованы в моем случае с столбцом «порядковый номер скидки», значения 1 (сначала применяются) до 100 (последнее применяется).
- Каждое последовательное применение скидки относится к общая сумма цитаты. Например: Всего товаров $ 1000. Скидка: 50%. Стоимость: 500 долл. Итого 500 долл. Итого: 500 долл. Скидка: 25 долл. Стоимость: 25 долл. Итого: 475 долл. США Итого: 475 долл. Скидка: $ 10%. Значение: $ 47,50.
Это, по-видимому, является вариантом проблемы «получить значение поля в предыдущей строке», bu t с добавленным завихрением, что «значение поля» на самом деле является кумулятивным расчетом. У этого есть вкус рекурсии: пока скидки остаются, промежуточный итог (предыдущий промежуточный итог).
У меня нет четкого представления о том, как реализовать это в отчете, потому что расчет, как указано выше, является самореферентным. Я не ищу код здесь, просто руководство по общему подходу к проблеме (т. Е. Какая-то глобальная переменная, использующая VBA), и в этом случае я не уверен, что «клей» между запросом в VBA и отчет будет - или какой-то трюк с вычисленным полем, хотя я потратил много времени, пытаясь разобраться в нем). Есть предположения?
Похоже, что вам нужно назначить свою переменную с использованием предыдущей переменной, то есть 'i = i + 1' so' value (v) = $ 1000, v = v * 0.5, v = v * 0.9' Вы можете присвоить скидку другая переменная say d, чтобы она стала: 'v = v * d' –