Измените высоту текстового поля, для которого установлено динамическое расширение в LiveCycle. - PullRequest
0 голосов
/ 24 февраля 2011

Я использую Adobe LiveCycle Designer для создания динамических форм, которые автоматически заполняются из XML-документа.К сожалению, я не очень знаком с LiveCycle, поэтому столкнулся с проблемой, которую не могу решить.Позвольте мне дать вам упрощенную версию того, что я хочу сделать и что я пробовал до сих пор.

У меня есть таблица с двумя столбцами, «Песня» и «Тексты песен».Каждая строка таблицы содержит два текстовых поля, одно для песни и одно для текста песни, которые автоматически заполняются из XML-документа.К сожалению, некоторые записи в столбце «Тексты песен» слишком велики, поэтому они выходят за пределы страницы.Чтобы решить эту проблему, я обернул каждый textField в подчиненную форму Flowed, и для каждого из них я выбрал опцию «Разрешить разрывы страниц в контексте».

Проблема этого подхода заключается в том, что два текстовых полядольше растет вместе.Поэтому, хотя я получаю большие тексты песен, которые занимают несколько страниц, текстовое поле песни не растет вместе с текстами песен.

Я пытался найти решение для этого и понял, что единственныйОдним из способов может быть динамическое изменение (с использованием Javascript) высоты текстового поля песни в соответствии с лирикой.Но так как текст textField для текстов песен установлен на «Развернуть, чтобы соответствовать», я не могу принять значение высоты, он всегда возвращает «0 дюймов», даже если это не так.для которого установлено значение «Развернуть, чтобы подогнать», или, может быть, лучший способ заставить текстовые поля срастаться?

Заранее благодарен за всю вашу помощь

1 Ответ

1 голос
/ 20 апреля 2011

В событии готовности макета необходимо использовать следующий скрипт:

var heightField = xfa.layout.h(xfa.resolveNode(fieldName), "pt"));

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

По моему мнению, лучший способ достичь вашего результата - поместить два поля в одну и ту же подчиненную форму (флажок автозаполнения по высоте), а затем установить высоту двух полей на одно и то же значение высоты их родителя. Итак, вы можете просто написать что-то вроде этого:

var heightField = xfa.layout.h(this.parent, "pt"));
this.h = heightField + "pt";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...