Зачем использовать перед чтением записей / при чтении записей / при печати записей в отчетах Crystal? - PullRequest
1 голос
/ 24 января 2012

Я знаю, что Crystal Reports имеет 3 фазы, когда он представляет отчет, и в зависимости от фазы он может считывать статические данные или поля сгруппированных данных и т. Д., Но есть ли какая-нибудь выгода в написании формул на любой из этих фаз? Конечный результат всегда должен быть одинаковым, если я укажу фазу или нет?

1 Ответ

5 голосов
/ 24 января 2012

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

numbervar subtotal;
subtotal := subtotal + {table.numericvalue}

Crystal оценит эту формулу при чтении записей и до записи находятся в предсказуемом, сгруппированном и отсортированном порядке.Только после второго прохода, пока проходит печать записей, записи были сгруппированы и отсортированы.Вот почему выбор группы происходит на этом этапе.

Это только один пример, но существует несколько способов разбить отчет, опуская функции оценки времени, в основном связанные с использованием переменных (по крайней мере, яможно придумать).Вот большой ресурс для получения подробной информации о многократных проходах Crystal: Процесс многократной передачи отчетов Crystal Reports Engine

...