Формулы Crystal Reports и как они работают в разных разделах - PullRequest
0 голосов
/ 08 октября 2018

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

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

Я действительно запутался, поскольку недавно мне пришлось настроить более сложный отчет.У меня есть три таблицы - «Мастер работ», «Мастер счетов (связан по номеру работы)» и «Мастер калькуляции (связан по номеру работы)».Я создал группу для номеров заданий «хозяин задания» и попытался извлечь из каждого из этих таблиц счета и расчеты.Однако независимо от того, куда я поместил информацию (верхний колонтитул группы, подробности или нижний колонтитул группы), некоторые из них получаются неверными.

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

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

1 Ответ

0 голосов
/ 08 октября 2018

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

Но что я могу сказать сейчас, вы, вероятно, уже выяснили сами:

  1. Раздел подробностейпокажите итеративные данные.
  2. Верхний и нижний колонтитулы показывают неитеративные данные (за исключением, в некотором роде, верхнего колонтитула группы и нижнего колонтитула группы).

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

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

  1. Предположим, у вас есть отчет с двумя таблицами и у вас нет вложенных отчетов.
  2. Во-первых, Кристаллприсоединяйтесь к вашим столамСоединение будет соответствовать тому, как вы устанавливаете связи между таблицами.Если вы не настроите ссылки правильно, вы получите декартово произведение таблиц, которое, вероятно, означает нежелательные повторяющиеся строки.
  3. Результатом этого объединения является «проекция» с N строками.Таким образом, для каждой строки будет напечатан раздел «детали».
  4. Итак, если вы поместите одно поле (фактически столбец) таблицы в раздел деталей, вы увидите, что значения печатаются так же, как вывероятно, ожидайте.
  5. Но если вы поместите то же поле в заголовок страницы, оно напечатает первое вхождение.
  6. Но если вы поместите то же поле в нижний колонтитул страницы, оно напечатаетпоследнее вхождение (не уверен, что оно последнее).
  7. Сводные поля будут вычислены после итерации по строкам.Это означает, что не имеет значения, находятся они в верхнем или нижнем колонтитуле - результат один и тот же.Таким образом, если в разделе сведений имеется 10 строк, в которых столбец имеет значение 1 для всех строк, и вы создаете сводное поле для суммирования этого столбца, его результат будет равен 10 в обоих разделах (верхний и нижний колонтитулы).
  8. Промежуточные итоговые поля будут вычисляться на лету.Таким образом, если в разделе сведений имеется 10 строк, где столбец имеет значение 1 для всех строк, и вы создаете поле промежуточного итога для суммирования этого столбца, результатом будет 0 в верхнем колонтитуле, 10 в нижнем колонтитуле,и если вы поместите это поле промежуточного итога в раздел подробностей, оно покажет накопленное значение до этой строки (1, 2, 3, ..., 9, 10).
  9. Вы можете думать аналогично дляверхние и нижние колонтитулы групп.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...