Подотчет Crystal report отображает альтернативный текст, если в подотчете не возвращено ни одной записи - PullRequest
0 голосов
/ 14 марта 2012

Как отобразить альтернативный текст, если в подотчете не возвращено ни одной записи?

например. если в подотчете не возвращена запись, я хочу отобразить '-' спасибо

Ответы [ 5 ]

2 голосов
/ 04 августа 2012

Вам нужно 2 подробных раздела в вашем отчете.В 1 положить то, что вы хотите показать, когда у вас есть записи.Щелкните правой кнопкой мыши на том же разделе и выберите Мастер раздела ... .Установите флажок Подавить пустое поле , чтобы пространство, используемое в этом разделе, подавлялось, когда нечего показывать.В разделе других сведений добавьте формулу, которая печатает то, что вы хотите отобразить, когда нет записей.В вашем примере это будет "-".Создайте другую формулу для подсчета записей и назовите ее RecordCount.

WhileReadingRecords;

NumberVar RecordCount := RecordCount + 1;

Поместите эту формулу в раздел сведений отчета и уберите ее.Неважно, в какой раздел сведений вы его поместите. Наконец, щелкните правой кнопкой мыши тот же раздел, который будет отображаться при отсутствии записей, выберите Мастер раздела ... .Нажмите кнопку формулы для Подавить (без детализации) и добавьте эту формулу ...

Not Isnull ({@RecordCount})

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

Теперь, когда у вас есть записи, второй раздел подробностей исключается, а первыйраздел подробностей показывает ваши данные.Если у вас нет записей, они переворачиваются, и отображается второй раздел сведений, а первый раздел сведений исключается.

1 голос
/ 14 марта 2012

Предполагая, что вы хотите, чтобы "-" появлялось в подотчете, поместите его в верхний или нижний колонтитул отчета и задайте видимость текстового элемента или раздела (в зависимости от того, хотите ли вы, чтобы раздел отображался независимо от того, от того, сколько записей возвращено) для условного подавления по формуле, например:

Count ({Table.Field})>0
0 голосов
/ 30 июля 2015

Лучший способ, который я могу предложить Вам, - это поиграться с отчетами Crystal для решений, исходя из вашего вопроса. Вы хотите отобразить «-», когда данных нет, поэтому вот ответ:

Сначала: 1 Создайте новую формулу в редакторе подотчета и использования и напишите следующую формулу: shared stringvar myvar; if isnull({Id_colounm_name}) then myvar := "-" else myvar:="+"
Примечание: здесь Id_coloumn_name - это элемент строки, который может решить, что записи пусты.

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

Третий 3: Перейти к основному отчету и создать новую формулу, используйте редактор, чтобы написать следующую формулу: shared stringvar disp;
Сохраните и закройте редактор формул.

Четвертый 4: Теперь вставьте раздел ниже раздела, в котором находится ваш отчет о кристаллах. Теперь перейдите к разделу эксперта, щелкнув правой кнопкой мыши на разделе и выберите значок формулы сразу после «Подавить» и добавьте следующую формулу:
shared stringvar myvar; if myvar <> "-" then true else false
Сохраните и закройте формулу и выберите значок сразу после «Подавить пустое сечение» и добавьте следующую формулу:
shared stringvar myvar; if myvar="+" then true
Сохраните и закройте формулу. Теперь добавьте формулу, созданную в основном отчете, во вновь созданный раздел. Сохрани это.

Пятый 5: Щелкните правой кнопкой мыши на подотчете и выберите «форматировать объект», затем выберите вкладку «Подотчет» и установите флажок «Подавить пустой подотчет». затем щелкните правой кнопкой мыши раздел, в котором находится ваш подотчет, затем перейдите к разделу «эксперт по разделам», а затем установите флажок «пустой раздел»

Это все, что вы можете сделать, теперь запустите отчет и проверьте, работает ли он или нет

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

Надеюсь, это поможет Спасибо и С уважением Срикант

0 голосов
/ 15 марта 2012
0 голосов
/ 14 марта 2012

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

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

 shared numberVar rowcount := 0;

Чтобы установить общую переменную, равную количеству строк в подотчете.Сделайте то же самое (создайте поле формулы в подотчете), но вот так:

 shared numberVar rowcount := <number of rows>;

Существует код для разных способов получения количества строк.

Затем назадв своем основном отчете создайте текстовое поле, содержащее «-», и оно будет подавлено, когда общая переменная больше 0. Вы также можете щелкнуть правой кнопкой мыши подотчет и установить его для подавления, если оно пустое, если хотите.

Наконец, убедитесь, что текстовое поле «-» (с функцией подавления) расположено под вложенным отчетом, потому что Crystal не будет знать, сколько записей находится в подчиненном отчете, до тех пор, пока он не попытается.Кристалл такой смешной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...