ドキュメント印刷

Q
印刷時のページ番号を表示する方法
[内容]
ドキュメント印刷時にページ番号を表示させたい


A
[解決方法]
改ページのタイミングで発生するPageChangeイベントを利用して
ページ番号を取得し、表示させる事が可能です。

[サンプルコード1]
Doc list1 {
/*ページ番号を表示させるためのオブジェクト*/
    Label Label_page {
        X = 1010;
        Y = 39;
        Width = 61;
        Height = 32;
        Border = $FALSE;
        HorizontalAlign = $CENTER;
        BgColor = $WHITE;
        FontSize = 28;
    }

    /*改ページ時の処理*/
    Function OnPageChange( e ) {
        /*ページ番号を表示*/
        list1.Label_page.value = list1.PageNumber;
    }
}

また、上記ページ番号の取得方法を応用して、総ページ数を取得する事も可能です。
総ページ数を取得する場合、最終行のデータ設定が終わった後に発生する
CSVDocumentクラスのEndBreakイベントで、DocクラスのPageNumberプロパティにて
取得したページ数を変数に保持します。

/* 総ページ数 */
Number p;
Function OnEndBreak ( e ) {
 p = this.PageNumber;
}


以下、記述方法を元に作成された実装方法の例をご紹介いたします。

[サンプルコード2]
Doc list2 {
 Number p = 0;
 
 Spread Spread1 {
  ・・・略・・・
 }

 Label Label1 {
  ・・・略・・・
 }
 
 Function OnPageChange( e ) {
 /* 改ページしたページ番号が最終行のページだった場合、
  最終ページに総ページ数を表示 */
  if(this.PageNumber == p){
   this.Label1.Value = "総ページ数        "+ str(p);
   this.Label1.Visible = $TRUE;
  }
 }
 Function OnKeyBreak( e ) {
  if( e.CurrentIndex != -1 ) {
   /* キーブレイク時に改ページする */
   list2.ShowPage();
  }
  Spread1.SpreadRow1.truncate();
 }
 Function OnEndBreak ( e ) {
  /* 最終行のデータ設定が終わった後、
   ページ番号を取得する */
  p = this.PageNumber;
 }
}


[サンプルコード3]※上記サンプルを呼び出すCRSファイル
Form Form1{   
 ・・・略・・・
 Button Button1 {  
 ・・・略・・・   
  Function OnTouch( e ) { 
   /* ボタン押下後、プリンターに直接印刷される */
   ^.Get("Doc_List2.crs");
   ^.list2.ShowPage();
   ^.list2.Delete();
  } 
 } 

実際の挙動については、CRSファイル形式のサンプル
  「印刷時のページ番号を表示する方法(Doc_003.zip)
よりご利用いただけます。

管理番号:Doc_003
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ