SAPфорум.RU https://sapboard.ru/forum/ |
|
Установка границ в языке FormCalc https://sapboard.ru/forum/viewtopic.php?f=13&t=65757 |
Страница 1 из 1 |
Автор: | vis_ABAPER [ Вт, ноя 30 2010, 18:06 ] |
Заголовок сообщения: | Установка границ в языке FormCalc |
Здравствуйте! Есть PDF-форма с таблицей. В ней программно нужно у одной ячейки некоторые границы сделать невидимыми, а другие - наоборот видимыми и жирными. Столкнулся со следующей проблемой. При изменении свойств одной стороны, остальные 3 получают такие же значения. А если точнее, логика вообще не прослеживается... Вот пример с отдельностоящим текстовым полем: После такого кода границы не видны: Code: data.Subform1.NAME_tmp.border.edge[1].presence = "invisible" data.Subform1.NAME_tmp.border.edge[0].presence = "visible" data.Subform1.NAME_tmp.border.edge[0].thickness = "0.02in" А после такого кода видны все: Code: data.Subform1.NAME_tmp.border.edge[0].presence = "visible" data.Subform1.NAME_tmp.border.edge[0].thickness = "0.02in" data.Subform1.NAME_tmp.border.edge[1].presence = "invisible" Как это работает, мне не понятно... Кто-нибудь может подсказать, как в FormCalc программно установить одну границу видимую (например, верхнюю), а другую (например, нижнюю) - невидимую? Заранее благодарен! |
Автор: | vis_ABAPER [ Ср, дек 01 2010, 15:44 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
Проблема несколько уточнилась: границы действительно устанавливаются по одной через массив. Если руками в дизайнере поставить у них разную толщину, то эти значения потом нормально выводятся через message box. Загвоздка в том, что, если поменять в скрипте тип линии или толщину, то на экране ничего не происходит. Может кто-нибудь знает метод или функцию в FormCalc, которая бы перерисовывала элемент или содержимое контейнера или даже сразу всей страницы? |
Автор: | __Gennady [ Ср, дек 01 2010, 16:27 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
Рискну предположить (сам не пробовал) это зависит от момента, в который запускается скрипт. Необходимо до отрисовки. |
Автор: | vis_ABAPER [ Ср, дек 01 2010, 17:39 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
Ставил на инициализацию (она вроде до отрисовки) и на движение мыши. При движении мыши почему-то меняются все границы сразу, но не по-отдельности... В общем, адобовский дизайнер - одна из самых глючных сред, которые я видел. По количеству багов винда 95-я отдыхает =( Спасибо за совет! Попробую еще с событиями поиграться... |
Автор: | __Gennady [ Ср, дек 01 2010, 18:01 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
можно еще ready:layout попробовать |
Автор: | BaBuin [ Чт, дек 02 2010, 07:56 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
vis_ABAPER написал(а): почему-то меняются все границы сразу, но не по-отдельности... Там же вроде ещё есть свойство что-то типа set together/individually. Сейчас к сожалению не могу посмотреть. |
Автор: | vis_ABAPER [ Чт, дек 02 2010, 10:00 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
BaBuin написал: Там же вроде ещё есть свойство что-то типа set together/individually. Сейчас к сожалению не могу посмотреть. Есть в дизайнере. Для этого объекта, конечно же стоит "set individually", однако как её поменять программно я не знаю (чтобы удостовериться, что оно не переставилось каким-то чудом ) . Возможно, это только опция дизайнера... |
Автор: | BaBuin [ Чт, дек 02 2010, 11:29 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
Вот тут что-то похожее обсуждают: http://forums.adobe.com/thread/756937?d ... hread=true Но у меня так тоже не заработало |
Автор: | vis_ABAPER [ Пт, дек 03 2010, 10:13 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
У меня заработало, но опять не так, как надо.... Вот такой код: Code: data.TextField1::mouseEnter - (FormCalc, client) $.ui.oneOfChild.border.getElement("edge", 2).color.value = "0,255,255" меняет цвет, но опять-же не отдельной границы, а всех сразу и, главное, не внешней, а внутренней, т.е. не вокруг всего текстового поля, а вокруг области ввода. Т.е. подпись остается снаружи границы. Тип этой границы можно указать в дизайнере в свойстве "Appearance". Можно установить обводку для области ввода утопленную, плоскую или вообще убрать. НО! Нельзя менять её цвет. А в скриптинге - можно =) А внешнюю границу - вокруг подписи и области ввода можно менять в дизайнере, но нельзя в скрипте... Чувствую, что разработчики перепутали эти границы и скриптинг работает не с той. Вот вообще шикарная иллюстрация (может проверить любой). Создаем пустую форму, на неё кидаем один элемент типа "text Field". Нижнюю границу у него делаем сплошную, красного цвета. В редакторе скриптов на событие mouseEnter ставим такой код: Code: data.TextField1::mouseEnter - (FormCalc, client) xfa.host.messageBox($.border.edge[2].color.value) $.border.edge[2].color.value = "0, 255, 0" Переходим на закладку "Preview PDF". Наводим мышку на поле. На экране появится "255, 0, 0". Закрываем message - на экране текстовый элемент с красной нижней границей и зеленой обводкой вокруг области ввода. На экран выводится цвет ВНЕШНЕЙ границы, а изменяется цвет ВНУТРЕННЕЙ =) В общем, я оставляю попытки побороть этот глюк... Спасибо всем за попытки помочь! |
Автор: | BaBuin [ Пт, дек 03 2010, 10:28 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
Да уж.. тривиальная задача по сути. Обидно. |
Автор: | _ [ Чт, мар 03 2011, 12:28 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
BaBuin написал: Вот тут что-то похожее обсуждают: http://forums.adobe.com/thread/756937?d ... hread=true Но у меня так тоже не заработало Спасибо за линк. А то как раз возникла похожая задача. А не заработало возможно потому, что если скрывать верхнюю границу у ячейки таблицы, то нужно также скрыть нижнюю границу у ячейки выше. Сейчас как раз пытаюсь разобраться, как правильно обратиться к ячейке выше с этой целью. |
Автор: | Gazinur [ Вт, фев 06 2018, 09:08 ] |
Заголовок сообщения: | Re: Установка границ в языке FormCalc |
Столкнулся с подобной задачей по отображению границ поля. В свойствах все границы делал видимыми, когда скрывал определенную сторону работало как то некорректно, проверял выводом на экран значений отображения границ. Потом тупо прописал все стороны с нужными мне свойствами и все заработало. ниже привел пример, вдруг кому понадобится. Да и если рисуете в таблице учитывайте что между ячейками верхняя и нижняя пересекаются, также правая и левая. Code: $.border.edge[0].presence = "hidden" " верхняя $.border.edge[1].presence = "visible" " правая $.border.edge[2].presence = "hidden" " нижняя $.border.edge[3].presence = "visible" " левая Либо тоже самое Code: $.border.getElement("edge",0).presence = "hidden" $.border.getElement("edge",1).presence = "visible" $.border.getElement("edge",2).presence = "hidden" $.border.getElement("edge",3).presence = "visible" |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |