Ограничение данных с помощью формулы отбора групп

Оценить
(0 голоса)

Когда вы используете эксперт Select Expert или создаете формулу отбора записей с помощью редактора Formula Editor, вы фактически меняете способ, посредством которого Crystal Reports извлекает данные из базы. Отбор записей осуществляется во время первого прохода отчета и перед тем, как данные будут отсортированы или объединены в группы. В силу этого обстоятельства, вы не можете использовать отбор записей для ограничения отчета, скажем, до групп, для которых объемы продаж превосходят $100 ООО — отбор записей производится перед вычислением этих сумм.

Возможно, вы решите воспользоваться для отбора записей существующими формулами отчета. Однако если в формуле вызывается функция WhilePrintingRecords или какая-нибудь итоговая функция, она будет вычисляться на втором проходе отчета и поэтому при создании формулы отбора записей в дереве Field Tree (Дерево полей) присутствовать не будет. Опять-таки придется вспомнить, что выбор записей осуществляется на первом проходе, а это значит, что формулы второго прохода применяться не могут.

При желании ограничить отчет в соответствии с промежуточными суммами или сводками в группах или каким-то образом ограничить отчет с помощью формул второго прохода, вместо формул отбора записей следует использовать формулы отбора групп. На самом деле вы можете случайно создать формулу отбора записей и даже не догадываться об этом. Если вы используете созданные в отчете поля промежуточной суммы или сводки в окне Select Expert (например, выбираете поле Sum of Customer. LastYearSales (Сумма продаж заказчика за прошлый год) вместо поля Customer. LastYearSales из самой базы данных), значит, вы применяете отбор групп вместо обычного отбора записей.

Формулу отбора групп можно также создать в окне Select Expert, щелкнув на кнопке Show Formula, а затем выбрав переключатель Group Selection (Выбор групп). При желании воспользоваться формулой, введенной с клавиатуры, можете сделать следующее: выбрать в меню Report пункт Selection Formulas^Group (Формулы отбора^Группа) или выбрать элемент Group Selection в категории Selection Formulas окна Formula Workshop. После этого можете создать булевскую формулу для ограничения количества записей, используя для этого групповые сводки или формулы второго прохода.

Одно небольшое предостережение: отбор групп производится после вычисления дерева групп, промежуточных сумм и общих сумм. Это может привести к некоторым неточностям в отчете. Для примера посмотрите на отчет, показанный на рис. 4.10.

Вы увидите, что в дереве групп присутствует гораздо больше регионов, чем фактически представлено в отчете. И не потребуется ученой степени по математике, чтобы обнаружить, что общие суммы не сходятся. Не забывайте, что выбор поля сводки или промежуточной суммы в окне Select Expert приводит к созданию формулы отбора групп, а не формулы отбора записей. Это странное поведение может вызвать у вас определенные вопросы. Вернитесь в окно Select Expert и выясните, на основе чего выполняется отбор записей — на основе поля промежуточной суммы или на основе итогового поля.

Ограничение данных с помощью формулы отбора групп

В показанном отчете формула отбора групп применяется для ограничения выбираемых групп только теми, в которых сумма продаж за прошлый год превышает $250 ООО. Отбор этих групп выполняется только после создания дерева групп и вычисления общих сумм. И хотя возможности внести изменения в дерево групп в этой ситуации нет, вы можете устранить проблему неточности при подсчете общих сумм, воспользовавшись промежуточными суммами вместо общих. Для получения более подробной информации о полях промежуточных сумм обратитесь в главу 5.

Повышение производительности при отборе записей
Создание простого отчета
Эксперт Select Expert
Выбор записей с помощью полей даты
Работа с формулой отбора записей напрямую

Добавить комментарий


Защитный код
Обновить