Как показать / скрыть поле по видимости другого поля в отчете crystal

Я использую кристаллический отчет с vb.net, и я хочу показать / скрыть какое-то поле с помощью видимости другого поля. Сначала я добавляю условие подавления в одно поле, например =>

if Not OnfirstRecord And ({Field1} = previous({Field1})) then
true

Я добавил это условие, потому что я не хочу отображать повторяющееся поле, и оно работает. А затем я добавил строку в отчет Crystal, которая будет отображаться только тогда, когда field1 visible = true.

Моя идея состоит в том, чтобы показать строку, когда поле1 отображается, и скрыть, когда поле1 скрыто. Итак, как я могу показать строку, состояние которой зависит от видимости поля1?

0
0
2 546
1

Ответы 1

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

Если Field_A имеет следующую формулу подавления:

if Not OnfirstRecord And ({Field1} = previous({Field1})) then
true
else
false

Тогда Field_B будет иметь такую ​​формулу подавления:

if Not OnfirstRecord And ({Field1} = previous({Field1})) then
false
else
true

Также я хотел бы отметить, что вам не всегда нужно использовать логику If..Then..Else в формулах подавления. Выражения, которые вы используете в операторе If, в конечном итоге вернут истинное или ложное значение. Вы можете сократить формулу подавления до самого выражения, и подавление будет работать так же с меньшими затратами кода. :)

Поскольку вы использовали операторы if, я добавил еще к вашей логике. Формула подавления, использующая оператор If, может привести к неожиданным результатам, если вы не укажете условие как для истинных, так и для ложных значений. Когда вы возвращаете только истинное значение, формула может только подавить поле. Как только одна запись оценивается как истинная, формула никогда не сможет вернуть значение false, если необходимо подавить следующую запись. Это еще одна причина, по которой в формуле подавления лучше всего использовать только выражения. Поскольку выражение всегда оценивается как истинное или ложное, они могут помочь предотвратить попадание в логическую ловушку оператора if, для которого не указано другое условие.

Спасибо за объяснение @ R.McMillan,

John 12.04.2018 08:21

Другие вопросы по теме