ある状況下で先頭ページにだけ存在するフィールドの値を、後続のページのフィールドに代入できない

現象

次の条件下で、最初のページにだけ存在するフィールドの値を、後続のすべてのページ上のフィールドにも代入したいのですが、うまくいきません。

  • 複数ページの帳票ですが、利用者様のご事情で FlexiLayout Studio で Multi Page 設定が許可されていません。
  • そのため特定のフィールドをインデックス用のキーに指定して、アセンブリをするルールを用いて、ひとつの帳票にまとめています。

スクリプトやルールを用いたのですが、後続のページでは代入ができませんでした。何が原因で、どのように対処したらよいかを教えてください。

原因

この現象は、文書ルールチェック後のタイミング以外では、まだ複数ページが別々の文書として認識されているタイミングであるため、文書をまたいだフィールド値の代入ができないことが原因です。

解決

文書ルールチェック後イベントハンドラで、以下のようなスクリプトを指定します。

if(Document.IsAssembled){
int PageCount = Document.Pages.Count;
  // 文書ページの2ページ以降のページ毎に行う処理
for(int i = 1; i < PageCount; i++){
    Document.Field("ドキュメントセクション名[" + i + "]\\代入先のフィールド名").Text = Document.Field("ドキュメントセクション名[0]\\参照元のフィールド名").Text;
  }
}

他にご質問がございましたら、リクエストを送信してください

コメント

0件のコメント

サインインしてコメントを残してください。

最近の閲覧