【IFbA:InreactiveForm by adobe】1つのボディページにて複数の繰り返しページ(例え:社員番号により)を出力

【要件定義】

1つのボディページにて複数の繰り返しページを出力

ダイナミックサブフォームの高さを動的に表示

ページフッダ部、ダイナミックサブフォームの枠線固定表示(ダイナミックサブフォームデータオーバーフローする時の第②ページ以降も)

社員番号毎に、出力総ページ数(AllPage)、現在のページ番号(CurrentPage)を表示

 

【作成手順】

1.トランザクションコード:SFPを使用してタスクを開始する

2.ボディページを作成

Page1  (dynamicForm)

page_header

meisai_header

meisai_data

     meisai_item  (dynamicForm)

          field1     

 

3.マスタページ1を作成

MasterPage1

  page_footer

       pageAll

       pageCur

  Line1n(ダイナミックサブフォームの枠線)

 

4.マスタページ2を作成

MasterPage2

  page_footer

pageAll

       pageCur

  Line1n(ダイナミックサブフォームの枠線)

※データオーバフローする時、適用されます。

 

5.各配置について

    ページを繰り返し表示する為、ボディページ全体を繰り返しフォームを設定します。

    次の社員番号を自動改ページする為、page_headerの「ページ番号」→「配置」に「ページMasterPage1上」を設定します。

※また、下記の方法でも実現できます。

Page1の「ページ番号」→「条件付き改行」→「編集」をクリックするで、条件付き改行の編集ポップアップが表示されます。ポップアップで改行条件を選択することができます。ここで、社員番号を選択して、再開位置にて「ページMasterPage1の先頭」を選択します。

    データオーバーフローする時、残りデータはマスタページMasterPage2にて表示する為、meisai_dataの「ページ番号」→「オーバーフロー」に「ページMasterPage2へジャンプ」を設定します。

    社員番号内改ページする時、meisai_headerを付く為、meisai_itemの「ページ番号」→「オーバーフローリーダー」に「meisai_header」を設定します。

    ダイナミックフォームmeisai_itemの高さは項目field1の内容に応じて、動的に表示する為、

field1の「フィールド」→複数行をcheck on

field1の「レイアウト」→高さ「拡大して合わせる」をcheck on

meisai_itemの「レイアウト」→高さ「自動調整」をcheck on

 

6.Javascriptで総ページ数及び現在ページ番号の計算

例:        rootNode(PDF_DATA)::ready:layout

 

var pageCur = 0;

var pageAll = 0;

function footerNode(ipageAll, ipageCur) {

    this.pageAll  = ipageAll;

    this.pageCur  = ipageCur;

}

function setFooterNode( ) {

    var page1FooterArr = new Array();

    var page2FooterArr = new Array();

   

    var pageSize = PDF_DATA.Page1.all.length;

    for (var i = 0; i <pageSize; i++ ) {

        var bodyPage1 = xfa.resolveNode("PDF_DATA.Page1[" + i + "]");

        var ppageAll = xfa.layout.absPageSpan(bodyPage1);

        var footerNode1 = new footerNode(ppageAll, 1);

        page1FooterArr.push(footerNode1);

       

        for (var j = 2; j <= ppageAll; j++) {

            var footerNode2 = new footerNode(ppageAll, j);

            page2FooterArr.push(footerNode2);

        }

    }

   

    pageSize = PDF_DATA.pageSet.MasterPage1.all.length;

    for (i = 0; i< pageSize; i++) {

        var masterPage1 = xfa.resolveNode("PDF_DATA.pageSet.MasterPage1["+ i +"]");

       

        masterPage1.resolveNode("page_footer.PageAll").rawValue = page1FooterArr[i].pageAll;

       

        masterPage1.resolveNode("page_footer.PageCur").rawValue = page1FooterArr[i].pageCur;

    }

   

    if ( PDF_DATA.pageSet.MasterPage2 != null  ) {

        pageSize = PDF_DATA.pageSet.MasterPage2.all.length;

        for (i = 0; i< pageSize; i++) {

            var masterPage2 = xfa.resolveNode("PDF_DATA.pageSet.MasterPage2["+ i +"]");

       

            masterPage2.resolveNode("page_footer.PageAll").rawValue = page2FooterArr[i].pageAll;

       

            masterPage2.resolveNode("page_footer.PageCur").rawValue = page2FooterArr[i].pageCur;

        }

    }

}

你可能感兴趣的:(function,header,null,Adobe)