Проблема с Crystal Reports - PullRequest
       14

Проблема с Crystal Reports

0 голосов
/ 12 ноября 2009

У меня проблема с полями Sum в Crystal Reports под VS 2003. Я использую VS 2003 и Crystal Reports для создания отчета с данными, извлеченными из базы данных SQL Server 2000 и хранящимися во время выполнения в строго типизированном наборе данных.

Набор данных содержит несколько таблиц, одна из которых, таблица orders , получает результаты SQL-запроса, объединяющего записи из двух разных таблиц. После проверки содержимого таблицы orders во время выполнения - непосредственно перед передачей набора данных в объект Report, я убедился, что рассматриваемый SQL-запрос работает правильно, всегда возвращая ожидаемые данные из базы данных.

Набор данных итерируется, каждая итерация объединяет результаты SQL-запроса, выполненного с другим orderID, в набор данных. Запрос SQL также извлекает записи из других таблиц, связанных с каждым orderID, и помещает их в соответствующие таблицы (кроме orders ) в наборе данных.

Проблема возникает, когда я пытаюсь суммировать конкретный столбец, столбец orders.order_amount , в Crystal Report. Сумма, которую я получаю, неверна.

Например, таблица orders содержит 3 записи в то время, когда она связана как источник данных отчета, каждая с order_amount = 10,00 $. Вместо того, чтобы возвращать 30,00 долларов, значение поля суммы будет примерно равно 50,00.

Я не вижу, как это могло произойти, я предполагаю, что это связано либо с ошибкой в ​​Crystal Reports, либо с отсутствующим элементом в моем отчете. Набор данных заполнен правильно, но, похоже, Crystal Reports каким-то образом путает связанные записи, извлеченные на основе orderID s, как записи таблицы orders и добавляет к сумма заказа сумма.

Если я отключу инструкцию SELECT, которая заполняет связанные записи, сумма order_amount отображается правильно.

Кто-нибудь знает, почему это происходит? Заранее спасибо.

Ray

Ответы [ 2 ]

1 голос
/ 12 ноября 2009

Лучше всего предположить, что упомянутые вами «связанные записи», которые вы отключаете, приводят к тому, что order_amount появляется несколько раз в результате отношений родитель-потомок с вашим запросом. Может ли оператор Select, который вы включаете / отключаете, вызвать возврат 5 строк вместо 3? Если две из 3 строк имеют 2 связанные записи вместо одного Crystal, они будут считаны как 5 строк и соответственно суммированы.

0 голосов
/ 17 ноября 2009

Еще раз спасибо за ваш ответ. Я решил эту проблему, добавив код CR на уровне отчета, чтобы проверить данные заказов и обновить некоторые общие переменные, указав суммы заказов, а также некоторые другие суммы, относящиеся к отчету.

Я все еще не понимаю, почему CR добавляет записи таблицы заказов со связанными записями из других таблиц из набора данных, когда я четко указываю, что все, что мне нужно, - это записи из таблицы заказов. Кажется, что CR не делает то, что логически подразумевается операцией Sum, которая равна Sum (orders.order_amount) . Во всяком случае, проблема решена. Спасибо за вашу помощь. Ray

...