|
Как сделать кнопки невидимыми при распечатке отчета?
|
|||
---|---|---|---|
#18+
ghjdjlrf, давайте создадим страницу на apex.oracle.com и там потренируемся на кошках ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2011, 15:22 |
|
Как сделать кнопки невидимыми при распечатке отчета?
|
|||
---|---|---|---|
#18+
ghjdjlrfусловие, наверно надо если распечатываем тогда элемент виден. Как условие написать? Наверно, можно как-то для всех сразу элементов это задать? А если условие поставить для всего региона, содержащего непечатные элементы? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2011, 16:58 |
|
Как сделать кнопки невидимыми при распечатке отчета?
|
|||
---|---|---|---|
#18+
ghjdjlrfnon-apexoidghjdjlrf, для печатного отчёта гораздо проще использовать страницу с шаблоном "Printer friendly". Если страницу нужно смотреть на экране, а при необходимости распечатать, можно установить параметр PRINTER_FRIENDLY в URL в значение YES. http://trac1.kppm.ru:7780/pls/apext/f?p=1800:60:::::::Yes - наверно не так устанвалявается этот парметр, потому что отображается как обычно Угу. Хотел попробовать сделать так... Нифига не получается :( Версия APEX 4.0.2 Создаю бранч на кнопку. I. Если у бранча в Target type ставить Page in this application, то параметр Printer frendly установить негде. Нету его в настройках бранча. II. Если у бранча в Target type поставить URL, то начинается вообще фантастическое кино: 1. Ставим в URL Target f?p=104:2:&APP_SESSION::::::YES или заменяем номера приложения и страницы на их алиасы: f?p=APP_DOWNTIME:REP_SHIFT:&APP_SESSION::::::YES. Запускаем, жмем на кнопку, получаем Bad request. URL в адресной строке при этом выглядит так: <бла-бла>/apex/f?p=APP_DOWNTIME:REP_SHIFT:&APP_SESSION::::::YES Возвращаемся к нашему бранчу и видим чудеса: Он сам поменял Target type обратно на Page in this application! Догадался, гад что на ту же страницу ссылаемся... (и в остальных случаях он будет вытворять то же самое). 2. Возвращаем тип обратно на URL, из URL target убираем параметр сессии: f?p=APP_DOWNTIME:REP_SHIFT:::::::YES Запускаем, жмем кнопку и получаем версию для печати... страницы Логина. Это ожидаемо, ибо сессию мы не указали, так что сервак снова просит залогиниться (но вместо полей ввода логина/пароля - простой текст, ибо версия для печати, так что не залогинишься). URL в адресной строке имеет вид: <...>/apex/f?p=APP_DOWNTIME:REP_SHIFT:::::::YES 3. Значит надо как-то передать номер сессии. В юзергайде нарыл, что иногда надо конкретизировать workspace. Забиваем такой URL: f?p=APP_DOWNTIME:REP_SHIFT:&APP_SESSION.&c=ws_downtinme::::::YES Запускаем, жмем кнопку... Страница перегружается, по вид ее не printer-friendly не меняется. Смотрим на URL в адресной строке: <...>/apex/f?p=APP_DOWNTIME:REP_SHIFT:2811475471795712:::::&c=ws_downtinme::::::YES Ага! YES оказался не 9-м, как нужно, а 14-м параметром! Продолжаем танец с бубном: 4. Забиваем в бранч такой URL: f?p=APP_DOWNTIME:REP_SHIFT:&APP_SESSION.&c=ws_downtinme:YES Визуально результат такой же как в п. 3. Но URL в адресной строке изменился: <...>/apex/f?p=APP_DOWNTIME:REP_SHIFT:2811475471795712:::::&c=ws_downtinme:YES Теперь YES стоит на нужном нам 9-м, но щастья это никакого не приносит: страница отображается по-прежнему. Ах да! Если открыть бранч, то увидим, что YES появился в поле REQUEST. P.S. Как уже говорил, после того, как нажали Apply changes на бранче, его тип автоматически меняется с URL на Page in this application. Но при этом параметры, введенные с помощью строки URL, таки работают при вызове этого бранча кнопкой. Но! Если открыть такой бранч и ничего не меняя нажать Apply changes, то параметры (типа того же YES в 9-й позиции) исчезнут. Как с этим бороться или как с этим жить? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2011, 13:03 |
|
Как сделать кнопки невидимыми при распечатке отчета?
|
|||
---|---|---|---|
#18+
BoojumКак с этим бороться или как с этим жить? Для начала - RTFM Using f?p Syntax to Link Pages . Потом нужно понять, как передаются параметры в HTTP методом GET. Тогда придёт понимание, что для URL Код: plaintext
Кроме того, Вы не вcегда ставите точку в конце APP_SESSION. У Вас не включён атрибут приложения Exact Substitutions , как мне кажется, так что не забывайте про обязательность точки. Чтобы перейти к странице через Branch и отобразить ее в Printer Friendly Mode, нужно создать на этой странице Before Header Process, который будет выполнять следующее: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2011, 17:54 |
|
Как сделать кнопки невидимыми при распечатке отчета?
|
|||
---|---|---|---|
#18+
suPPLerBoojumКак с этим бороться или как с этим жить? Кроме того, Вы не вcегда ставите точку в конце APP_SESSION. У Вас не включён атрибут приложения Exact Substitutions , как мне кажется, так что не забывайте про обязательность точки. Чтобы перейти к странице через Branch и отобразить ее в Printer Friendly Mode, нужно создать на этой странице Before Header Process, который будет выполнять следующее: Код: plaintext
1. Спасибо большое! Точки то я и не приметил... :( Точнее воспринял ее как обыкновенный знак препинания. 2. Exact substitutions был включен, ибо он таков по умолчанию и менять его у меня не было никакого резона. 3. А можно про процесс по-подробнее? Зачем он нужен то? Он жеж будет выставлять G_PRINTER_FRIENDLY в true в любом случае (и когда нужно и когда не нужно), не? В обчем, заработало... в PRINTER FRIENDLY страничка стала побледнее, исчезла с нее кнопочка, да DatePicker превратился в строчку. Но, увы, совершенно ненужный и даже вредный для печатной версии search bar никуда не делся :( Можно его как-нибудь убрать (не навсегда, а только в печатной версии)? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 07:06 |
|
Как сделать кнопки невидимыми при распечатке отчета?
|
|||
---|---|---|---|
#18+
suPPLerBoojumКак с этим бороться или как с этим жить? Потом нужно понять, как передаются параметры в HTTP методом GET. Тогда придёт понимание, что для URL Код: plaintext
Насколько мне помнится, HTTP и GET не при делах. GET не парсит строку параметров, он ее просто передает. Парсит строку движок/скрипт веб-сервера, он же и определяет каков должен быть синтаксис строки параметров. Кстати, об апекс, в котором "you can develop and deploy applications that are fast and secure" и методе GET... В строке параметров передается ID сессии. И, я так понимаю, любой, подглядевший/перехвативший URL, может получить доступ к приложению (и стало быть влезть в базу) с теми правами, что и исходный юзер, пока этот юзер не вылогинился... Так что насчет "secure" меня начинают терзать смутные сомнения.... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 07:24 |
|
Как сделать кнопки невидимыми при распечатке отчета?
|
|||
---|---|---|---|
#18+
BoojumВ строке параметров передается ID сессии. И, я так понимаю, любой, подглядевший/перехвативший URL, может получить доступ к приложению (и стало быть влезть в базу) с теми правами, что и исходный юзер, пока этот юзер не вылогинился... Так что насчет "secure" меня начинают терзать смутные сомнения.... Там всё сложнее. Участвуют еще как минимум кукисы, можете проверить, установив у себя 2 браузера, и копируя ссылку из одного в другой ничего не выйдет, доступа не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2011, 11:26 |
|
|
start [/forum/topic.php?fid=50&gotonew=1&tid=1876425]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 143ms |
0 / 0 |