Организация нескольких разделов с подробностями в Crystal Reports 2013

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

Я постараюсь объяснить как можно лучше. Я вставляю первый запрос в первую деталь отчета («Детали а»); этот запрос состоит из двух строк.

Затем я вставляю аналогичный запрос в другой раздел подробностей («Подробности B»). Я бы хотел, чтобы каждая строка в деталях A была представлена ​​в верхней части отчета, а затем каждая строка в деталях B была представлена ​​под ней (Итак:

Детали A Ряд 1

Детали A Row 2

Детали B Ряд 1

Детали B Ряд 2

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

Детали A Ряд 1

Детали B Ряд 1

Детали A Row 2

Детали B Ряд 2

Есть ли способ отформатировать разделы с подробностями, чтобы я мог держать все строки в каждом разделе сведений рядом друг с другом? Пожалуйста, дайте мне знать, если вам будет полезна дополнительная информация.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
747
2

Ответы 2

Используйте 2 вложенных отчета (Insert, Subreport). Это позволит подотчету №1 отображать все строки с подробностями из одного источника данных. И подотчет №2 будет отображать все строки деталей из другого источника данных.

Это именно то, что я искал. Спасибо!

Tim J 10.09.2018 20:23

То, что происходит, является декартовым произведением. Другими словами, набор вашего первого запроса приносит 2 строки, а набор из вас второго приносит еще 2 строки. Итак, 2х2 = 4 ряда.

Следует также отметить, что детали A и B не являются независимыми. Я знаю, что это не очень интуитивно понятно. Позвольте мне попытаться рассказать вам, как Crystal справляется с этим (на самом деле это не так, а просто полезное представление, чтобы понять это):

  1. Кристалл выполняет два ваших запроса. Результат первого запроса имеет 2 элемента, а именно 1 и 2. Результат второго запроса содержит еще 2 элемента, а именно 3 и 4.
  2. Crystal проверяет связь между двумя наборами результатов. Поскольку - я полагаю - вы не сказали Crystal, что это за ссылка, Crystal предполагает, что ссылок нет, поэтому он делает декартово произведение, в результате чего получается 4 строки, а именно 1/3, 1/4, 2/3, 2/4 .
  3. Затем Crystal делает своего рода оператор foreach. Итак, для каждой из 4-х строк печатается один экземпляр раздела сведений.
  4. Поскольку в вашем разделе сведений есть 2 подраздела, а именно детали A и детали B, в итоге будет напечатано 4 детали, как вы видели:
1 //1st detail section, subsection A, field from 1st result set
3 //1st detail section, subsection B, field from 2nd result set
1 //2nd detail section, subsection A, field from 1st result set
4 //2nd detail section, subsection B, field from 2nd result set (second item)
2 //3st detail section, subsection A, field from 1st result set (second item)
3 //3st detail section, subsection B, field from 2nd result set
2 //4nd detail section, subsection A, field from 1st result set (second item)
4 //4nd detail section, subsection B, field from 2nd result set (second item)

Итак, как уже указывал @MilletSoftware (пока я писал это, хахах), самым простым решением является использование двух вложенных отчетов.

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

Tim J 11.09.2018 15:46

Другие вопросы по теме