Только следующий блок (заключенный в {...}
) после условия if
выполняется условно, следующие блоки выполняются всегда. Таким образом,
if(y == 'vv03'||y == 'vv3' ){b.value = "0 "}{c.value = "12"}{d.value = "300"}
означает, что b.value = "0 "
выполняется только если y == 'vv03'||y == 'vv3'
, но c.value = "12"
и d.value = "300"
выполняются безоговорочно.
Если вы хотите, чтобы все эти три назначения выполнялись только условно, поместите их все в один блок, т.е.
if(y == 'vv03'||y == 'vv3' ){b.value = "0 "; c.value = "12"; d.value = "300"}
И то же самое верно и для других двух if
с.
Вы пробовали идею, предложенную в комментарии самой процедуры, к которой Вы обращаетесь?
Сначала, как создать новый стиль отчета с условием:
Недавние выпуски JasperReports включают стили отчета, которые делают это немного легче - Вы больше не должны создавать прямоугольник.
Я использую iReport для создания моих стилей - существует область “стилей”, которая по умолчанию стыкуется с области “Library”. При создании этого видимым, можно создать новый стиль в библиотеке стилей. На экране, который открывается, дают стилю имя (скажите “EvenOddRowStyle” и нажмите "Add" под кнопкой “Style Conditions”. Use one of the expressions that Brian gave and press Apply. and in the "Common" section press the “…” рядом с “Цветом фона” и выберите цвет фона, который Вы хотите. Наконец, при выполнении с отчетом применяют тот стиль ко всем полям в строках, которые Вы хотите выделить. Просто перетащите стиль от области стилей на поле.
Затем, как определить стиль, который будет применен при экспорте в Excel:
определение нового стиля с выражением условия:
Boolean.valueOf( $V{PAGE_COUNT}.intValue() % 2 == 0 )
на нем, не используя прямоугольник и печать, когда выражение на нем!
Кроме того, убедитесь, что в условных стилях, которые вы создаете, отмечена опция "непрозрачный"... Если нет, цвет фона никогда не будет отображаться в отчете excel (никогда!!!)....
Также опция "непрозрачный" должна быть отмечена в текстовых полях....
И если вы заметили, что текстовые поля никогда не принимают стиль, который вы им задали, попробуйте установить передний цвет и фон на null, в панели свойств каждого текстового поля (это работает для меня)...
Надеюсь, это поможет... пока.