Есть ли какой-нибудь способ переработки набора данных Crystal Reports? - PullRequest
2 голосов
/ 12 августа 2008

Я пытаюсь написать отчет Crystal, итоги которого сгруппированы по-другому в основной отчет. Единственный способ, которым я смог сделать это до сих пор, - это использовать подотчет для итогов, но это означает, что мне нужно снова нажать на источник данных, чтобы получить те же данные, что кажется бессмысленным. Вот упрощенный пример:

       date   name   earnings   source          location
-----------------------------------------------------------
12-AUG-2008   Tom      $50.00   washing cars    uptown
12-AUG-2008   Dick    $100.00   washing cars    downtown     { main report }
12-AUG-2008   Harry    $75.00   mowing lawns    around town

                    total earnings for washing cars: $150.00 { subreport }
                    total earnings for mowing lawns:  $75.00

       date   name   earnings   source          location
-----------------------------------------------------------
13-AUG-2008   John     $95.00   dog walking     downtown
13-AUG-2008   Jane    $105.00   washing cars    around town  { main report }
13-AUG-2008   Dave     $65.00   mowing lawns    around town

                    total earnings for dog walking:   $95.00
                    total earnings for washing cars: $105.00 { subreport }
                    total earnings for mowing lawns:  $65.00

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

Ответы [ 2 ]

1 голос
/ 13 августа 2008

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

В итоге мы ввели бизнес-уровень, который находится под отчетом, и вместо того, чтобы «извлекать» данные из отчета, мы «проталкиваем» наборы данных в него и привязываем данные к отчету. Преимущество заключается в том, что вы можете манипулировать данными в коде в наборах данных или объектах, прежде чем они достигнут отчета, а затем просто привязать данные к отчету.

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

1 голос
/ 12 августа 2008

Единственный способ, которым я могу думать об этом без второго прогона данных, - это создание некоторых формул для выполнения промежуточных итогов по группе. Я предполагаю, что проблема, с которой вы сталкиваетесь с существующими промежуточными итогами, заключается в том, что они предназначены для отслеживания каждой из групп, которые они составляют. Поскольку вы, кажется, хотите, чтобы промежуточные итоги следовали за всеми «необработанными» данными, это не сработает.

Если вы создадите свои собственные формулы для каждой группы, которые просто прибавляют к итогу из этих строк, соответствующих группе, вы сможете разместить их в конце отчета. Недостатком этого подхода является то, что итоговые промежуточные итоги не будут динамичными по отношению к группам. Другими словами, если бы у вас был новый «источник», он не отображался бы в промежуточных итогах, пока вы его не добавили, или если у вас не было данных о «выгулах собак», у вас все еще был бы промежуточный итог для него.

...