Запрос на использование агрегатных функций над рекурсивными группами в конструкторе отчетов Microsoft - PullRequest
1 голос
/ 01 марта 2012

Я должен отметить, что я довольно плохо знаком с отчетами за пределами Microsoft Access и плохо знаком с сайтом, поэтому, пожалуйста, потерпите меня!

Если разобраться с необходимыми элементами, мой объект данных имеет:CategoryID, ParentCategoryID, TransactionID, TransactionDate, SplitID, CurrencyID и Value.

Не думаю, что это актуально, но на всякий случай -

  • Разделение имеет категорию иЗначение, при котором один ко многим принадлежит транзакции.
  • Может существовать несколько разделений для одной и той же категории и транзакции с разным или одинаковым значением (для поддержки различных комбинаций других элементов данных, которых я не перечислил).
  • Транзакция имеетa TransactionDate и CurrencyID, так что все Сплиты, принадлежащие Транзакции, относятся к одной и той же Валюте.
  • Категория относится к Категории рекурсивно.

Разделению может быть назначена Категория влюбой уровень в рекурсивной иерархии и суть моей проблемы - сообщить подробности транзакции / разделения под соответствующим заголовком категории с промежуточным итогом, включающим все эти сведения и итоги всех дочерних категорий.

Итак, У меня есть группа строк Detail, содержащая все ненужные элементы вспомогательных данных, и группа строк TransactionIDGroup в той же строке.Затем у меня есть группа строк CategoryGroup на основе CategoryID с Parent of ParentCategoryID для обработки рекурсивного характера данных и группа столбцов CurrencyIDGroup для обработки возможных нескольких задействованных валют.

Также в группе строк CategoryIDGroup естьитоговая строка с ячейкой «Значение», содержащей выражение.

Если я оставлю это выражение как = Sum (Fields! AccountValue.Value), отчет довольно хорошо суммирует значение для каждого столбца «Валюта» для всех деталей, конкретно в каждомКатегория (область по умолчанию), поэтому я подумал, что нужно сделать сумму «Рекурсивной».Однако вы, похоже, не можете указать необязательный параметр Recursive без указания области.

Если я задаю область в качестве CategoryIDGroup, я получу все нулевые промежуточные итоги.Если я использую CurrencyIDGroup, я получаю каждый отчет с одинаковым итогом для Валюты.Все остальное либо приводит к ошибке сборки, либо к сумме отчета в комбинированной валюте.

Другая проблема, с которой я сталкиваюсь, заключается в том, что рекурсивные дочерние группы категорий сообщаются последовательно под родительской группой категорий (так, вне строки заголовка,Строки детализации и итоговая строка, а не внутри группы. Однако, если бы я мог получить итоговую сумму, отражающую детей, а также детали на этом уровне, я был бы достаточно счастлив, даже если бы это не складывалосьпока вы не поняли, что происходит.

Я имею в виду что-то вроде:

Category A
Transaction 1 10/02/2011   ......................    £100.00
                           ----------------------     £14.50
Transaction 2 18/03/2011   ......................               $159.34

   Category Ai
Transaction 3 18/06/2011   ----------------------    £295.60
   Total Category Ai                                 £295.60
Total Category A                                     £410.10    $159.34*

Но я получаю следующее:

Category A
Transaction 1 10/02/2011   ......................    £100.00
                           ----------------------     £14.50
Transaction 2 18/03/2011   ......................               $159.34
Total Category A                                     £114.50    $159.34*

   Category Ai
Transaction 3 18/06/2011   ----------------------    £295.60
   Total Category Ai                                 £295.60

Я думаю,основной вопрос - спрашиваю ли я о невозможном? Нужен ли мне другой подход, возможно, с дополнительными отчетами для деталей? Я задавался вопросом о включении суммы значений дочерних категорий в объект данных на каждомУровень категории, но есть ли что-то простое, что я пропускаю?

Любые указатели в правильном направлении будут высоко оценены послетер несколько дней рвал на себе волосы:)

1 Ответ

0 голосов
/ 05 марта 2012

Я не знаю, было ли что-то простое, что я пропустил, но решил проблему к моему удовлетворению, включив другое свойство в объект данных, являясь суммой всех дочерних категорий для каждой валюты, и включив новую строку для печати сумма этого поля. На всякий случай, если кто-то ответит на тот же вопрос!

...