2010-02-18 4 views
3

У меня есть раздел в Crystal Report, который я хочу подавить. Мне нужно подавить его, если в наборе данных, который я использую, есть 0 строк в конкретной таблице. Как мне это сделать? Предусмотренное специальное поле «Номер записи» является внутренним подсчетом записей в отчете и не относится к строкам в таблице базовых данных.Отключить раздел Crystal Reports, если нет строк в datatable

Я создаю отчет с C#, но я не могу подавить раздел из кода (он не соответствует структуре проекта) - я должен быть в состоянии сделать это из самого отчета. Соответствующая таблица, безусловно, передается в отчет в наборе данных, но содержит 0 строк. Должен быть способ установить это внутри самого отчета .....

Может ли кто-нибудь указать мне в правильном направлении?

ответ

6

В конструкторе Crystal Reports просмотрите свойства вашего раздела и должна быть опция Suppress, которую вы можете дать формуле для возврата соответствующего логического значения.

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

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

Просто был быстрый Google - try this.

+0

Спасибо - это сработало, но теперь у меня есть еще одна проблема. Когда в рассматриваемой таблице есть записи, отчет теперь повторяет весь раздел подробностей столько же раз, сколько строк в этой таблице .... Я также попытался сыграть с общим номеромVar внутри подзаголовка для подсчета строк в таблице, и я могу успешно подавить раздел, который я хочу в основном отчете, но этот метод затем не работает, когда есть записи ARE - он все еще подавляет раздел. У меня есть количество таблиц, используемых на уровне детализации, что, вероятно, не помогает .... – JamesW

+0

Мне пришлось добавить формулу для подавления последующих строк, которые я не хочу видеть. Это дополнение было чисто до дизайна моего отчета, поэтому я с радостью отмечаю ваш ответ как ответ. Еще раз спасибо. – JamesW

+0

Если вы получаете раздел для каждой записи в своем отчете, но вместо этого хотите сводку записей, вам нужно использовать заголовок группы и подавить детали. Благодаря :) –

3

Если раздел содержит только поля базы данных и f.e. нет текстовых полей, тогда вы можете использовать настройку «Подавить пустую секцию» в разделе «Экспорт раздела» (раздел правого щелчка) для этого раздела.

В качестве альтернативы можно использовать следующую формулу в «супрессии» в разделе «Экспорт» для этого раздела:

IsNull({table.field}) 

«{table.field}» является одним из полей в наборе данных ,

Надеюсь, это поможет.

1

Перейти к «Раздел Expert» и нажмите кнопку «Подавите (No Drill-Down)» и попробуйте добавить следующее:

IF {"DragYourFieldHere"} = "" then true else false 
0

Создать одну фиктивную группу, проверить его заголовок для каждой страницы, добавить заголовок в заголовок группы фиктивной группы.

Смежные вопросы