2011-02-24 77 views
0

我正在使用Adobe LiveCycle Designer创建从XML文档自动填充的动态表单。不幸的是,我对LiveCycle不是很熟悉,所以遇到了一个我无法解决的问题。让我给你一个我想做的简化版本,以及我到目前为止所尝试的内容。更改在LiveCycle中动态设置为“适合”的文本框的高度

我有两列“歌曲”和“歌词”表。表中的每一行都包含两个文本字段,一个用于歌曲,另一个用于歌词,它们自动从XML文档填充。不幸的是,“歌词”列中的一些条目太大,所以它们扩展到页面之外。为了解决这个问题,我将每个textField包装在一个Flowed子表单中,并且为每个人检查了“在上下文中允许分页符”选项。

这种方法的问题是两个文本字段不再一起增长。所以,虽然我得到了一个跨越几页的大歌词,但是歌曲文本字段不会随着歌词一起增长。

我试图找到一个解决方案,我意识到唯一的方法可能是动态更改(使用Javascript)歌曲的高度,以匹配歌词中的歌词。但是由于歌词textField设置为“展开为合适”,我无法采用高度值,但它总是返回“0in”,即使它不是。

你们是否有任何解决方案来获得设置为“扩展到合适”的字段的高度,或者更好的方法来使textFields一起增长?

预先感谢您为您的帮助

回答

1

你必须使用下面的脚本在布局ready事件:

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

请记住,你只能在布局ready事件访问此属性,当表单被渲染并且高度被有效地计算时。

在我看来,实现你的结果的最好方法是把两个字段放在同一个子窗体中(自动填充高度复选框),然后将两个字段的高度设置为与父窗口高度相同的值。所以,你可以简单地写下这样的东西:

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