2011-02-24 7 views
0

Adobe LiveCycle Designer를 사용하여 XML 문서에서 자동으로 채워지는 동적 양식을 만듭니다. 불행히도 LiveCycle에 익숙하지 않아서 해결할 수없는 문제가 발생했습니다. 제가하고 싶은 일과 지금까지 시도한 일을 간소화 된 버전으로 알려 드리겠습니다.LiveCycle에서 "맞게 맞춤"으로 설정된 텍스트 필드의 높이 변경

나는 "노래"와 "가사"의 두 개의 열이있는 테이블을 가지고 있습니다. 표의 각 행에는 XML 문서에서 자동으로 채워지는 노래와 가사 용의 두 개의 텍스트 필드가 있습니다. 불행히도 "가사"열의 일부 항목이 너무 커서 페이지를 넘어 확장 될 수 없습니다. 이를 해결하기 위해 각 textField를 Flowed 하위 폼에 래핑 한 다음 각각에 대해 "컨텍스트 내에서 페이지 나누기 허용"옵션을 선택했습니다.

이 방법의 문제점은 두 텍스트 필드가 더 이상 함께 성장하지 않는다는 것입니다. 그래서, 여러 페이지에 걸쳐있는 큰 가사가 나왔지만, Song textField는 가사와 함께 성장하지 않습니다.

나는 그것을위한 해결책을 찾으려고 노력했다. 그리고 유일한 방법은 (자바를 사용하여) Song 텍스트 필드의 높이를 가사의 것과 일치하도록 바꿀 수 있다는 것을 깨달았다. 하지만 가사의 textField가 "Expand to fit"로 설정되었으므로 높이 값을 사용할 수 없습니다. 그렇지 않은 경우에도 항상 "0in"을 반환합니다.

여러분은 필드의 높이를 "펼치기"로 설정했거나 textField가 함께 커지도록하는 더 좋은 방법이 있습니까?

모든 당신의 도움에 미리 감사

답변

1

당신은 레이아웃 준비 이벤트에 다음 스크립트를 사용해야합니다 :

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

당신은 레이아웃 준비 이벤트에서이 속성에 액세스 할 수 있습니다 기억, 양식이 렌더링 될 때 높이가 효과적으로 계산됩니다.

제 생각에는 결과를 얻는 가장 좋은 방법은 두 필드를 같은 하위 폼 (높이 자동 맞춤)에 넣은 다음 두 필드의 높이를 부모 높이와 같은 값으로 설정하는 것입니다. 따라서 다음과 같이 간단하게 작성할 수 있습니다.

var heightField = xfa.layout.h(this.parent, "pt")); 
this.h = heightField + "pt";