2012-02-09 4 views
0

У меня есть отчет с 4 отдельными суб-отчетами, встроенными в него. В основном отчете у меня есть параметр для фильтрации по группам, и я настроил его на фильтрацию по группе, если вы не выберете «Все» для параметра, а затем отобразите все группы.Отчеты отчетов Crystal Reports, повторяющиеся на основе параметра

If {?Main Group Name} = "ALL" then {Incident.Group Name} like "*" 
else {Incident.Group Name} = {?Main Group Name} 

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

Данные находятся во всех заголовках группы 1 и нижнем колонтитуле 1 группы, поэтому в идеале одна и та же страница (как показано ниже) должна повторяться для каждой группы.
Correct view for 1 group

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

enter image description here enter image description here

Кто-нибудь есть ключ, что может привести к этому?

+0

В ссылках на подзаголовки вы передаете групповое значение или значение основного отчета? –

+0

Да, основное значение группы передается всем отдельным под-отчетам. Он отображается отлично при запуске его для одной группы, только когда я выбираю multip.e – DanB

+0

Значит, вы определенно не передаете значение параметра основного отчета в каждый из подписок? –

ответ

0

Где находятся ваши данные в основном отчете (заголовок группы)? Что вы делаете с рекордами основного отчета (подавляя, я предполагаю)? Как выглядят формулы выбора записей, из подзаголовков? Сколько таблиц в подписях? Если вы используете несколько таблиц, правильно ли ваши соединения?

Я видел случаи, когда в подзаголовках есть заданный выбор записей, а затем добавлены ссылки из основного отчета, где результирующий запрос к отчету полностью заполнен, так как Crystal Reports «помогает», изменяя выбор записей в подзаголовке поверх того, что - подумал разработчик. True Story (17-й отчет был обновлен и продолжался в течение 20 часов, прежде чем кто-либо заметил, что он никогда не заканчивал запланированный прогон). Это звучит (хех, в тексте), как будто у вас нет правильных отношений, установленных в подзаголовках, и на самом деле могут быть сформированы картофельные продукты.

Где вы используете код, указанный в вашем вопросе? В выборе записи? В @Formula? Какую ссылку вы используете в подзаголовке? То, что «должно» быть связано с вложенными отчетами, это {Incident.Group Name} - как это то, что изменяется в основной группе отчетов.

Если вы выходите из подзаголовков и запускаете их отдельно, вручную устанавливая {? Main Group Name} на "ALL", а затем, чтобы пробовать имена групп, каков результат? Если отдельные подчиненные записи все еще работают, вы можете, по крайней мере, следить за количеством записей (строка состояния), а когда вы вручную убиваете отчет, вы можете посмотреть информацию о производительности и в отчете SubQuery Show Query.

И наконец, если вы попробуете запустить main как «ВСЕ», используя Top 10 (или 2 или любой другой номер, который вы хотите), а затем посмотрите на производительность подзаголовка, что может дать некоторые подсказки. Если есть побочные продукты побочных выделений, это, по крайней мере, ограничивает эффекты. Вы все равно будете передавать «*» в подзаголовок, но только выполняете это «N» циклов.

Вздох, и один последний: Если вы действительно хотите «все», вы могли бы быть лучше, если вы используете что-то вроде:

If {?Main Group Name} = "ALL" then TRUE 
else {Incident.Group Name} = {?Main Group Name} 

Извините быть так долго ... У меня не было достаточно чтобы сократить его.

ОК, действительно, действительно ПОСЛЕДНИЙ: Если я неправильно понял ваш пост, предполагал слишком много разрозненных тем или просто говорю из своей шляпы: Извините. Пропустил еду, взял несколько перерывов и удвоил кофе. Я уверен, что там есть смайлик.

+0

Под-отчеты находятся в заголовке группы 1, и каждый подзадач, в свою очередь, имеет свой график в заголовке группы 1. – DanB

+0

Под-отчеты находятся в заголовке группы 1, и каждый подзадач, в свою очередь, имеет свой граф в заголовке группы 1. Указанный код находится в эксперте по выбору, я попытался изменить его на ваш код и получил тот же результат. – DanB

+0

Извините, пришлось пересмотреть комментарий: у меня небольшая путаница: вы группируете «Группу» в основном (неудобный выбор имен столбцов)? Когда вы выбираете «ВСЕ», что должно быть сделано в главном отчете? Предполагается, что это будет сворачивание (резюме) в основном (и должны ли диаграммы показывать все)? * IN MY MIND *, я вижу вашу группу rpt по отдельным записям (в основном) и запускает субтитры на КАЖДОЙ ЗАПИСИ. Можете ли вы добавить некоторые наложения столбцов на диаграммы, чтобы увидеть, что отчет «видит»? – Marc

0

[Вставка add'l ответа, так как он достаточно отличается, чтобы оправдать свою собственную запись.]

Я думаю, я понимаю Заголовок группы/Foot диаграммы.
Вы пытались запустить Main в качестве Top 10, чтобы ограничить # группы?
Насколько велика запись (диаграмма)?

И, настроен ли отчет для асинхронных запросов?

Что происходит в подписях: Сложный запрос?
Простой запрос?
Подавление всех деталей и просто отображение диаграммы?
Перейти к другой таблице/базе данных?
Стол объединяется?

Run для «Top 10» Группы в основном, подождите, пока он не закончится, а затем проверить на основной и каждой подтип диаграммы (по крайней мере, несколько групп):

Report/Performance Information: 
    Total Number of Records -- (Main should be "Top 10") 
    Performance Timing: 
     Run the Query, 
     Read Database Records, 
     Time to Format All Charts 
      or 
     Time to Format 1st Page. 

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

Вы можете обнаружить, что небольшое «все» сверху «n» покажет много времени, проведенного за кулисами, и позволяет запустить весь отчет, который будет отображаться при добавлении сравнения счетчиков билетов. А если нет, мы можем посмотреть на это позже (главным образом, открыв труп и заглянув внутрь).

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

Смежные вопросы