0

Adobe LiveCycle Designer を使用して、XML ドキュメントから自動的に入力される動的フォームを作成しています。残念ながら、私は LiveCycle にあまり詳しくないので、解決できない問題に遭遇しました。私がやりたいことと、これまでに試したことの簡単なバージョンを紹介しましょう。

「曲」と「歌詞」の2つの列を持つテーブルがあります。テーブルの各行には、曲用と歌詞用の 2 つのテキスト フィールドが含まれており、XML ドキュメントから自動的に入力されます。残念ながら、"Lyrics" 列の一部のエントリは大きすぎてページを超えています。それを解決するために、各 textField を Flowed サブフォームでラップし、それぞれについて「コンテキスト内で改ページを許可する」オプションをオンにしました。

このアプローチの問題は、2 つのテキストフィールドが一緒に成長しなくなったことです。そのため、いくつかのページにまたがる大きな歌詞を取得していますが、Song textField は歌詞とともに成長しません。

私はその解決策を見つけようとしていましたが、歌のテキストフィールドの高さを (Javascript を使用して) 動的に変更して、歌詞の高さと一致させることが唯一の方法であることに気付きました。しかし、歌詞の textField が「Expand to fit」に設定されているため、高さの値を取得できず、そうでなくても常に「0in」を返します。

「Expand to fit」に設定されているフィールドの高さを取得するための解決策、または textFields を一緒に成長させるためのより良い方法はありますか?

よろしくお願いいたします。

4

1 に答える 1

1

レイアウト準備完了イベントで次のスクリプトを使用する必要があります。

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

このプロパティにアクセスできるのは、フォームがレンダリングされて高さが効率的に計算されるときのレイアウト準備完了イベントのみであることに注意してください。

私の意見では、結果を達成するための最良の方法は、2 つのフィールドを同じサブフォームに配置し (高さを自動調整するチェックボックス)、2 つのフィールドの高さを親の高さと同じ値にすることです。したがって、次のように簡単に書くことができます。

var heightField = xfa.layout.h(this.parent, "pt"));
this.h = heightField + "pt";
于 2011-04-20T07:30:39.437 に答える