Как скрыть каскадный параметр первого уровня динамически
У меня есть случай, когда я хочу скрыть параметр первого уровня в каскадном параметре Group. Я передам этот аргумент как часть url(т.е.. Как строку запроса?). Теперь я создал два параметра в группе каскадных параметров (то есть:officecode и empno). Если пользователь передает параметр officecode через url(это означает, что пользователь не является администратором), то я хочу скрыть параметр первого уровня (т.е. officecode) и напрямую загрузить все empno, соответствующие этому офису. Если пользователь не передает officecode как часть URL (это означает, что пользователь является администратором и хочет показать все офисы), то я хочу показать оба параметра в параметрическом dailog. Или любой другой способ справиться с этим сценарием?
1 ответ
Вы можете динамически скрыть параметр, добавив этот скрипт в getDefaultValueList:
reportContext.getHttpServletRequest().getParameter("outerParameter")!=null?reportContext.getDesignHan
dle().findParameter("outerParameter").hidden = true:null
Это проверяет, был ли externalParameter заполнен через сервлет. Если это так, он скрывает это, если нет, то это показано.
Таким же образом вы можете проверить в параметре нижнего уровня, был ли заполнен верхний уровень, и, если это так, передать значение.
URL будет что-то вроде www.website.com/birt/run?__report=reportname.rptdesign&outerParameter=specifiedValue
,